有个疑问,binlog 可以指定时间点进行回滚
但 mysqldump 怎么确定结束时间点呢?
因为只有知道 mysqldump 那个备份文件里的结束时间,我才能确定 binlog 回滚的开始时间要设置为多少
我备份的时候使用了--single-transaction
参数,那这个备份期间,其实还是有数据insert
,update
之类的操作。
所以想要用 mysqldump 的备份文件跟 binlog 进行数据无缝回滚,要怎么搞法。
2
choury 2018-06-01 12:38:53 +08:00 via Android
备份开始时用 show master status 看当前 binlog 位置,导入的时候就从这里导,不过备份里面要考虑的内容挺多的,锁表啊,事务啊,ddl 啊……
|
3
fanne OP @choury #2 开始时间知道的,关键是结束时间,假如数据库比较大,从开始导结束也有一段时间,无论长短,这段时间都会写东西进去的,然后不知道结束时间,那我 binlog 就无法定位从哪里开始还原了
|
4
defunct9 2018-06-01 13:58:33 +08:00
结束时间看 dump 出的文件的时间戳,就可以了吧。
|
7
MarioxLinux 2018-06-01 16:11:39 +08:00
了解一下参数 --flush-logs Flush MySQL server log files before starting dump
|
8
fanne OP @choury #5 现在是这个的,REPEATABLE-READ,你的意思是,mysqldump 这个 session,其实看不到其他 session 操作的,所以我那 binlog 恢复的时候,就拿 mysqldump 开始的那个时间点?是这么理解么
|
9
fanne OP |
10
Loyalsoldier 2018-06-01 18:54:17 +08:00
mysqldump -u user -p password --master-data database > database.sql
了解一下 👆 |