在线
客服

在线客服
尊敬的客户,我们24小时竭诚为您服务 公司总机: 0755-83312037 (32条线)

客服
热线

0755-83312037 (32条线)
7*24小时客服服务热线

?

关注
微信

关注官方微信
TOP

返回
顶部

MYSQL备份:启用二进制日志功能的MYSQL增量备份

发布时间:2019-04-13浏览次数:868 <p> </p> <table style="BORDER-RIGHT: #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0"><tbody><tr> <td style="WORD-WRAP: break-word" bgcolor="#fdfddf"> <font color="#ff0000">WebjxCom提示:</font><font color="#000000">mysql增量备份.</font> </td> </tr></tbody></table> <p>小量的数据库我们可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,我们就不太可能每天进行一次完整备份了,而且改成每周一次完整备份,每天一次增量备份类似这样的备份策略。增量备份的原理就是使用了mysql的二进制日志,所以我们必须启用二进制日志功能。</p> <p><strong>一、增量备份</strong></p> <p>1、比如我们在星期天下午11点做一次完整备份:</p> <blockquote> <p>mysqldump --single-transaction --flush-logs --master-data=2 --all-databases &gt; fullbackup_sunday_11_PM.sql</p> </blockquote> <p>在sql文件中我们会看到两行:</p> <p>&#8211; Position to start replication or point-in-time recovery from</p> <p>&#8211; CHANGE MASTER TO MASTER_LOG_FILE=’bin-log.000002′, MASTER_LOG_POS=107;</p> <p>第二行包含了我们需要的信息,是指备份后所有的更改将会保存到bin-log.000002二进制文件中。</p> <p>2、然后在星期一下午11点我们来做一次增量备份:</p> <blockquote> <p>mysqladmin flush-logs</p> </blockquote> <p>这时将会产生一个新的二进制日志文件bin-log.000003,bin-log.000002则保存了自星期天下午11点到现在的所有更改,我们只需要把这个文件备份到安全的地方就行了。然后星期二我们又做增量备份,还是执行同样的命令,这时我们保存bin-log.000003文件。</p> <p><strong>二、恢复备份</strong></p> <p>比如星期三中午12点出现了故障,这时需要恢复,我们首先导入星期天的完整备份:</p> <blockquote> <p>mysql &lt; fullbackup_sunday_3_AM.sql</p> </blockquote> <p>接着我们导入星期一和星期二的增量备份:</p> <blockquote> <p>mysqlbinlog bin-log.000002 bin-log.000003 | mysql</p> </blockquote> <p>这时我们已经恢复了所有备份数据,我们还可以找到bin-log.000004,进一步恢复最新的数据。</p>