增加备份的必要性:
公司的产品是在windows平台下的,使用windows下的mysql5,我从网上查了大量的资料,但都没有描述windows下如何进行mysql5的增量备份的。请问在mysql5下是否可实现?
我这里的数据库中MyISAM和InnoDB都有用,数据量一般每天视业务情况全备约在10G到30G之间。压缩后一般几百M到1,2个G,这类的数据库大约有几十个点,也就是说每天我的部门面临的是压缩后至少20到40个G的全备备份文件。
如果可以做增量备份,那么我将在每个业务点设定每周一次全备,然后每天增量,每天都把数据转存到异地的中心备份磁带机上,这样就可以收集到所有业务点的所有备份,而目前我们使用的是全备,数据量太大,使用以上的方案每天至少有20到40G的数据要通过网络复制到异地,不现实。
如何实现mysql的增量备份: 安装一个高版本的mysql 5 以上.
1. 安装一个mysql5.5.27
2. 在默认情况下,mysql不会自动增量备份
什么是增量备份: 当数据库(表)发生变化时,他会自动记录变化的sql( dml , create ,drop altet) 但是他不会记录select
3. 配置my.ini 文件 my.cof 启用增量备份
[mysqld]
log-bin=d:/binlog/shunping
4. 你mysql的操作会记录到日志中
5. 使用 mysqlbinlog 指令可以查看日志
mysqlbinlog.exe D:\binlog\shunping.000001
6. 这个文件中主要记录了三种信息
① 你执行了什么语句
② 你执行语句的时间
③ 系统给你执行该指令都分配了一个位置 position
如图:
7. 讨论如何使用增量备份进行恢复工作
u 按照位置
1.如果希望从日志的最开始一直到某个点
mysqlbinlog --stop-position="位置" 文件 | mysql -u root -p
2.如果希望从日志某个位置一直执行到最后
mysqlbinlog --start-position="位置" 文件 | mysql -u root -p
3.如果希望从某位置到某个位置
mysqlbinlog --start-position="位置" --stop-position="位置" 文件 | mysql -u root -p
u 按照时间
1.如果希望从日志的最开始一直到某个点
mysqlbinlog --stop-datetime="2013-01-14 00:54:55" 文件 | mysql -u root -p
2.如果希望从日志某个位置一直执行到最后
mysqlbinlog --start-datetime="2013-01-14 00:54:55" 文件 | mysql -u root -p
3.如果希望从某位置到某个位置
mysqlbinlog --start-datetime="2013-01-14 00:54:55" --stop-datetime="2013-01-15 00:54:55" 文件 | mysql -u root -p
建议: 在启用增量备份后,对数据库的性能有一定影响,但是不太.
.我们使用备份的方案, 全备份和增量备份配合使用
每一周进行一次全备份.
1万+

被折叠的 条评论
为什么被折叠?



