首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过特定日期的二进制日志查看数据库中执行的内容?

问如何通过特定日期的二进制日志查看数据库中执行的内容?
EN

Database Administration用户
提问于 2012-08-16 15:00:17
回答 2查看 923关注 0票数 2

我正在尝试找出如何“查询”绑定日志,以查看数据库中针对特定日期所执行的内容。例如,如果我执行mysqlbinlog,那么这个东西就会永远运行,它必须查看那里到底执行了什么,特别是如果binlog很大的话。谢谢!

EN

回答 2

Database Administration用户

发布于 2012-08-16 20:03:49

您可以给mysqlbinlog日期时间戳

下面是一个示例datadir文件夹

代码语言:javascript
复制
[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。运行以下命令:

代码语言:javascript
复制
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,您必须跨越两个二进制日志。因此,您将运行以下操作:

代码语言:javascript
复制
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

试试看!!

票数 1
EN

Database Administration用户

发布于 2012-08-16 15:40:21

我做的最快的方式,

mysqlbinlog \ grep 'YYYY-MM-DD HH:MM‘

如果要将最大binlog大小设置为一个高值,或者甚至根本不设置它(我认为默认值是2GB),那么这就是mysqlbinlog需要一段时间来转换它的原因,而这正是它的情况。

另一个使bin日志文件庞大并需要一段时间进行解析的原因是您正在使用的复制模式。基于行的文件更大。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/22611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档