lovegigi 发表于 2017-6-29 10:05:20

windows下mysqlbinlog二进制恢复

  Mysql数据恢复主要针对Windows游戏引擎服务器意外宕机,以及游戏出现重大BUG,导致需要回档。
  注意:请在恢复数据库之前,备份目标数据库,切记!
  一、Windows服务器意外DOWN机,数据库恢复操作流程:
  1、数据库恢复之前,必须通知联运平台,提前出维护公告,恢复时间根据目录数据库的数量,来决定恢复时间,一般约2个小时。
  2、确定需恢复的目标游戏服游戏引擎为关闭状态,记录目录服宕机时间。例如:2011-09-29 14:09:27 请查看系统事件查看器获得正确的异常关机时间
  注意:当服务器出问题的时间与重启服务器的时间不一致时,数据恢复的时间应按照短信报警的时间(5分钟延迟)来确定。

  3、关闭mysql服务,在服务器上操作前先关闭二进制日志,my.ini中将expire_logs_days=5和log-bin这两行进行注释,注释后重启mysql服务,待恢复完毕后再开启

  4、删除目标数据库(删除之前确认数据已备份)
  5、登陆数据库,创建目标数据库,相关root权限,请找项目组长。
  6、从本地服务器备份目录取当天早上5:00的备份目标数据库sql包,解压后,并导入对应的目标数据库.
  7、以上操作,数据库将还原到早上5:00点,取今天5点至故障时候相关联的二进制日志文件,修改日期表示这个二进制文件生成的结束时间。

  使用命令进行二进制日志还原,注意以下还原是针对所有数据库进行二进制恢复。

  提示:如果logbin文件只有一个,数据恢复的sql语句应指明开始 和 结束时间。如:

  8、如果只需要恢复一个数据库,必须要指定数据库,否则将对全服的数据库进行操作。如
  D:\>mysqlbinlog-d cq_actor1 --stop-datetime="2013-10-27 19:00:00""D:\Program Files\MySQL\MySQL Server 5.0\data\mysql-bin.000244"   | mysql -uroot -p
  9、至此恢复完毕,关闭mysql,取消login注释,开启DBengine和游戏引擎即可。
  10、游戏测试,提前与对方平台运营沟通,测试游戏,确保游戏没有问题,在开游戏入口。
  二、游戏出现BUG,需要回档处理,数据库恢复操作流程:
  1、游戏出现bug,需要对目标服务器的某一个数据库进行回档操作,操作之前,需要与运营沟通维护时间。
  2、关闭目标服游戏引擎、网关、数据服务。
  3、备份目标数据库.
  4、通过项目组长删除目标数据库,并重设root密码.
  5、新建目标数据库,并导入本地服务器备份目标sql
  6、通过分析二进制文件,确定恢复的开始时间与结束时间。
  7、数据恢复完成后,开启游戏相关程序,并做测试。
  8、测试完成后,确保没有问题,通知对方平台开启入口。
  附:mysqlbinlog命令和参数的说明:
  ?--start-pos=N//从二进制日志中第1个位置等于N参量时的事件开始读。
  ?--stop-pos=N   //从二进制日志中第1个位置等于和大于N参量时的事件起停止读。
  --start-datetime 上面同理 只是使用日期来恢复
  格式:mysqlbinlog 日志文件 参数 | mysql -u用户名 -p密码
  mysqlbinlog liangck.000001 | mysql -uroot –p123456表示 全部恢复
  mysqlbinlog liangck.000002 --start-pos=417 --stop-pos=773 | mysql -uroot -p123456 表示 从417至773位置
  mysqlbinlog liangck.000002 --stop-pos=773 | mysql -uroot -p123456表示 从头至773位置
  mysqlbinlog liangck.000002 --start-pos=417 | mysql -uroot -p123456 表示 从417至尾 位置
  mysqlbinlog liangck.000002 --start-datetime="2004-12-25 11:25:56"| mysql -uroot -p123456 日期参数和pos同理
页: [1]
查看完整版本: windows下mysqlbinlog二进制恢复