数据库备份方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《MonkeyOnline》数据备份方案
备份方式
主从复制+完整备份(Mysqldump或winrar压缩备份DATA目录)+增量备份(启用从服务器二进制日志文件)
备份策略
在主服务器上启用二进制日志实现主从复制做实时在线热备份;在从服务器启用二进制文件,实现在从服务器上做增量备份,每周一凌晨3点转储二进制日志文件进行增量备份;每2周用mysqldump进行完整备份并清空日志和覆盖上次的完整备份;每天做1次winrar 压缩data目录进行完整备份,作为快速恢复备用备份,保留该完整备份一月的备份文件。
该策略相当于保留一个月压缩完整备份和2周的二进制日志增量备份文件。二进制日志可以对任意一天的任何时间点进行恢复,每2周做一次SQL级(dump)完整备份并将二进制日志清空,以释放增加的空间。SQL完整备份+增量备份可以恢复最长一个月内(根据实际需要通过保存二进制日志的天数实施更长时间的恢复)任意一天的任何时间点的数据。
部署实施
1.主从复制
主服务器:当前支撑游戏运行的数据库服务器
从服务器:独立于主服务器且数据库版本和结构与主服务器完全一致的数据库备份服务器
配置主服务器
停止主服务器的mysql服务,修改文件,在【mysqld】下添加如下内容:
log-bin="D:/mysql/bak/log/log-bin" TO 'repl'@'hostname' IDENTIFIED BY
'slavepass';
配置从服务器
停止从库中的mysql服务器,修改文件,在【mysqld】下添加如下内容:
log-slave-updates=1 Trying to reconnect...
Connection id: 2
Current database: baktest
+----------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------+----------+--------------+------------------+
| | 98 | baktest | mysql,test |
+----------------+----------+--------------+------------------+
1 row in set sec)
在从服务器B上做如下更改:
Mysql>slave stop;量备份
压缩从库中的二进制日志进行增量备份(加密/自动添加日期时间后缀)并转储到指定的位置,任务计划每周一次,数据保留一个月。压缩完成后删除源文件
Net stop msyql
c:\progra~1\winrar\winrar a -ag -hppeng -k -r -df -ep2 E:\MySQL\mysqlbak\binlog_bak_ D:\MySQL\mysqlbin\*
net start mysql
3完整备份
SQL级完整备份
转储所有数据为sql脚本文件,做完整备份。参数:刷新日志/包含change master to语句c:\MySQL\bin\mysqldump -uroot –p --flush-logs --master-data=1 --all-databases > c:\
Winrar压缩Data目录
编写压缩文件脚本,创建包括所有数据库的归档文件。
net stop mysql
c:\progra~1\winrar\winrar a -ag -hppeng -k -r -ep2
D:\MySQL\mysqlbak\mkdata_bak_ D:\MySQL\data\morefun_accountdata0
D:\MySQL\data\morefun_accountdata1 D:\MySQL\data\morefun_accountdata2
D:\MySQL\data\morefun_accountdata3 D:\MySQL\data\morefun_roledata0
D:\MySQL\data\morefun_roledata1
D:\MySQL\data\morefun_roledata2D:\MySQL\data\morefun_roledata3
D:\MySQL\data\mysql D:\MySQL\data\test
c:\progra~1\winrar\winrar a -ag -hppeng -k -ep2 D:\mysqlbak\slave_log_ D:\MySQL\data\
D:\MySQL\data\*relay 理过期的备份文件
每天做一次过期备份文件清理
forfiles /p d:\ /s /m mkdata*.rar /d -30 /C "CMD /c del /q /f @file" ar /d -30 /C "CMD /c del /q /f @file" ar /d -30 /C "CMD /c del /q /f @file" 整备份+增量备份的数据恢复
完整备份恢复
mysql –uroot –p < E:\mkdatabak\
或者shell>use 数据库
shelll>source d:\增量备份恢复
利用mysqlbinlog工具可以实现在已有二进制文件中指定任意时间点的恢复
如恢复到截止时间为“2009-10-13 14:51:00”的数据,先清空所有库的所有记录,执行完
整备份操作,再执行以下恢复操作。
> --stop-datetime="2009-12-03 10:12:19" D:\mysql\logbin\ |mysql -uroot -proot
该方式可以达到要求很精准的时间点的数据恢复
(恢复时间:1G的日志文件在AMD 单核主机上耗时3分钟。)
从库中的二进制日志可以直接在主库上恢复
2 Winrar覆盖目录
将winrar压缩的完整备份解压后覆盖DATA目录即可