我正在尝试找出如何“查询”绑定日志,以查看数据库中针对特定日期所执行的内容。例如,如果我执行mysqlbinlog,那么这个东西就会永远运行,它必须查看那里到底执行了什么,特别是如果binlog很大的话。谢谢!
发布于 2012-08-16 20:03:49
您可以给mysqlbinlog日期时间戳
下面是一个示例datadir文件夹
[root@********* mysql]# ls -l /var/lib/mysql/mysql-bin.*
-rw-rw---- 1 mysql mysql 1073742028 Aug 13 03:29 /var/lib/mysql/mysql-bin.003111
-rw-rw---- 1 mysql mysql 1073741943 Aug 15 13:37 /var/lib/mysql/mysql-bin.003112
-rw-rw---- 1 mysql mysql 434864318 Aug 16 16:00 /var/lib/mysql/mysql-bin.003113
-rw-rw---- 1 mysql mysql 57 Aug 15 13:37 /var/lib/mysql/mysql-bin.index假设您希望看到从上午10:45到8月14日下午2:25执行的所有操作。8月14日的全部时间都在/var/lib/mysql/mysql-bin.003112。运行以下命令:
mysqlbinlog --start-datetime="2012-08-14 10:45:00" --stop-datetime="2012-08-14 14:25:00" /var/lib/mysql/mysql-bin.003112 > SQL.txt如果您的范围是8月13日下午5:00到8月14日凌晨2:00,您必须跨越两个二进制日志。因此,您将运行以下操作:
mysqlbinlog --start-datetime="2012-08-13 17:00:00" --stop-datetime="2012-08-14 02:00:00" /var/lib/mysql/mysql-bin.003111 /var/lib/mysql/mysql-bin.003112 > SQL.txt试试看!!
发布于 2012-08-16 15:40:21
我做的最快的方式,
mysqlbinlog \ grep 'YYYY-MM-DD HH:MM‘
如果要将最大binlog大小设置为一个高值,或者甚至根本不设置它(我认为默认值是2GB),那么这就是mysqlbinlog需要一段时间来转换它的原因,而这正是它的情况。
另一个使bin日志文件庞大并需要一段时间进行解析的原因是您正在使用的复制模式。基于行的文件更大。
https://dba.stackexchange.com/questions/22611
复制相似问题