使用 xtrabackup 物理備份還原時,要求 innodb_file_per_table=ON。部分舊表仍存於共享表空間 ibdata,需在維護窗口重建表(ALTER TABLE ... ENGINE=InnoDB)產生獨立 .ibd 檔案。
錯誤集中在 DATE、DATETIME、TIMESTAMP 欄位。經排查為 MariaDB 10.1 對時間類型儲存格式更嚴格。
解法:放棄 IMPORT TABLESPACE,改用 mysqldump 邏輯備份還原,速度可接受且相容性最佳。
因備份與建立複寫有時間差,從庫重放 relay log 時遇到重複主鍵。
緊急繞過:SET GLOBAL slave_skip_errors = 1062;
加速追趕:啟用 MariaDB 10.1 多執行緒複寫:
SET GLOBAL slave_parallel_mode = 'optimistic'; SET GLOBAL slave_parallel_threads = 6; SET GLOBAL innodb_flush_log_at_trx_commit = 0; -- 僅追趕期間暫時關閉,追上後恢復 1
觀察 SHOW PROCESSLIST 確認多 SQL 執行緒並行回放。