数据备份和还原

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

练习1:备份还原整个数据库

本练习将会备份整个数据库,并能够还原整个数据库到备份时的状态。在还原数据库是,数据库必须存在。

1. 创建测试数据库

mysql> create database webdb;

mysql> use webdb;

mysql> create table t1 (sid int,sname char(10));

mysql> create table t2 (sid int,sname char(10));

mysql> insert t1 values (1,'hanligang');

mysql> insert t1 values (2,'hanlihui');

mysql> insert t2 values (1,'wangsheng');

mysql> insert t2 values (2,'wangming');

clip_image002

clip_image003

2. 以下命令将会schoolDB数据库以root身份备份到当前命令

clip_image001 root@mySQL1:~# mysqldump -u root -p --opt webdb >webdb.sql

clip_image001[1] Enter password:

3. 并查看备份出来的文件

以下命令过滤掉注释行,可以看到备份出来的是sql语句,还原时是将sql语句重新执行一遍。

root@mySQL1:~# grep -v "^#" webdb.sql | grep -v "^-"

clip_image004

4. 备份后删除一条记录

查看webdb数据库现有表中的记录,删除t1表中的一条记录,再添加一条,删除t2表。

clip_image005

5. 还原整个数据库

root@mySQL1:~# mysql -u root -p webdb < webdb.sql

Enter password:

clip_image006

6. 验证还原

可以看到又还原到备份时的状态

clip_image007

查看删除的表t2也出现。

clip_image008

练习2:备份还原指定表

本练习在上一个练习的基础上进行。本练习只备份数据库中的一个表,然后还原该表,对其他没影响。

1. 登录mksql查看现有数据

clip_image009

2. 备份t1表

root@mySQL1:~# mysqldump -u root -p --opt webdb t1 >webdb.t1.sql

Enter password:

clip_image010

3. 进入数据库修改表

在t1表中删除一条记录,在t2表中删除一条记录。

clip_image011

查看现有记录

clip_image012

4. 还原t1表

root@myUbuntu:~# mysql -u root -p webdb < webdb.t1.sql

Enter password:

clip_image013

5. 验证还原的表

登录mysql,可以看到t1表的两个数据已经恢复到备份时的状态。

clip_image014

练习3:备份所有数据库

本练习将会为你演示,备份mysql所有数据库。一次还原所有数据库。能够还原删除的数据库。

6. 查看现有数据库

clip_image015

7. 备份所有数据库

root@myUbuntu:~# mysqldump -u root -p --all-database > all.sql

Enter password:

clip_image016

8. 删除一个数据库和一个数据库的一个表

删除testdb1;

clip_image017

删除webdb数据表t1的一条记录。

clip_image018

9. 还原所有数据库

root@myUbuntu:~# mysql -u root -p < all.sql

Enter password:

clip_image019

10. 验证数据库还原

再次等mySQL,可以看到删除的数据库,

clip_image020

查看删除的表中记录,也已经被还原出来。

clip_image021

练习4:只备份表结构

本练习将会为你演示将webdb数据库的表结构进行备份,不备份数据。并将备份的空表还原到数据库emptyDB;

11. 备份webdb空表

root@mySQL1:~# mysqldump -u root -p --opt -d webdb > webdb.tableonly.sql

Enter password:

clip_image022

12. 创建一个空的数据库emptyDB

clip_image023

13. 将表结构还原到emptyDB数据库

root@mySQL1:~# mysql -u root -p emptyDB < webdb.tableonly.sql

Enter password:

14. 查看还原的表结构

clip_image024

练习5:直接复制整个数据库目录

你可以通过拷贝数据库文件的方式备份数据库,为了保证数据的一致性,拷贝之前停止mySQL数据库。

直接拷贝数据库对于使用myISAM引擎的表有效,对于使用innoDB引擎的表无效。

15. 创建一个使用webdb2数据库,创建使用myISAM引擎的表t1。

mysql> create database webdb2;

mysql> use webdb2;

mysql> create table t1 (sid int,sname varchar(10)) engine=myisam;

clip_image025

插入两条记录

clip_image026

16. 查看数据库表文件

root@mySQL1:~# ls /var/lib/mysql/webdb2

clip_image027

17. 停止mysql数据库

clip_image028

18. 使用WinSCP拷贝数据库文件夹到Windows

clip_image029

19. 开始mySQL服务

clip_image030

20. 向插入webdb2数据库中t1表插入一条记录

mysql> insert t1 values (3,'zhang');

clip_image031

21. 停止mySQL服务

clip_image032

22. 使用WinSCP拷贝Windows数据库文件夹到Ubuntu

将以前拷贝的表文件再次拷贝到ubuntu。

clip_image033

更改拷贝过去的文件的所有者,和权限。

clip_image034

clip_image035

clip_image036

clip_image037

23. 开始mySQL服务

clip_image038

24. 再次查看webdb2数据库t1表的记录,可以看到,回复到以前的状态。

clip_image039

插入一条记录,能够插入新记录。

clip_image040

练习6:使用select导出数据到文件

本练习使用select导出数据到记事本文件,然后使用该记事本文件导入数据。

25. 将表导出到记事本文件

clip_image041

使用putty连接mySQL,导出表t1到t1.txt记事本

mysql> select * from t1 into outfile '/var/lib/mysql/webdb2/t1.txt' fields terminated by "," enclosed by "'";

删除t1表中的所有记录

mysql> delete from t1;

mysql> select * from t1;

clip_image042

查看导出的记事本

clip_image043

26. 导入数据

mysql> load data infile '/var/lib/mysql/webdb2/t1.txt' into table t1 fields terminated by ',' enclosed by "'";

clip_image044

查看导入的记录

clip_image045

练习7:使用mysql导出数据

本练习将会使用mysql将webdb2的表t1的数据导出到记事本文件

27. 导出数据

root@mySQL1:~# mysql -u root -p --vertical --execute="select * from t1;" webdb2 > webdb2.t1.txt

clip_image046

28. 查看导出的数据

clip_image047

29. 去掉导出结果中注释线

root@mySQL1:~# mysql -u root -p --execute="select * from t1;" webdb2 > webdb2.t1.txt.2

Enter password:

clip_image048

30. 查看导出的记事本文件

clip_image049

31. 导出为网页

root@mySQL1:~# mysql -u root -p --execute="select * from t1;" webdb2 > webdb2.html




本文转自 onesthan 51CTO博客,原文链接:http://blog.51cto.com/91xueit/1138006,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
存储 安全 数据库
数据备份与恢复
数据备份与恢复
68 2
|
9月前
|
存储 Windows
数据备份(手动备份与自动备份)
数据备份(手动备份与自动备份)
247 1
|
JSON NoSQL 关系型数据库
备份与还原
备份与还原
66 0
|
存储 缓存 关系型数据库
备份与恢复 | 学习笔记
快速学习备份与恢复
167 0
备份与恢复 | 学习笔记
|
NoSQL MongoDB 数据库
备份与恢复|学习笔记
快速学习备份与恢复
75 0