Replication

Galera 備份失敗並出現錯誤“mysqldump:錯誤 1213:嘗試獲取鎖定時發現死鎖;轉儲表時嘗試重新啟動事務”

  • November 2, 2016

我們在 dba.stackexchange.com 上 遇到了同樣的問題,來自 mysqldump –single-transaction 的死鎖,這可能嗎?. 我們提供 DBaaS,無法控制客戶的 DDL 語句。

mysqldump: Error 1213: Deadlock found when trying to get lock; try restarting transaction when dumping table `x` at row: x

在該錯誤之後,備份失敗。

這是備份命令

mysqldump --max_allowed_packet=1G -u root -pvubaluaGebetee1aichaingubaePho --opt --flush-logs --single-transaction  --all-databases | bzcat -zc > /var/lib/mysql/backup/$FILE`date +%Y%m%d-%H%M%S`.sql.bz2

接受的解決方案推薦Setup Master/Slave Replication。我們已經使用 Galera 多主複製。

> select version();
+----------------------+
| version()            |
+----------------------+
| 5.5.41-MariaDB-wsrep |
+----------------------+
1 row in set (0.00 sec)

其他想法如何確保備份完成?我不在乎是否有幾行不在備份中。

選項1

使用 galera 集群外的複制從屬設備專門用於創建備份。在進行轉儲之前,您可以停止從站以確保所有 DDL 操作都已完成。像 mydumper 這樣的並行轉儲操作也是可能的。

不要忘記在您用作主人的 galera 成員上啟用 log-slave-updates。

選項 2

在從 galera 節點進行備份之前取消同步它。

考慮使用 percona-xtrabackup - 這是一種非阻塞方法。還可以考慮使用 pbzip2(並行 bzip2)以加快備份過程。

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