0

我像这样运行 MySQL 数据库转储:

mysqldump mydatabase -u root -p --single-transaction --events --routines --quick --master-data=2 --flush-logs --flush-privileges > mydump.sql

这将创建一个转储文件,其中包含以下行:

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000008', MASTER_LOG_POS=120;

这告诉我任何新的更改都记录在 mysql-bin.000008 开始

然后,我可以在加载我的转储文件后,像这样加载增量文件(假设 mysql-bin.000009 也在某个时候创建​​):

mysqlbinlog mysql-bin.000008 mysql-bin.000009 | mysql -u root -p mydatabase

但是 MASTER_LOG_POS = 120 呢?我是否需要包括在内,如果需要,如何?我的转储命令包括 --flush-logs 所以它应该已经启动了一个全新的文件。

我正在阅读这里https://dev.mysql.com/doc/refman/5.7/en/backup-policy.html和这里https://dev.mysql.com/doc/refman/5.7/en/recovery -from-backups.html

4

1 回答 1

1

https://dev.mysql.com/doc/refman/5.6/en/mysqlbinlog.html#option_mysqlbinlog_start-position说:

--开始位置=N,-j N

从位置等于或大于 N 的第一个事件开始读取二进制日志。此选项适用于命令行上命名的第一个日志文件。

此选项对于时间点恢复很有用。

于 2019-04-10T00:25:10.317 回答