Mysql

讓 Xtrabackup 忽略 myisam 表並僅備份 innoDB 表?

  • May 10, 2019

我正在使用 mysql 5.7(或者更確切地說是 percona 5.7)

是否可以使用 xtrabackup 僅備份 innodb 表(很容易,不要一一指定每個表,因為我有很多表)?並且不考慮只讀的 myisam 表?

如果我沒記錯的話,如果你有 myisam 表,它將鎖定整個數據庫,從而在備份過程中破壞應用程序。

Xtrabackup 網站有不同的說法:

Percona XtraBackup 可以通過在備份結束時短暫暫停寫入來備份以下儲存引擎

這些資訊曾經在文件中,可能更詳細,但現在只剩下這個神秘的說法。可能你太擔心了,但我還是會回答剩下的問題。

似乎沒有任何方法可以輕鬆地從備份中排除非 InnoDB 表。您可以做的是使用–table-exclude手動排除這些表如果您有整個數據庫專用於非 InnoDB 表,–databases-exclude應該更易於使用。

您可以使用此查詢動態組合這些表的列表:

SELECT GROUP_CONCAT(CONCAT(TABLE_SCHEMA, '.', TABLE_NAME) SEPARATOR ',')
   FROM information_schema.TABLES
   WHERE
       ENGINE <> 'InnoDB'
       AND ENGINE IS NOT NULL
       AND TABLE_SCHEMA NOT IN (
           'mysql',
           'performance_schema',
           'information_schema',
           'sys'
       );

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