免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1388 | 回复: 0
打印 上一主题 下一主题

Mysql_binlog备份恢复模式 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-20 09:46 |只看该作者 |倒序浏览

Binlog备份恢复模式优势

    使用mysqldump命令备份成sql文件只能恢复指定时间段,定位精度低,无法恢复到指定时间点的数据,并且数据库结构损坏则无法恢复。Binlog模式可以使数据恢复点精确到秒,无需担心数据库结构损坏问题,可指定恢复到任意时间点状态,降低数据丢失风险

 

启用Binlog备份恢复模式详细操作如下:


一 开启mysql中的binlog日志记录,操作如下

----------------------------------------------

#vim /etc/mysql/my.cnf

----------------------------------------------

取消一下几行注释

----------------------------------------------

log_bin                 = /var/log/mysql/mysql-bin.log

expire_logs_days        = 10

max_binlog_size         = 100M

----------------------------------------------

修改保存后退出,重启mysql服务

----------------------------------------------

Sudo server mysql restart

----------------------------------------------

Binlog日志成功启动。

 

注:如果采用了mysql主从模式数据库,针对数据备份和恢复也相对要复杂一些,本文主要说明主从结构数据库Binlog备份恢复,具体操作步骤如下:

 

Binlog备份操作


进入数据库

---------------------------------------------------------------------------------------

Mysql –uusername  -p

---------------------------------------------------------------------------------------

首先停止从数据库的slave服务,执行如下命令:

---------------------------------------------------------------------------------------

Stop slave;

---------------------------------------------------------------------------------------

打包binlog日志文件

---------------------------------------------------------------------------------------

Tar cvf mysql-binlogxxx.tar.gz /var/log/mysql/mysql-bin*

---------------------------------------------------------------------------------------

使用md5sum 计算备份文件的md5

使用scp自动将备份文件上传至备份中心

计算备份中心刚刚上传的备份文件的md5值,两边一致则备份成功,不一致发出邮件通知.

启动 slave

---------------------------------------------------------------------------------------

start  slave;

---------------------------------------------------------------------------------------

检测slave是否工作正常,不正常等待10s再次启动,否则发出邮件通知。

注:以上操作从打包到邮件通知均可过通过脚本实现,具体脚本文件本文暂不提供。

 

 

Binlog恢复操作

首先需要停止相关服务,防止用户写入新数据,如nginx等web服务

---------------------------------------------------------------------------------------

Sudo server nginx stop

---------------------------------------------------------------------------------------

执行如下命令恢复到2010711330开始的数据库状态

---------------------------------------------------------------------------------------

Mysqlbinlog  --start-date=2010-07-01 1330 mysqlbinlogxxx |mysql –uusername –p

---------------------------------------------------------------------------------------

执行如下命令恢复到2010711330截至的数据库状态

---------------------------------------------------------------------------------------

Mysqlbinlog  --stop-date=2010-07-01 1330 mysqlbinlogxxx |mysql –uusername –p

---------------------------------------------------------------------------------------

执行如下命令恢复到截至点为368312数据库状态

---------------------------------------------------------------------------------------

mysqlbinlog --stop-position="368312" /var/log/mysql/bin.123456 \

    | mysql -u root -pmypwd

---------------------------------------------------------------------------------------

执行如下命令恢复到开始点为368315数据库状态

---------------------------------------------------------------------------------------

mysqlbinlog --start-position="368315" /var/log/mysql/bin.123456 \

| mysql -u root -pmypwd

 ---------------------------------------------------------------------------------------

完成后进入数据库检查数据库是否成功恢复。

 

若没有主从结构的数据库则不需要在备份过程中执行停止从服务器slave这项工作,其他步骤相同,不再累述。

 

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP