1. 程式人生 > >Percona XtraDB Cluster 的一些使用限制(PXC 5.7)

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工作負載。    如果未在所有節點上同步執行,則可能導致節點不一致。