备份类别
- 物理备份: 直接复制数据库文件,适用于大型数据库环境。但不能恢复到异构系统中如Windows。
- 逻辑备份: 备份的是建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。
- 导出表: 将表导入到文本文件中。
使用mysqldump实现逻辑备份
1 | # mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql |
恢复逻辑备份
1 | #方法一: |
备份/恢复案例
数据库备份/恢复实验一:数据库损坏
备份:1
2
3
4
5
6# mysqldump -uroot -p123 --all-databases > /backup/`date +%F`_all.sql
# mysql -uroot -p123 -e 'flush logs' //截断并产生新的binlog
#插入数据 //模拟服务器正常运行
mysql> set sql_log_bin=0; //模拟服务器损坏
mysql> drop database db;
恢复:
1 | # mysqlbinlog 最后一个binlog > /backup/last_bin.log |
数据库备份/恢复实验二:如果有误删除
备份:
1 | mysqldump -uroot -p123 --all-databases > /backup/`date +%F`_all.sql |
恢复:
1 | # mysqlbinlog 最后一个binlog --stop-position=260 > /tmp/1.sql |
注意事项:
- 完全恢复到一个干净的环境(例如新的数据库或删除原有的数据库)
- 恢复期间所有SQL语句不应该记录到binlog中