超詳細,多圖文使用galera cluster搭建mysql集群並介紹wsrep相關參數

  • 2020 年 3 月 12 日
  • 筆記

超詳細,多圖文使用galera cluster搭建mysql集群並介紹wsrep相關參數

介紹galera cluster原理的文章已經有一大堆了,百度幾篇看一看就能有相關了解,這裡就不贅述了。本文主要側重實操,因為跟着百度前幾頁的搭建教程或多或少都有坑,前後配置邏輯矛盾的也有。終於,經過幾個通宵的bug修復,反覆驗證,力求以最簡潔的代碼,最少的操作量,最直白的邏輯來完成集群的搭建。因為操作過程中,網上對wsrep相關參數的介紹少之又少,所以最後特別寫了完整版的參數說明,供搭建成功後,各種測試調試使用,對於這些參數有坑的地方,歡迎在底下留言,供大家參考,謝謝。

對於mysql的集群方案,我之前總結過,詳情點擊查看,多圖文,詳細介紹mysql各個集群方案

一,需求了解

Galera Cluster需要至少三個節點的服務器硬件。

如果群集在單個交換機上運行,請使用三個節點。如果您的群集跨越多個交換機,請使用三個交換機。如果您的群集跨越網絡,請使用三個網絡。如果您的群集跨越數據中心,請使用三個數據中心。這樣可以確保在網絡中斷的情況下,群集可以維護主組件。

1,硬體需求

對於服務器硬件,每個節點至少需要以下組件:

  • 1 GHz單核CPU;
  • 512 MB RAM;
  • 100 Mbps網絡連接;

注意:Galera Cluster可能會由於內存不足而在有限的硬件上運行時偶爾崩潰。為避免這種情況,請確保分配了足夠的交換空間。

2,軟件需求

對於軟件,群集中的每個節點至少需要以下條件:

  • 已安裝Linux或FreeBSD操作系統;
  • 帶有wsrep API補丁的MySQL或MariaDB服務器,已安裝Galera複製插件。

注意:Galera Cluster的二進制安裝軟件包包括帶有wsrep API補丁的數據庫服務器。但是,從源構建時,必須手動應用此修補程序。

二,準備服務器

在開始安裝過程之前,需要完成一些任務以為Galera Cluster準備服務器。您必須在集群中的每個節點上執行以下步驟。

1,配置SELinux

如果在服務器上啟用了SELinux(增強安全性的Linux),則它可能會阻止mysqld執行所需的操作。您必須對SELinux禁用mysqld或對其進行配置,以允許mysqld運行外部程序並在非特權端口上打開偵聽套接字,即非特權用戶可以執行的操作。在這裡我看了看它的狀態 cat /etc/selinux/config,然後就直接把它給禁用了。

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config  setenforce 0

若服務器必須要啟用SELinux,請查閱selinux和mysql

2,配置防火牆

接下來需要更新每個節點上的防火牆設置,以便它們可以與群集通信。具體執行方式取決於您的發行版和所使用的特定防火牆軟件。在這裡我看了看防火牆狀態 firewall-cmd --state ,就直接把它關閉了。

systemctl stop firewalld.service  systemctl disable firewalld.service

有關為Galera Cluster設置防火牆以及其他用於在Linux和FreeBSD中配置數據包過濾的程序的詳細信息,請參閱防火牆設置

3,禁用AppArmor

默認情況下,某些服務器(例如Ubuntu)包括AppArmor,這可能會阻止mysqld打開其他端口或運行腳本。 您必須禁用AppArmor或對其進行配置,以允許mysqld運行外部程序並在非特權端口上打開偵聽套接字。在這裡我就禁用AppArmor了。

ln -s /etc/apparmor.d/usr /etc/apparmor.d/disable/.sbin.mysqld

輸入效果如下所示,因為我是centos,不是Ubuntu的,所以禁用APPArmor是不需要的操作,這裡只是為了演示。

lgx_211

三,安裝Galera群集

1,依賴包準備

