逻辑备份和恢复

数据备份(逻辑备份)

完全备份:备份所有数据
增量备份:备份(上次)备份后,所有新产生的数据
差异备份:备份(完全)备份后,所有新产生的数据

增量和差异备份,相同点是备份新产生的数据。只是起点不一样。

星期几 备份类型 当前数量 本次备份的数量
1 完全备份 11 11
2 差异备份 2 2
3 差异 5 7
4 差异 9 16(包含2+5+9)
5 差异

备份名字的格式:
备份日期+库名.sql
例如: 2018-11-21_gamdb.sql

在服务器不忙的时候备份。一般用(完全+增量)备份,只备份当前产生的新数据。

星期几 备份类型 当前数量 本次备份的数量
1 完全 11 11
2 增量 2 2
3 增量 5 5
4 增量 9 9
5 增量
---------------------------------------------------------------------------------------------------
逻辑备份和恢复

备份: 用mysqldump逻辑工具备份
mysqldump -uroot -p密码 库名 > 路径/xxx.sql

恢复: 用mysql恢复数据库 (注意是mysql!没有dump!)
mysql -uroot -p密码 库名 < 路径/xxx.sql

库名表示方式:
-A 所有库
数据库名 单个库
数据库名 表名 单个表
-B 数据库1 数据库2 多个库

注意:不论备份还是恢复,都要 -uroot -p密码 来验证用户权限。
---------------------------------------------------------------------------------------------------
完全备份数据

mkdir /mydata
chown -R mysql:mysql /mydata

# mysqldump -uroot -p123456 -A > /mydata/alldb.sql 备份这台服务器的所有数据,要记住命令是mysqldump!!
ls /mydata
vim /mydata/alldb.sql

# mysqldump -uroot -p123456 db4 > /mydata/db4.sql 备份db4这个库
ls /mydata

# mysqldump -uroot -p123456 db4 t2 > /mydata/db4_t2.sql 备份db4里的t2表,记住库名和表名之间有空格!
cat /mydata/db4_t2.sql

# mysqldump -uroot -p123456 -B db3 db2 > /mydata/twodb.sql 备份db2和db3这两个库,记住2个库之间有空格!

ls -lh /mydata/*.sql 查看所有的备份文件,以.sql结尾的文件
-------------------------------------------------------------------------------------------------
完全恢复数据(删除对应的备份数据,然后使用备份文件恢复数据)

mysql> drop database db4; 删除db4库
mysql> show databases; 确认成功删除db4库
+--------------------+
| Database |
+--------------------+
| information_schema |
| bbsdb |
| db1 |
| db2 |
| db3 |
| gamedb |
| mysql |
| performance_schema |
| studb |
| sys |
+--------------------+

mysql> create database db4; 建立空库db4
mysql> use db4;
mysql> show tables; 可以看到是空库
Empty set (0.00 sec)

mysql> quit

# mysql -uroot -p123465 db4 < /mydata/db4_t2.sql 这是单独恢复db4.t2表,要先删除db4.t2再验证。
# mysql -uroot -p123456 db4 < /mydata/db4.sql 恢复数据是mysql!!mysql后面没有dump!
mysql: [Warning] Using a password on the command line interface can be insecure. 这个是正常提示

# mysql -uroot -p123456
mysql> use db4;
mysql> show tables;
+---------------+
| Tables_in_db4 |
+---------------+
| t1 |
| t2 |
| t3 |
| t4 |
| t5 |
| user |
| user2 |
+---------------+

常见报错:
如果删除了某一个库,想要恢复的话,必须要先建立对应的库,然后再恢复数据。
如果还没有建立对应的库,就会报错!!!

# mysql -uroot -p123456 db4 < /mydata/db4.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1049 (42000): Unknown database 'db4' 提示不知道db4库

解决办法: 创建对应的空库即可!
mysql> create database db4; 建立空库db4
mysql> quit
# mysql -uroot -p123456 db4 < /mydata/db4.sql

猜你喜欢

转载自www.cnblogs.com/summer2/p/10788080.html