“Percona-XtraDB-Cluster 禁止對駐留在非事務性儲存引擎中的表(<範例>)使用 ALTER 命令”
我安裝了一個
pxc_strict_mode
設置為的 Percona XtraDB 集群ENFORCING
,並嘗試從非 Galera MariaDB 伺服器導入數據庫。這適用於某些數據庫,通過轉儲它們並通過mysqldump --skip-locks -K
導入它們mysql <database> < <dumpfile>
(在使用創建空白數據庫之後CREATE DATABASE
)。然而,一個數據庫被拒絕導入:第 40 行的錯誤 1105 (HY000):Percona-XtraDB-Cluster 禁止在 pxc_strict_mode = ENFORCING 或 MASTER 駐留在非事務儲存引擎(切換到事務引擎除外)中的表(example.example)上使用 ALTER 命令
大多數網際網路執行緒只是建議暫時禁用
pxc_strict_mode
. 然而,鑑於其他數據庫導入沒有任何問題,我認為該問題應該可以通過更改附加到的標誌mysqldump
或修改轉儲文件中的語句來解決。我嘗試刪除轉儲中的所有 ALTER 語句,這會將上述錯誤更改為...prohibits the use of DML command...
.源 MariaDB 實例和新的 XtraDB 集群都配置了預設的 InnoDB 儲存引擎。
將不勝感激任何輸入。
Cluster 只能正確處理 InnoDB 表。聽起來你的一些桌子有
ENGINE=MyISAM
?計劃 A:編輯轉儲文件以將每個表更改為 ENGINE=InnoDB。
計劃 B:刪除有問題的 ALTER;載入數據(假設表成功轉換為 InnoDB);然後手動執行失去的 ALTER。
計劃 C:ALTER TABLE t ENGINE=InnoDB;傾倒前的每張桌子。
每個都有潛在的問題。一些在這裡列出:http: //mysql.rjweb.org/doc.php/myisam2innodb