安裝過程十有八九會報錯,會提示依賴檢測失敗,請按照提示,下載相關依賴。這是我依據下面的安裝順序進行安裝而報錯,我為此逐個而安裝的依賴。我的centos是剛安裝的最簡版,所以缺很多東西,你可以先把以下這些依賴安裝完,再安裝mysql cluster相關的。

yum -y install lsof net-tools perl socat openssl openssl-devel boost-devel

有個安裝的文件和系統現有的有衝突,導致安裝失敗,卸載掉這個mariadb。

rpm -qa| grep mariadb  rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64

修改配置文件的時候,還有幾個依賴包是被需要的,提前下載好

rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm  yum -y install rsync jemalloc
2,下載、安裝

Galera Cluster由兩部分組成:Galera複製庫(galera-3)和使用寫集複製(WSREP)API擴展的MySQL版本(mysql-wsrep)。

若因軟件版本變化,導致無法下載,或者你不是centos系統,請自行訪問http://releases.galeracluster.com,找到可以下載的對應的版本。

強烈建議安裝順序按照下面所示,逐個來,因為後面的安裝需要依賴前面的安裝。

wget http://releases.galeracluster.com/galera-3/centos/7/x86_64/galera-3-25.3.29-1.el7.x86_64.rpm  wget http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/mysql-wsrep-5.7-5.7.29-25.21.el7.x86_64.rpm  wget http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/mysql-wsrep-client-5.7-5.7.29-25.21.el7.x86_64.rpm  wget http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/mysql-wsrep-common-5.7-5.7.29-25.21.el7.x86_64.rpm  wget http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/mysql-wsrep-devel-5.7-5.7.29-25.21.el7.x86_64.rpm  wget http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/mysql-wsrep-libs-5.7-5.7.29-25.21.el7.x86_64.rpm  wget http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/mysql-wsrep-libs-compat-5.7-5.7.29-25.21.el7.x86_64.rpm  wget http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/mysql-wsrep-server-5.7-5.7.29-25.21.el7.x86_64.rpm    rpm -ivh mysql-wsrep-common-5.7-5.7.29-25.21.el7.x86_64.rpm  rpm -ivh mysql-wsrep-libs-5.7-5.7.29-25.21.el7.x86_64.rpm  rpm -ivh mysql-wsrep-client-5.7-5.7.29-25.21.el7.x86_64.rpm  rpm -ivh mysql-wsrep-libs-compat-5.7-5.7.29-25.21.el7.x86_64.rpm  rpm -ivh mysql-wsrep-server-5.7-5.7.29-25.21.el7.x86_64.rpm  rpm -ivh mysql-wsrep-5.7-5.7.29-25.21.el7.x86_64.rpm  rpm -ivh mysql-wsrep-devel-5.7-5.7.29-25.21.el7.x86_64.rpm  rpm -ivh galera-3-25.3.29-1.el7.x86_64.rpm

最終效果如下所示

lgx_211

3,修改配置
vi /etc/my.cnf

打開配置文件,按 i 進入編輯模式,增加以下配置信息。

wsrep-provider=/usr/lib64/galera-3/libgalera_smm.so   # wsrep提供者,我的是在這個目錄下    wsrep_cluster_name='mysql_cluster'  #集群的名字,必須是統一的  wsrep_cluster_address=gcomm://192.168.119.128,192.168.119.129,192.168.119.130  #集群中的其他節點地址    wsrep_node_name = node1              #該節點的名稱  wsrep_node_address='192.168.119.128' #該節點的地址    wsrep_sst_method=rsync    # 集群使用rsync同步方式  wsrep_sst_auth=lgx:666666 # 集群同步的用戶名密碼

完成以上修改,Esc退出編輯模式,輸入:wq 保存並退出。 類似同樣的操作操作再來兩次。最終效果如下所示

lgx_211
注意:每個節點的 server-id,wsrep_node_name,wsrep_node_address 是不一樣的。

4,啟動第一個節點

啟動第一個節點以前,其節點的配置文件裏面,不能配置其它節點的ip,即 wsrep_cluster_address=gcomm:// 這樣就行了,否則會導致啟動報錯。待集群啟動後,再修改它的配置文件,把其他節點的ip補充上去。

啟動第一個節點,該命令會啟動本機的 mysqld 服務,命令只在集群第一個節點啟動時使用,因為該腳本中帶有一個參數:–wsrep-new-cluster,代表新建集群。

/usr/bin/mysqld_bootstrap

查看mysqld服務狀態,判斷是否成功啟動,並創建了新集群。

systemctl status mysqld

效果圖如下所示

lgx_211

5,啟動其它節點

逐個啟動其它節點的服務,並查看是否啟動成功。

systemctl start mysqld    systemctl status mysqld

可以看到,節點已經啟動。

lgx_211

6,集群驗證

因為數據庫剛剛初始化,超級用戶root是沒有密碼的,系統會給幾個臨時的root密碼。再修改root密碼時,需要你用其中一個臨時密碼確認一下,即紅框所示。新輸入的密碼若不夠複雜,會被安全原因拒絕生效。

grep -i 'temporary password' /var/log/mysqld.log    mysqladmin -u root -p 'LGX_211_lgx'

lgx_211

現在用剛剛設置的root密碼,來登錄某一台主機上的mysql,看看當前節點的數據庫狀態,再來看看集群的狀況。

mysql -u root -p    show status like 'wsrep_local_state_comment';    show status like 'wsrep_cluster_size';

由紅框可以看出,當前的節點是正常提供服務的狀態,且與集群數據狀態是一致的。由籃框可知,當前集群一共有三個節點。

lgx_211

Open:節點啟動成功,嘗試連接到集群

Primary: 節點已處於集群中,在新節點加入時,選取donor進行數據庫同步時會產生的狀態
Joiner: 節點處於等待接收或正在接收同步文件的狀態
Joined: 節點完成數據同步,但還有部分數據不是最新的,在追趕與集群數據一致的狀態
Synced: 節點正常提供服務的狀態,表示當前節點數據狀態與集群數據狀態是一致的
Donor: 表示該節點被選為Donor節點,正在為新加進來的節點進行全量數據同步,此時該節點對客戶端不提供服務

7,數據複製驗證

在節點1, mysql -u root -p 登錄mysql,創建數據庫,並建表,填充數據。

create database test;  use test;  create table t1(a int);  insert into t1 values(1);

如下所示

lgx_211
在節點2,也建一個表,填充數據。

use test;  create table t2(a int);  insert into t2 values(2);

同理,在節點3,也建一個表,填充數據。

use test;  create table t3(a int);  insert into t3 values(3);

然後,隨機選一個節點,來查詢剛剛輸入的信息。

select t1.a,t2.a,t3.a from test.t1,test.t2,test.t3;

效果如下所示,在任一一個節點上可以查出剛剛在三個節點上輸入的信息。

lgx_211
8,其它測試

單個節點掛掉不影響其它節點正常對外的讀寫操作。

增加節點,我的電腦已經沒有條件在裝一台虛擬機了。

四,wsrep配置一覽

之前的配置文件是剛開始測試所必須的最簡版。這裡我匯總整理了所有的可配置項,供你上生產運營環境的時候,增加相關配置。

wsrep_auto_increment_control

如果設置為1(默認值),將根據集群的大小以及集群大小的變化自動調整auto_increment_increment和auto_increment_offset變量。 這樣可以避免由於auto_increment而引起的複製衝突。 在主從環境中,可以設置為OFF。

wsrep_causal_reads

如果設置為ON(默認為OFF),則在整個集群中強制執行讀取提交的特徵。 如果主設備比從設備更快地應用事件,則兩者可能會短暫地不同步。 在將此變量設置為ON的情況下,從站將等待事件應用,然後再處理其他查詢。 設置為ON也將導致更大的讀取延遲。

wsrep_certification_rules

說明:要在集群中使用的認證規則。 可能的值為:
strict:可能會導致更多認證失敗的更嚴格的規則。 例如,對於外鍵,如果不同的節點大約在同一時間收到指向父表中同一行的無衝突插入,則可能導致認證失敗
optimized:寬鬆的規則,允許更多的並發性,並減少更少的認證失敗。

wsrep_certify_nonPK

說明:設置為「開」(默認值)時,將自動為沒有一個表的表生成主鍵。 這對於並行應用是必需的,強烈建議對所有表使用。

wsrep_cluster_address

說明:啟動時要連接的群集節點的地址,例如gcomm://192.168.0.1:1234?gmcast.listen_addr = 0.0.0.0:2345。 優良作法是以gcomm:// <node1或ip:port>,<node2或ip2:port>,<node3或ip3:port>的形式指定所有可能的群集節點。 指定一個空ip(gcomm://)將導致該節點啟動新群集(不應在my.cnf文件中完成此操作,因為每次重新啟動後,服務器將不會重新加入當前群集)。 在某些配置中,可以在運行時更改該變量,這將導致節點關閉與任何當前群集的連接,並連接至新地址。 如果指定端口,請注意這是Galera端口,而不是MariaDB端口。

wsrep_cluster_name

描述:集群的名稱。 節點無法連接到名稱不同的集群,因此在同一集群中的所有節點上都必須相同。

wsrep_convert_LOCK_to_trx

說明:將LOCK / UNLOCK TABLES語句轉換為BEGIN和COMMIT。 主要用於使較舊的應用程序與多主機設置一起使用,請謹慎使用,因為這可能會導致極大的寫入集。

wsrep_data_home_dir

說明:wsrep提供程序將在其中存儲其內部文件的目錄。

wsrep_dbug_option

說明:用於將DBUG選項傳遞給wsrep提供程序。

wsrep_debug

說明:當設置為ON(默認為OFF)時,調試消息也將記錄到錯誤日誌中。

wsrep_desync

描述:當節點接收到的寫集超出其可應用的數量時,事務將放入接收的隊列中。 如果節點的接收隊列等待應用的寫入集過多(如gcs.fc_limit WSREP提供程序選項所定義),則該節點通常將使用Flow Control。 但是,當此選項設置為ON時,將為取消同步的節點禁用Flow Control。 取消同步的節點將一直處理接收到的隊列,直到達到可管理的大小為止。 已取消同步的節點繼續從群集中的其他節點接收寫集。 群集中的其他節點不等待不同步的節點趕上,因此,不同步的節點可能甚至落在群集中的其他節點之後。 您可以通過檢查wsrep_local_state_comment狀態變量是否等於Donor / Desynced來檢查節點是否被取消同步。

wsrep_dirty_reads

說明:默認情況下,當不與組同步時(wsrep_ready = OFF),節點將拒絕除SET和SHOW之外的所有查詢。 如果wsrep_dirty_reads設置為1,則該節點將接受不更改數據的查詢,例如SELECT查詢(臟讀),創建prepare語句等。

wsrep_drupal_282555_workaround

說明:如果設置為ON,則啟用Drupal / MySQL / InnoDB錯誤#282555的解決方法。 這是一個錯誤,在某些情況下,將DEFAULT值插入到AUTO_INCREMENT列中時,可能會返回重複的鍵錯誤。

wsrep_forced_binlog_format

說明:一種二進制日誌格式,它將覆蓋所有會話二進制日誌格式設置。

wsrep_gtid_domain_id

說明:此系統變量定義用於wsrep GTID模式的GTID域ID。
當wsrep_gtid_mode設置為ON時,所有Galera Cluster寫集都將使用wsrep_gtid_domain_id代替gtid_domain_id。
當wsrep_gtid_mode設置為OFF時,將忽略wsrep_gtid_domain_id,以實現向後兼容。
為了使此模式生成一致的GTID,還需要滿足一些其他要求。

wsrep_gtid_mode

說明:Wsrep GTID模式嘗試使所有群集節點上的Galera Cluster寫入集的GTID保持一致。 在SST期間,GTID狀態最初會複製到聯接節點。 如果您打算將Galera Cluster與MariaDB複製一起使用,則wsrep GTID模式可能會有所幫助。
當wsrep_gtid_mode設置為ON時,所有Galera Cluster寫集都將使用wsrep_gtid_domain_id代替gtid_domain_id。
當wsrep_gtid_mode設置為OFF時,將忽略wsrep_gtid_domain_id,以實現向後兼容。
為了使此模式生成一致的GTID,還需要滿足一些其他要求。

wsrep_gtid_seq_no

說明:內部服務器使用情況,手動設置WSREP GTID seqno。

wsrep_ignore_apply_errors

說明:如果設置,將忽略複製錯誤。

wsrep_load_data_splitting

說明:如果設置為ON(MariaDB 10.4.2和更低版本的默認設置),則LOAD DATA INFILE通過引入事務拆分來支持大數據文件。 該設置已在Galera 4中棄用,並且從MariaDB 10.4.3默認為OFF。

wsrep_log_conflicts

說明:如果設置為ON(默認為OFF),則會記錄群集中發生衝突的MDL以及InnoDB鎖的詳細信息。

wsrep_max_ws_rows

說明:每個寫入集允許的最大行數。 在MariaDB Galera 10.0.27和MariaDB 10.1.17之前,此變量在內部被忽略,並且對節點沒有影響。 從MariaDB Galera 10.0.27和MariaDB 10.1.17起,已添加了對此變量的支持,並且為了向後兼容,默認值已更改為0,這實際上允許寫集為任意大小。

wsrep_max_ws_size

說明:每個寫入集允許的最大大小(以位元組為單位)。 超出此限制的Writeset將被拒絕。 請注意,MariaDB 10.1.17和MariaDB Galera 10.0.27以及之前的版本允許將最大值設置為2GB以上,這被Galera拒絕。

wsrep_mysql_replication_bundle

說明:確定分組在一起的複製事件的數量。 實驗實現旨在在單個從站面臨大量提交時間延遲時幫助解決瓶頸問題。 如果設置為0(默認值),則沒有分組。

wsrep_node_address

說明:指定節點的網絡地址,格式為ip address [:port]。 從MariaDB 10.1.8開始,支持IPv6。 節點的默認行為是拉取系統上第一個網絡接口的地址和默認的Galera端口。 這種自動猜測可能不可靠,尤其是在以下情況下:
雲部署
容器部署
具有多個網絡接口的服務器。
運行多個節點的服務器。
網絡地址轉換(NAT)。
節點在多個區域中的群集。

wsrep_node_incoming_address

說明:這是節點用來偵聽客戶端連接的地址。 如果未指定地址或將其設置為AUTO(默認),則mysqld使用–bind-address或–wsrep-node-address,或嘗試以相同順序從可用網絡接口列表中獲取一個地址。

wsrep_node_name

描述:此節點的名稱。 此名稱可以在wsrep_sst_donor中用作首選供體。 請注意,群集中的多個節點可以具有相同的名稱。

wsrep_notify_cmd

說明:每次節點狀態或集群成員資格更改時要執行的命令。 可用於發出警報,配置負載均衡器等。 有關更多詳細信息,請參見編碼通知腳本頁面。

wsrep_on

說明:是否啟用wsrep複製。 如果全局值設置為OFF(MariaDB 10.1以來的默認值),則無法加載提供程序並加入集群中的節點。 如果僅將會話值設置為OFF,則該特定會話的操作不會在群集中複製,但其他會話和應用程序線程將照常繼續。 變量的會話值不會影響節點的成員身份,因此,無論其值如何,節點都會不斷從群集中的其他節點接收更新。 在MariaDB 10.1之前,即使該變量默認情況下為ON,其值也會根據是否已指定強制配置以打開Galera複製而自動調整。 從MariaDB 10.1開始,默認情況下將其設置為OFF,並且必須啟用它才能啟用Galera複製。

wsrep_OSU_method

