如何在恢复数据之前捕获二进制日志的 SQL 语句并对其进行编辑(MySQL 的时间点恢复)

如果我们已设置二进制日志并希望恢复二进制日志,但希望从数据恢复中省略一个或者多个特定 SQL 语句,我们可以使用 mysqlbinlog 实用程序并将结果重定向到文本文件进行编辑。
完成后,我们可以将编辑过的文件传递给 MySQL,以便通过 mysql 客户端进行处理。
要重定向 mysqlbinlog 的输出,我们需要输入如下内容:

mysqlbinlog /var/log/mysql/bin.123456 \
    > /tmp/mysql_restore.sql

这将在 /tmp 目录中创建一个简单的文本文件(我们将调整服务器的路径)。
这是通过使用重定向(即大于号)来实现的。
顺便说一下,第一行的反斜杠是表示命令分布在两行。
我们可以编辑使用文本编辑器(如 vi 或者 notepad.exe)创建的文本文件。
不要使用文字处理器,因为它可能会在文件中添加二进制格式代码,这会在我们将文件交给 mysql 时出现问题。
删除不需要的 SQL 语句并保存还原文件后,我们可以像这样通过 mysql 客户端运行它:

mysql -u root -pmypwd \
   < /tmp/mysql_restore.sql

请注意,在这种情况下,小于号用于重定向标准输入(即 STDIN)。

日期:2020-09-17 00:11:38 来源:oir作者:oir