Mysql 的 二进制 日志 不仅仅用于 Replicate\审计 等情况, 完全可以像其他 RDBMS 系统那样用来进行备份还原.
具体操作步骤如下:
(可选): 备份 二进制的日志文件
step1: 启动服务器 mysqld: 确保使用一些选项:
#取消二进制启动
#log-bin
#允许salve i/o thread 读取自身server-id的二进制日志记录
replicate-same-server-id
#slave线程不自动启动. 保险起见,可以不设置
skip-slave-start
#定义relay-log的basename
relay-log="原来log-bin(二进制日志的)basename"
step2: 配置slave线程信息 change master to
change master to
relay_log_file='起始的 二进制 日志文件',
relay_log_pos=起始的 二进制 日志文件 位置,
master_host='一个虚假的不可用的主机或ip'
;
该语句中的 "master_host" 仅仅是语法需要,并不进行实际的连接.
step3: 启动 slave 线程,进行还原
start slave;
记住,清理掉 data 目录下的 和 slave 相关的文件!
题外: 所有的关键是: 建立良好的备份策略,提供完整的备份信息.以该种方式还原来看,平时 dba 就必须提供备份时的时间点,binlog文件索引号甚至是show master status的信息.否则必须逻辑上来确定还原点才行!