說明:在線模式升級方法。 默認值為TOI,指定不帶可選參數的設置將設置為RSU。
TOI:總訂單隔離。 在每個群集節點中,對於其他事務,將以相同的順序處理DDL,從而確保數據的一致性。 但是,數據庫的受影響部分將為整個群集鎖定。
RSU:滾動架構升級。 DDL處理僅在節點上本地完成,用戶需要在每個節點上手動執行更改。 在進行處理以避免阻塞其他節點的同時,該節點與群集的其餘部分不同步。 模式更改必須以與基於ROW的複製相同的方式向後兼容,以避免在單個節點上完成DDL處理並重新開始複製時中斷複製。

wsrep_patch_version

說明:Wsrep修補程序版本,例如wsrep_25.10。

wsrep_provider

描述:wsrep庫的位置,通常在Debian和Ubuntu上為/usr/lib/libgalera_smm.so,在Red Hat / CentOS上通常為/usr/lib64/libgalera_smm.so。

wsrep_provider_options

說明:用分號(;)分隔的wsrep選項列表。

wsrep_recover

說明:如果在服務器啟動時將其設置為ON,則服務器將恢復Galera應用的最新寫入集的序列號,並將其輸出到stderr,通常將其重定向到錯誤日誌。 此時,服務器將退出。 可以將此序列號提供給wsrep_start_position系統變量。

wsrep_reject_queries

說明:設置為拒絕來自客戶端連接的查詢的變量,對維護很有用。 該節點繼續應用寫集,但是客戶端查詢生成錯誤1047:未知命令錯誤。
NONE-未設置。 查詢將照常處理。
ALL-來自客戶端連接的所有查詢將被拒絕,但現有的客戶端連接將保留。
ALL_KILL來自客戶端連接的所有查詢將被拒絕,現有的客戶端連接(包括當前的客戶端連接)將被立即終止。

wsrep_replicate_myisam

說明:是否將複製MyISAM表的DML更新。 此功能仍處於試驗階段,不應在生產系統中使用。

wsrep_restart_slave

說明:如果設置為ON,則當節點重新加入群集時,複製從屬會自動重新啟動。

wsrep_retry_autocommit

說明:在將錯誤返回給客戶端之前,由於群集範圍內的衝突而導致重試自動提交的查詢的次數。 如果設置為0,將不嘗試重試,而值1(默認值)或更大將指定嘗試的重試次數。 有助於使用自動提交來避免死鎖的應用程序。

wsrep_slave_FK_checks

說明:如果設置為ON(默認值),則應用程序從屬線程執行外鍵約束檢查。

wsrep_slave_threads

說明:用於並行應用Galera寫集的從屬線程數。 Galera從屬線程能夠確定可以安全並行應用哪些寫集。 但是,如果您的群集節點似乎經常出現一致性問題,那麼將該值設置為1可能會解決此問題。 有關更多信息,請參見關於Galera複製:Galera從屬線程。

wsrep_slave_UK_checks

說明:如果設置為ON,則應用程序從屬線程執行輔助索引唯一性檢查。

wsrep_sr_store

說明:用於流式複製片段的存儲。

wsrep_sst_auth

描述:用於複製的用戶名和密碼。 如果wsrep_sst_method設置為rsync,則未使用,而對於其他方法,它的格式應為。 內容在日誌中以及使用SHOW VARIABLES查詢值時被屏蔽。

wsrep_sst_donor

說明:以逗號分隔的列表(從5.5.33起)或作為捐贈者的服務器名稱(按照wsrep_node_name)或狀態轉移的源(按優先順序排列)。通常,施主選擇算法更喜歡一個施主,該施主只能將丟失的事務(IST)轉移到合併節點,而不是完整狀態(SST)。因此,它首先在給定的施主列表中尋找一個具有IST功能的節點,然後是集群中的其餘節點。如果在指定的施主列表之外找到多個候選節點,則首選與連接器位於同一段(gmcast.segment)中的節點。如果集群中的現有節點都無法通過IST服務丟失的事務,則該算法會繼續尋找合適的節點以傳輸整個狀態(SST)。首先查看供體列表中指定的節點(不考慮其段)。如果仍然找不到合適的施主,則僅在施主列表具有「終止逗號」的情況下,檢查其餘施主節點的適用性。請注意,無狀態節點(Galera仲裁器)永遠不能成為施主。

