Mysql
讓 Xtrabackup 忽略 myisam 表並僅備份 innoDB 表?
我正在使用 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' );