Percona XtraDB Cluster 的一些使用限制(PXC 5.7)

張衝andy發表於2018-10-09

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

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

參考連結:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2215749/,如需轉載,請註明出處,否則將追究法律責任。

相關文章