mysqlbinlog命令恢復資料要注意的問題彙總

chenfeng發表於2019-02-20

1.不要使用 base64-output=decode-rows 引數

--base64-output=decode-rows主要是解析或檢視ROW級別binlog日誌時使用,執行SQL時不要使用該引數。

例如:

/usr/local/mysql-8.0.13/bin/mysqlbinlog mysql-bin.000004 | mysql -uroot -p'123456'

或者

/usr/local/mysql-8.0.13/bin/mysqlbinlog mysql-bin.000004 > /tmp/rollback.sql

mysql -uroot -p'123456' < /tmp/rollback.sql



2.是否應該使用--skip-gtids=true引數

第一種情況:

如果我們是要恢復資料到源資料庫或者和源資料庫有相同 GTID 資訊的例項,那麼就要使用該引數。如果不帶該引數的話,是無法恢復成功的。

# /usr/local/mysql-8.0.13/bin/mysqlbinlog --skip-gtids=true  mysql-bin.000001 |mysql -uroot -p

或者

# /usr/local/mysql-8.0.13/bin/mysqlbinlog --skip-gtids=true  mysql-bin.000001 > rollback.sql

mysql -uroot -p'123456' < rollback.sql



第二種情況:

如果是恢復到其他例項的資料庫並且不包含源例項的 GTID 資訊,那麼可以不使用該引數,使用或者不使用都可以恢復成功。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2636462/,如需轉載,請註明出處,否則將追究法律責任。

相關文章