MySQL完全备份、增量备份与恢复
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MySQL完全备份、增量备份与恢复
适用版本] MySQL 4.x - 6.x
[ 配置]
执行增量备份的前提条件是MySQL打开log-bin日志开关,例如在my.ini或f中
加入
log-bin=C:/Program Files/MySQL/MySQL Server 6.0/Data/mysql-bin
“log-bin=”后的字符串为日志记载目录,一般建议放在不同于mysql数据目录的磁盘上。
[ 完全备份]
假定星期日下午1点执行完全备份,适用于MyISAM存储引擎。
mysqldump --lock-all-tables --flush-logs --master-data=2 -u root -p test > backup_sunday_1_PM.sql
对于InnoDB 将--lock-all-tables替换为--single-transaction
--flush-logs 为结束当前日志,生成新日志文件
--master-data=2 选项将会在输出SQL中记录下完全备份后新日志文件的名称,
用于日后恢复时参考,例如输出的备份SQL文件中含有:
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=106;
其他说明:
如果mysqldump加上--delete-master-logs 则清除以前的日志,以释放空间。但是如果服务器配置为镜像的复制主服务器,用mysqldump --delete-master-logs删掉MySQL二进制日志很危险,因为从服务器可能还没有完全处理该二进制日志的内容。在这种情况下,使用PURGE MASTER LOGS更为安全。
[ 增量备份]
每日定时使用mysqladmin flush-logs来创建新日志,并结束前一日志写入过程。并
把前一日志备份,例如上例中开始保存数据目录下的日志文件mysql-bin.000002 , ...
[ 从备份中恢复]
* 恢复完全备份
mysql -u root -p < backup_sunday_1_PM.sql
* 恢复增量备份
mysqlbinlog mysql-bin.000002 ... | mysql -u root -p
注意此次恢复过程亦会写入日志文件,如果数据量很大,建议先关闭日志功能。