《数据库备份方案(5页).doc》由会员分享,可在线阅读,更多相关《数据库备份方案(5页).doc(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-数据库备份方案-第 5 页MonkeyOnline数据备份方案备份方式主从复制+完整备份(Mysqldump或winrar压缩备份DATA目录)+增量备份(启用从服务器二进制日志文件)备份策略在主服务器上启用二进制日志实现主从复制做实时在线热备份;在从服务器启用二进制文件,实现在从服务器上做增量备份,每周一凌晨3点转储二进制日志文件进行增量备份;每2周用mysqldump进行完整备份并清空日志和覆盖上次的完整备份;每天做1次winrar压缩data目录进行完整备份,作为快速恢复备用备份,保留该完整备份一月的备份文件。该策略相当于保留一个月压缩完整备份和2周的二进制日志增量备份文件。二进制日志
2、可以对任意一天的任何时间点进行恢复,每2周做一次SQL级(dump)完整备份并将二进制日志清空,以释放增加的空间。SQL完整备份+增量备份可以恢复最长一个月内(根据实际需要通过保存二进制日志的天数实施更长时间的恢复)任意一天的任何时间点的数据。部署实施主服务器:当前支撑游戏运行的数据库服务器从服务器:独立于主服务器且数据库版本和结构与主服务器完全一致的数据库备份服务器停止主服务器的mysql服务,修改 my.ini 文件,在【mysqld】下添加如下内容:log-bin=D:/mysql/bak/log/log-bin /启用主库的二进制日志server-id = 1 /主库服务器唯一ID重启
3、MySQL,创建一个仅有复制权限的账号作为从库同步专用:GRANT REPLICATION SLAVE ON *.* TO replhostname IDENTIFIED BY slavepass;停止从库中的mysql服务器,修改my.ini文件,在【mysqld】下添加如下内容:log-slave-updates=1 /启用从库上的二进制日志更新log-bin=c:/MySQL/mysqlbin/mysql-bin/配置二进制日志server-id = 2 /从库服务器唯一ID /主库主机IPmaster-user = back /主库中用于备份的账号master-password = b
4、ack /用于备份的账号密码master-port = 3306 /连接主库的端口重启MySQL1.3 启动同步在主服务器MySQL命令符下查看主库状态,结果如下:mysql show master status;ERROR 2006 (HY000): MySQL server has gone awayNo connection. Trying to reconnect.Connection id: 2Current database: baktest| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | log-bin.000001 |
5、98 | baktest | mysql,test |1 row in set (0.20 sec)在从服务器B上做如下更改:Mysqlslave stop; /停止同步线程CHANGE MASTER TO MASTER_LOG_FILE=log-bin.000001,MASTER_LOG_POS=98; /修改同步到主服务器的日志文件名和从服务器应从主服务器上进行新的更新的坐标点slave start; /启动同步线程用show slave statusG查看从服务器的同步情况:Slave_IO_Running: YesSlave_SQL_Running: Yes同步成功2.增量备份压缩从库
6、中的二进制日志进行增量备份(加密/自动添加日期时间后缀)并转储到指定的位置,任务计划每周一次,数据保留一个月。压缩完成后删除源文件Net stop msyqlc:progra1winrarwinrar a -ag -hppeng -k -r -df -ep2 E:MySQLmysqlbakbinlog_bak_ D:MySQLmysqlbin*net start mysql3完整备份3.1 SQL级完整备份转储所有数据为sql脚本文件,做完整备份。参数:刷新日志/包含change master to语句c:MySQLbinmysqldump -uroot p -flush-logs -mast
7、er-data=13.2 Winrar压缩Data目录编写压缩文件脚本,创建包括所有数据库的归档文件。net stop mysqlc:progra1winrarwinrar a -ag -hppeng -k -r -ep2 D:MySQLmysqlbakmkdata_bak_ D:MySQLdatamorefun_accountdata0 D:MySQLdatamorefun_accountdata1 D:MySQLdatamorefun_accountdata2 D:MySQLdatamorefun_accountdata3 D:MySQLdatamorefun_roledata0 D:My
8、SQLdatamorefun_roledata1 D:MySQLdatamorefun_roledata2D:MySQLdatamorefun_roledata3 D:MySQLdatamysql D:MySQLdatatestc:progra1winrarwinrar a -ag -hppeng -k -ep2 D:mysqlbakslave_log_ D:MySQLdatamaster.info D:MySQLdata*relay /将中继日志和主服务器的状态文件进行压缩保存备份net start mysql winrar参数说明:-ag以当前日期和时间生成压缩文件名;-hp加密文件数据和
9、头,如果你希望确保压缩文件的安全性,密码不要使用少于 8 个字符,或是容易被猜测出来的;-k锁定压缩文件防止对 WinRAR 所做的任何压缩文件修改;-r连同子文件一起压缩;-ep2压缩时存储完整的文件路径。每天做一次过期备份文件清理forfiles /p d: /s /m mkdata*.rar /d -30 /C CMD /c del /q /f file /删除30天前的从库压缩完整备份文件forfiles /p d: /s /m slave*.rar /d -30 /C CMD /c del /q /f file /删除30天前的从库中继日志压缩备份文件forfiles /p e: /
10、s /m binlog_bak_*.rar /d -30 /C CMD /c del /q /f file /删除30天前的从库上的增量压缩备份文件forfiles /p d: /s /m mysql-bin* /d -7 /C CMD /c del /q /f file /删除7天前的主库上的二进制文件数据恢复1.完整备份+增量备份的数据恢复完整备份恢复mysql uroot p use 数据库利用mysqlbinlog工具可以实现在已有二进制文件中指定任意时间点的恢复如恢复到截止时间为“2009-10-13 14:51:00”的数据,先清空所有库的所有记录,执行完整备份操作,再执行以下恢复
11、操作。mysqlbinlog.exe -stop-datetime=2009-12-03 10:12:19 D:mysqllogbinmysql-bin.000001 |mysql -uroot -proot该方式可以达到要求很精准的时间点的数据恢复(恢复时间:1G的日志文件在AMD 单核 1.9GHz主机上耗时3分钟。)从库中的二进制日志可以直接在主库上恢复2 Winrar覆盖目录将winrar压缩的完整备份解压后覆盖DATA目录即可问题与建议1. 用dump完整备份,在测试环境:amd 单核 1.9GHZ 内存:2G的虚拟机中,备份1.2G的数据需要4分钟,恢复数据4分钟。估计在大数据量的完整备份+增量备份与恢复时,比较耗时,建议不是对数据恢复的时间点精度要求很高的情况下采用覆盖data目录的方式。2. 在从服务器上做恢复后导出脚本或copy目录,对主服务器进行恢复操作。魔方软件彭江陵2009-10-14
限制150内