原文链接: https://www.cnblogs.com/wangwust/p/6433453.html
1、查看是否开启了binlog:show binary logs
默认情况下是不开启的。
2、开启binlog:修改mysql的配置文件my.ini。添加如下配置:
该文件默认不允许修改,需要右键“管理员取得所有权”之后才能保存修改。
另外, 需要注意的是图中的my.ini位于:C:\ProgramData\MySQL\MySQL Server 5.7,而不是位于:C:\Program Files\MySQL\MySQL Server 5.7。 看图:
3、重启mysql服务。如图:
4、验证binlog是否开启:show variables like 'log_bin'和 show binary logs
5、binlog文件的位置:如果在修改my.ini的binlog时给的是全路径,那么生成的日志文件就在指定的目录下;如果如步骤2中只给一个名字,那么生成的binlog日志的位置为:
mysqlbinlog 是将 binlog 解析成可读可执行的 SQL 的重要工具。
但解析体积较大的 binlog 时,如何查看 mysqlbinlog 的执行进度就变成了一个问题,mysqlbinlog 并未提供 –progress 这样的参数。
那要怎么查看 mysqlbinlog 的解析进度?
实验
我们在 实验 08 中介绍了如何生成随机数据。可以利用其中技巧,生成较大的 binlog,我们忽略这个过程。
从已有的 binlog 开始,bin.000002 大约有 1.1 个 G:
请点击输入图片描述
用 mysqlbinlog 解析该 binlog:
请点击输入图片描述
大概会执行 4.6 秒左右。大家仔细做实验时,可以将 binlog 放大一些,让执行实验更长一些。
我们在 mysqlbinlog 解析时,查看其文件句柄:
请点击输入图片描述
可以看到 mysqlbinlog 用句柄 3 读取 binlog。(我们暂时忽略句柄 4 指向的临时文件,其涉及到了行格式的解析过程,我们安排在以后的实验中慢慢介绍)
获取了 mysqlbinlog 处理文件句柄 3 的进度,就可以大概估算 mysqlbinlog 的整体进度:
请点击输入图片描述
可以看到 mysqlbinlog 此时的进度大概是 600M 左右,整体进度估算为 54%。
结论
我们无法让 mysqlbinlog 直接输出进度,于是通过观察 mysqlbinlog 对 binlog 的读取进度,估算mysqlbinlog 的整体处理进度。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)