wsrep_sst_donor_rejects_queries

說明:如果設置為ON(默認為OFF),施主節點將拒絕傳入的查詢,並返回UNKNOWN COMMAND錯誤代碼。 可以用於通知負載均衡器節點不可用。

wsrep_sst_method

說明:用於進行狀態快照傳輸(SST)的方法

wsrep_sst_receive_address

說明:這是群集中其他節點(供體)連接以發送狀態轉移更新的地址。 如果未指定地址或將其設置為AUTO(默認),則mysqld使用–wsrep_node_address的值作為接收地址。 但是,如果未設置–wsrep_node_address,它將使用–bind-address中的地址,或嘗試以相同順序從可用網絡接口列表中獲取一個地址。 注意:將其設置為localhost將使在其他主機上運行的節點無法到達該節點。

wsrep_start_position

說明:節點應使用的起始位置,格式為:UUID:seq_no。 可以使用wsrep_recover恢復用於該位置的正確值。

wsrep_strict_ddl

說明:如果設置,則拒絕不支持Galera複製的受影響表上的DDL。

wsrep_sync_wait

說明:設置此變量可確保在執行由值指定的類型的操作之前進行因果關係檢查,以確保在完全同步的節點上執行該語句。進行檢查時,將在節點上阻止新查詢,以使服務器能夠趕上群集中進行的所有更新,直到檢查開始為止。到達後,將在節點上執行原始查詢。這會導致更高的延遲。請注意,當wsrep_dirty_reads設置為ON時,wsrep_sync_wait的值將變得無關緊要。樣本用法(對於必須具有最新數據的關鍵讀取)SET SESSION wsrep_sync_wait = 1;選擇 …; SET SESSION wsrep_sync_wait = 0;
0-禁用(默認)
1-讀取(選擇和開始/開始事務)。直到MariaDB 10.2.8,MariaDB 10.1.26,MariaDB Galera 10.0.31和MariaDB Galera 5.5.56(也顯示)。這與wsrep_causal_reads = 1相同。
2-更新和刪除;
3-讀取,更新和刪除;
4-插入和更換;
5-讀取,插入和替換;
6-更新,刪除,插入和替換;
7-讀取,更新,刪除,插入和替換;
8-顯示(來自MariaDB 10.2.9,MariaDB 10.1.27,MariaDB Galera 10.0.32,MariaDB Galera 5.5.57)
9-讀取和顯示(來自MariaDB 10.2.9,MariaDB 10.1.27,MariaDB Galera 10.0.32,MariaDB Galera 5.5.57)
10-更新,刪除和顯示(來自MariaDB 10.2.9,MariaDB 10.1.27,MariaDB Galera 10.0.32,MariaDB Galera 5.5.57)
11-讀取,更新,刪除和顯示(來自MariaDB 10.2.9,MariaDB 10.1.27,MariaDB Galera 10.0.32,MariaDB Galera 5.5.57)
12-插入,替換和顯示(來自MariaDB 10.2.9,MariaDB 10.1.27,MariaDB Galera 10.0.32,MariaDB Galera 5.5.57)
13-讀取,插入,替換和顯示(來自MariaDB 10.2.9,MariaDB 10.1.27,MariaDB Galera 10.0.32,MariaDB Galera 5.5.57)
14-更新,刪除,插入,替換和顯示(來自MariaDB 10.2.9,MariaDB 10.1.27,MariaDB Galera 10.0.32,MariaDB Galera 5.5.57)
15-讀取,更新,刪除,插入,替換和顯示(來自MariaDB 10.2.9,MariaDB 10.1.27,MariaDB Galera 10.0.32,MariaDB Galera 5.5.57)

wsrep_trx_fragment_size

描述:用於流複製的事務片段的大小(以wsrep_trx_fragment_unit指定的單位度量)

wsrep_trx_fragment_unit

說明:流複製事務片段大小的單位:
位元組:交易的Binlog事件緩衝區大小(以位元組為單位)
行:受事務影響的行數
語句:在多語句事務中執行的SQL語句數