Percona XtraDB Cluster 的一些使用限制(PXC 5.7)
Percona XtraDB Cluster有眾多的優秀特性,使得mysql叢集得以輕鬆實現。但是不要忽略了它的一些限制。如果你無法接受,或者你的應用程式或資料庫(比如使用了memory引擎)對限制無法做出調整,那PXC對你而言是不合適。限制有哪些呢,下文是其描述。
1、儲存引擎:
基於PXC的複製僅適用於InnoDB儲存引擎。 對其他儲存引擎的表,包括mysql.*表之類的系統表,任何寫入都不會被複制。 那建立使用者那豈不是無法同步了?關於這個問題。對於基於DDL方式的語句還是被支援的。 DDL語句使用基於語句級別的方式來實現(即不使用row模式)。 對mysql.*表的所有已DDL方式的更改都將以語句級別式進行復制。 如:CREATE USER… DDL被複制(語句級) INSERT INTO mysql.user… myisam儲存引擎,不會被複制,因為非DDL語句 當然也可以配置wsrep_replicate_myisam引數實現(不建議使用)
2、不支援的查詢:
LOCK TABLES在多主模式中不支援UNLOCK TABLES以及LOCK TABLES 鎖定功能,如GET_LOCK(),RELEASE_LOCK()等也不被支援
3、查詢日誌不能定向到表:
如果啟用查詢日誌記錄,則必須將日誌轉發到檔案 使用general_log和general_log_file選擇查詢日誌記錄和日誌檔名稱 log_output = file # Author : Leshami # Blog : https://blog.csdn.net/leshami
4、最大事務大小:
允許的最大事務大小由wsrep_max_ws_rows和wsrep_max_ws_size變數定義 LOAD DATA INFILE方式處理每10000行提交一次。對於大的事務將被分解眾多小型事務
5、叢集樂觀併發控制:
PXC叢集使用樂觀併發控制,事務發出COMMIT可能仍會在該階段中止 可以有兩個事務寫入相同的行並在單獨的Percona XtraDB叢集節點中提交,並且只有其中一個可以成功提交。 失敗的將被中止。對於叢集級中止,Percona XtraDB叢集返回死鎖錯誤程式碼: (Error: 1213 SQLSTATE: 40001 (ER_LOCK_DEADLOCK)).
6、由於可能的提交回滾,XA事務不受支援:
7、硬體配置短板限制:
整個群集的寫吞吐量受最弱節點的限制。如果一個節點變慢,整個叢集變慢。 如果您對穩定的高效能有要求,那麼它應該由相應的硬體支援。
8、建議的最小群集大小是3個節點。第三個節點可以是仲裁者。
9、InnoDB虛假更改功能不受支援。
10、enforce_storage_engine=InnoDB與wsrep_replicate_myisam=OFF(預設)不相容 。
11、binlog_rows_query_log_events變數不受支援。
12、高負載時避免ALTER TABLE … IMPORT / EXPORT
在叢集模式下執行Percona XtraDB叢集時,請避免ALTER TABLE … IMPORT / EXPORT工作負載。 如果未在所有節點上同步執行,則可能導致節點不一致。