Percona-Tools

使用和不使用 –safe-slave-backup 的 xtrabackup 有區別嗎?

  • September 16, 2014

目前我正在研究 Percona 的 xtrabackup。在“在複製環境中進行備份”段落的手冊中,它說--safe-slave-backup 始終建議使用該選項,並且我理解其背後的原因。

我現在只是想知道,當我不使用此選項時,結果是否確實存在差異。在備份上應用日誌後,我不明白為什麼使用或不使用此選項進行的備份之間應該存在差異。

我在問,因為在我們的生產環境中我們不使用這個選項。備份在午夜執行,但在今晚失敗了。備份是在奴隸上進行的,我對現在停止 SQL 執行緒進行備份有一種不好的感覺。

正如手冊所說

此選項停止從 SQL 執行緒並等待開始備份,直到Slave_open_temp_tablesinSHOW STATUS為零。

$$ … $$SQL 執行緒將被啟動和停止,直到沒有打開的臨時表

這樣做的原因是因為 Percona Xtrabackup 基本上模仿了伺服器的受控崩潰/關閉,並且臨時表可以使從站不一致,正如您在 MySQL 手冊中看到的那樣這本身不是一致性問題(buckup 將與給定的時間戳/binlog 保持一致),但它可能會使從站在與主站重新同步時失去一些事務(典型用法 - 複製從站以創建另一個)。

如果您使用基於 ROW 的複制,則不會發生這種情況,因此我建議您使用它。但是有些人不能或不想使用它,所以這是 100% 確保新奴隸正常工作的方法。在典型的複制場景中,使用--safe-slave-backup可能不是很成問題,假設沒有創建很多臨時表,但這是解決方法(通常添加這些選項是因為過去有人遇到問題)。

我建議您始終使用--slave-info,除非您使用 GTID 複製。

正如自己的手冊所說,pt-table-checksum用於測試備份是一個很好的建議。

引用自:https://dba.stackexchange.com/questions/76660