作者: AnySQL.net,原文: http://www.anysql.net/mysql/mysql_binlog_miner.html
MySQL中也提供了一个名为mysqlbinlog的工具, 用来解释或取出存放在binlog中的SQL语句。
mysqlbinlog最基本的使用语法如下:
mysqlbinlog [options] log_file ...
在选项中, 可以指定一些过滤条件, 来解出你所想用的东西, 这样的选项有:
--database=db_name, -d db_name --offset=N, -o N --[start|stop]-datetime=datetime --[start|stop]-position=N
解出来的就是一条一条SQL语句了, 将这些语句执行一下, 就等于增量恢复了, 估计不是用绑定变量的, 可能在MySQL中是不是绑定变量不是很重要了. 当然重要的一点是不要运行多个进程去跑, 因为这样的话, 顺序就得不到保证了. 如下所示:
$ mysqlbinlog binlog.000001 > /tmp/statements.sql $ mysqlbinlog binlog.000002 >> /tmp/statements.sql $ mysql -e "source /tmp/statements.sql"
MySQL的binlog似乎是很简单的就是记录SQL。而且不会分解到rowid。基本上可以猜测是没有Undo SQL。MySQL在这一块设计的太简单,其replication也很简单。 |