現有三臺服務器(都是centos7,安裝mysql5.7):A:10.19.6.6B:192.168.3.101C:192.168.3.102使用xtrabackup備份A的MYSQL數據,然后恢復到BA的數據庫停用,B作為主數據庫數據正常更新。再使用B進行全量備份,恢復到C的數據庫,此時發現C上恢復的mysql的root密碼居然是A的數據密碼,而且最新的數據也還是A上的數據。。。發現數據庫中有innodb的表也有myisam的表,恢復后需要使用mysqlcheck進行修復后才能正常進行查詢
1 回答
忽然笑
TA貢獻1806條經驗 獲得超5個贊
我可以這樣理解上述操作嗎,A 備份傳到 B 恢復數據,沒有做主從復制;A 關閉數據庫;B 備份傳到 C 恢復,沒有做主從復制,然后發現 A 上有 n 條數據是 C 沒有的
xtrabackup備份的時候,如果是 InnoDB 表,會開啟事務再備份,如果 MySIAM 表,會鎖表備份,這樣備份出來的數據和開始備份的時間節點一致
A 的操作過程如下:
時間點1: 開始備份 A
時間點2: 數據繼續寫入 A
時間點3: A 備份完傳到 B 恢復
時間點4: 關閉 A 寫入
B 恢復后的數據實際上是 A 在時間點 1 的一個數據鏡像,所以在時間點 4,A 的數據要比備份數據多,也就是 B 的數據比 A 少了時間點 1 到 4 中間那部分數據。后續再備份 B 到 C 恢復也是同理。
xtrabackup 實質上是全量備份,當然也就包括 mysql.user 用戶表,恢復后就是 A 的數據,所以 C 上是 A 的密碼哦
如果要達到數據一致,只需恢復后開啟主從同步就可以
添加回答
舉報
0/150
提交
取消
