MySQLdump增量备份、完全备份与恢复(1)


在数据库表丢失或损坏的情况下,备份你的数据库是很重要的。如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态。场景:每周日执行一次完全备份,每天下午1点执行MySQLdump增量备份

MySQLdump增量备份配置

执行增量备份的前提条件是MySQL打开log-bin日志开关,例如在my.ini或my.cnf中加入

log-bin=/opt/Data/MySQL-bin

“log-bin=”后的字符串为日志记载目录,一般建议放在不同于MySQL数据目录的磁盘上。

MySQLdump增量备份

假定星期日下午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增量备份其他说明:

如果MySQLdump加上–delete-master-logs 则清除以前的日志,以释放空间。但是如果服务器配置为镜像的复制主服务器,用MySQLdump –delete-master-logs删掉MySQL二进制日志很危险,因为从服务器可能还没有完全处理该二进制日志的内容。在这种情况下,使用 PURGE MASTER LOGS更为安全。

每日定时使用 MySQLadmin flush-logs来创建新日志,并结束前一日志写入过程。并把前一日志备份,例如上例中开始保存数据目录下的日志文件 MySQL-bin.000002 , …


相关内容

    暂无相关文章