您好,登錄后才能下訂單哦!
主機名 | IP地址 | ||
Pxc01 | 192.168.1.17 | ||
Pxc02 | 192.168.1.18 | ||
Pxc03 | 192.168.1.19 |
源碼軟件包下載:http://down.51cto.com/data/2330430
注:不能用oracle的mysql進行編譯安裝,因為mysql GPL 不識別 pxc的相關參數。
安裝pxc環境需要用到以下安裝包:
percona xtaDB cluster ----percona mysql 數據庫
percona xtracebackup ----備份恢復工具
備注:
Percona-XtraDB-Cluster-5.6.28-rel76.1-25.14.1.Linux.x86_64.ssl100.tar.gz–已經編譯的安裝包,解壓完成后只需要執行scripts中的mysql_install_db初始化數據庫即可。
percona-xtradb-cluster-5.6_5.6.28-25.14.orig.tar.gz–原始安裝包,需要使用cmake編譯安裝
名詞:
WS:write set 寫數據集
IST: Incremental State Transfer 增量同步
SST:State Snapshot Transfer 全量同步
UUID:節點狀態改變及順序的唯一標識。
GTID:Global Transaction ID ,由UUID和偏移量組成。wsrep api 中定義的集群內全局事務id。
pxc是基于驗證的數據強一致性數據復制的mysql集群,特性分析:
優點:
1.高可用性,節點不可用不影響集群正常運行。
2.強一致性,可以將讀擴展到多個節點上。
3. 節點的增加數據同步自動化(IST,SST)。
4. 可實現多點讀寫,但寫壓力仍要同步到所有節點。
缺點:
1.由于ddl需全局驗證通過,則集群性能由集群中最差性能節點決定。
2.為保證一致性,galera 總是優先保證數據一致性,在多點并發寫時,鎖沖突問題嚴重
3.新節點加入或延后較大的節點重新加入需全量拷貝數據(sst),作為donor的節點在同步過程中無法提供讀寫
4.數據冗余度為節點數
節點接收sql 請求后,對于ddl 操作,在commit之前,由wsrep API 調用galera 庫進行集群內廣播,所有其他節點驗證成功后事務在集群所有節點進行提交,反之roll back。pxc 保證整個集群所有數據的強一致性,滿足CAP理論中滿足:Consistency 和 Availability。
WSREP API:
1):在DBMS和wsrep provider 之間提供接口。
2):GTID:Global Transaction ID. 由UUID 和 sequence number組成,用于標示集群中發生狀態改變的唯一標示以及隊列中的偏移量。
Galera wsrep provider:
1):完成事務在集群內的廣播:本地事務發送給其他節點驗證,接收其他節點事件本地驗證并返回結果
2):應用從其他節點接收并全局驗證通過的事件到本地。
3):集群內通信,節點存活的檢測,pc的選舉等
4):腦裂,為避免節點失效導致pc選舉失敗整個集群不可用,建議節點數至少為3
5):多點寫入時的鎖沖突檢測機制
6):等待隊列中事務的并發提交
galera的group communication 層實現統一全局數據同步策略和集群內所有事務的排序,便于生成GTID。
對于每一個節點有2方面工作:
(1)、完成數據同步。
(2)、完成與其他節點的通信。
galera 的replication 層完成數據同步,由slavequeue 和applier組成,在事務的同步過程中,事務在隊列中以及應用線程中時于節點本地產生鎖沖突處理方式。replication 模塊的效率直接影響整個集群的寫入性能。
同步過程中,本地事務和等待隊列中的鎖沖突:
innodb內部使用悲觀鎖,保證事務的成功進行和提交。pxc中使用樂觀鎖,以避免在每個節點獲取鎖以及網路開銷,在寫入節點上,事務在提交之前與單點的innodb一樣,到達提交點時,向集群其他節點廣播(galera庫完成 并發)事物并等待各節點驗證結果,如果所有節點都返回成功,則提交,反之,回滾。
pxc 中先提交的事物成功,其他事務(本地或其他節點同步)將回滾或報死鎖錯誤。
相關狀態值:
wsrep_local_cert_failures 同步過程中節點認證失敗計數,沖突來自本地提交的事務和同步隊列中事務存在鎖沖突,則本地驗證失敗(保證全局數據一致性)
wsrep_local_bf_aborts 強制放棄,本地事務和同步隊列中正在執行的事務存在鎖沖突時,將強制保證先提交的事務成功,后者回滾活報錯
驗證模塊:
驗證過程中,節點在接收到其他節點writeset后,在本地做沖突驗證并返回驗證結果。
1.OPEN:節點啟動成功,嘗試連接到集群,如果失敗則根據配置退出或創建新的集群
2.PRIMARY:節點處于集群PC中,嘗試從集群中選取donor進行數據同步
3.JOINER:節點處于等待接收/接收數據文件狀態,數據傳輸完成后在本地加載數據
4.JOINED:節點完成數據同步工作,嘗試保持和集群進度一致
5.SYNCED:節點正常提供服務:數據的讀寫,集群數據的同步,新加入節點的sst請求
6.DONOR:節點處于為新節點準備或傳輸集群全量數據狀態,對客戶端不可用。
狀態機變化因素:
1.新節點加入集群
2.節點故障恢復
3.節點同步實效
監控狀態說明:
(1)集群完整性檢查:
wsrep_cluster_state_uuid:在集群所有節點的值應該是相同的,有不同值的節點,說明其沒有連接入集群.
wsrep_cluster_conf_id:正常情況下所有節點上該值是一樣的.如果值不同,說明該節點被臨時”分區”了.當節點之間網絡連接恢復的時候應該會恢復一樣的值.
wsrep_cluster_size:如果這個值跟預期的節點數一致,則所有的集群節點已經連接.
wsrep_cluster_status:集群組成的狀態.如果不為”Primary”,說明出現”分區”或是”split-brain”狀況.
(2)節點狀態檢查:
wsrep_ready: 該值為ON,則說明可以接受SQL負載.如果為Off,則需要檢查wsrep_connected.
wsrep_connected:如果該值為Off,且wsrep_ready的值也為Off,則說明該節點沒有連接到集群.(可能是wsrep_cluster_address或wsrep_cluster_name等配置錯造成的.具體錯誤需要查看錯誤日志)
wsrep_local_state_comment:如果wsrep_connected為On,但wsrep_ready為OFF,則可以從該項查看原因.
狀態變化階段:
1.OPEN: 節點啟動成功,嘗試連接到集群,如果失敗則根據配置退出或創建新的集群
2.PRIMARY: 節點處于集群PC中,嘗試從集群中選取donor進行數據同步
3.JOINER: 節點處于等待接收/接收數據文件狀態,數據傳輸完成后在本地加載數據
4.JOINED: 節點完成數據同步工作,嘗試保持和集群進度一致
5.SYNCED:節點正常提供服務:數據的讀寫,集群數據的同步,新加入節點的sst請求
6.DONOR(貢獻數據者):節點處于為新節點準備或傳輸集群全量數據狀態,對客戶端不可用。
當其中一個節點停機重啟后,通過IST來同步增量數據,來完成保證與另外兩個節點的數據一致,IST的實現是由wsrep_provider_options="gcache.size=1G"參數決定,一般設置為1G大小,參數大小是由什么決定的,根據停機時間,若停機一小時,需要確認1小時內產生多大的binlog來算出參數大小。假設我們三個節點都關閉了,會發生什么呢,全部傳SST,因為gcache數據沒了。
全部關閉需要采用滾動關閉方式:
1、關閉node1,修復完后,啟動加回來;
2、關閉node2,修復完后,啟動加回來;
3、直到最后一個節點
4、原則要保持Group里最少一個成員活著
數據庫關閉之后,最會保存一個last Txid,所以啟動時,先要啟動最后一個關閉的節點,啟動順序和關閉順序剛好相反。
wsrep_recover=on參數在啟動時加入,用于從log中分析gtid。
怎樣避免關閉和啟動時數據丟失?
1、所有的節點中最少有一個在線,進行滾動重啟; |
2、利用主從的概念,把一個從節點轉化成PXC里的節點。 |
(3)復制健康檢查:
wsrep_flow_control_paused:表示復制停止了多長時間.即表明集群因為Slave延遲而慢的程度.值為0~1,越靠近0越好,值為1表示復制完全停止.可優化wsrep_slave_threads的值來改善.
如果主節點寫入過大,怎么處理? Wsrep_slave_threads參數配置成cpu的個數相等或是1.5倍。
wsrep_cert_deps_distance:有多少事務可以并行應用處理.wsrep_slave_threads設置的值不應該高出該值太多.
wsrep_flow_control_sent:表示該節點已經停止復制了多少次.
wsrep_local_recv_queue_avg:表示slave事務隊列的平均長度.slave瓶頸的預兆.
最慢的節點的wsrep_flow_control_sent和wsrep_local_recv_queue_avg這兩個值最高.這兩個值較低的話,相對更好.
(4)檢測慢網絡問題:
wsrep_local_send_queue_avg:網絡瓶頸的預兆.如果這個值比較高的話,可能存在網絡瓶
沖突或死鎖的數目:
wsrep_last_committed:最后提交的事務數目
wsrep_local_cert_failures和wsrep_local_bf_aborts:回滾,檢測到的沖突數目
三. pxc注意的問題
1、腦裂
任何命令執行出現unkown command ,表示出現腦裂,集群兩節點間4567端口連不通,無法提供對外服務。
SET GLOBAL wsrep_provider_options="pc.ignore_sb=true";
2、并發寫
三個節點的自增起始值為1、2、3,步長都為3,解決了insert問題,但update同時對一行操作就會有問題,出現:Error: 1213 SQLSTATE: 40001,所以更新和寫入在一個節點上操作。
3、DDL
引起全局鎖,采用:pt-online-schema-change
4、MyISAM引擎不能被復制,只支持innodb
5、pxc結構里面必須有主鍵
如果沒有主建,有可能會造成集中每個節點的Data page里的數據不一樣
6、不支持表級鎖
不支持lock /unlock tables
7、pxc里只能把slow log ,query log 放到File里 |
8、不支持XA事務 |
9、性能由集群中性能最差的節點決定 |
優點:
(1).同步復制 Synchronous replication
(2).Active-active multi-master 拓撲邏輯
(3).可對集群中任一節點進行數據讀寫
(4).自動成員控制,故障節點自動從集群中移除
(5).自動節點加入
(6).真正并行的復制,基于行級
(7).直接客戶端連接,原生的 MySQL 接口
(8).每個節點都包含完整的數據副本
(9).多臺數據庫中數據同步由 wsrep 接口實現
缺點:
(1).目前的復制僅僅支持InnoDB存儲引擎,任何寫入其他引擎的表,包括mysql.*表將不會復制,但是DDL語句會被復制的,因此創建用戶將會被復制,但是insert into mysql.user…將不會被復制的
(2).DELETE操作不支持沒有主鍵的表,沒有主鍵的表在不同的節點順序將不同,如果執行SELECT…LIMIT… 將出現不同的結果集
(3).在多主環境下LOCK/UNLOCK TABLES不支持,以及鎖函數GET_LOCK(), RELEASE_LOCK()…
(4).查詢日志不能保存在表中。如果開啟查詢日志,只能保存到文件中
(5).允許最大的事務大小由wsrep_max_ws_rows和wsrep_max_ws_size定義。任何大型操作將被拒絕。如大型的LOAD DATA操作
(6).由于集群是樂觀的并發控制,事務commit可能在該階段中止。如果有兩個事務向在集群中不同的節點向同一行寫入并提交,失敗的節點將中止。對于集群級別的中止,集群返回死鎖錯誤代碼(Error: 1213 SQLSTATE: 40001 (ER_LOCK_DEADLOCK))
(7).XA事務不支持,由于在提交上可能回滾
(8).整個集群的寫入吞吐量是由最弱的節點限制,如果有一個節點變得緩慢,那么整個集群將是緩慢的。為了穩定的高性能要求,所有的節點應使用統一的硬件
(9).集群節點建議最少3個
(10).如果DDL語句有問題將破壞集群。
二進制安裝過程略:
[root@PXC01 Percona-XtraDB-Cluster-5.6.28-76.1]#vi /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /data/mysql
port = 3306
server_id = 3
socket = /tmp/mysql.sock
pid-file = /tmp/mysql.pid
# replication settings #
sync_binlog=0
binlog_format=row
# log settings #
log-error = /data/log/3306.err
log-bin=/data/binlog/mysql-bin
# connection #
interactive_timeout = 1800
wait_timeout = 1800
lock_wait_timeout = 1800
skip_name_resolve = 1
max_connections = 2000
max_connect_errors = 1000000
default-storage-engine=INNODB
skip-name-resolve
skip-host-cache
explicit_defaults_for_timestamp
sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER
expire_logs_days = 7
collation_server=utf8_general_ci
init_connect='SET NAMES utf8'
transaction_isolation = READ-COMMITTED
max_allowed_packet = 16M
max_heap_table_size = 64M
# session memory settings #
sort_buffer_size = 33M
join_buffer_size = 134M
query_cache_size = 0
query_cache_limit = 0
read_buffer_size= 8M
# table cache performance settings
table_open_cache = 4096
table_definition_cache = 4096
table_open_cache_instances = 64
# innodb settings #
innodb_undo_directory = /data/undolog/
innodb_undo_logs = 128
innodb_undo_tablespaces = 3
innodb_buffer_pool_instances = 8
innodb_online_alter_log_max_size=1G
innodb_data_file_path = ibdata1:1G:autoextend
innodb_buffer_pool_size = 20G
innodb_file_per_table = 1
innodb_flush_method = O_DIRECT
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 64M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_io_capacity = 600
innodb_max_dirty_pages_pct = 80
innodb_autoinc_lock_mode=2
#innodb_locks_unsafe_for_binlog=1
#innodb_doublewrite=0
innodb_open_files = 4096
innodb_page_size = 16k
innodb_purge_threads=4
innodb_large_prefix = 1
innodb_thread_concurrency = 64
innodb_print_all_deadlocks = 1
innodb_strict_mode = 1
innodb_sort_buffer_size = 60M
innodb_online_alter_log_max_size=1G
標注:
作為primary節點的數據庫需要初始化數據庫,作為從節點就不需要初始化數據庫,只需要直接啟動數據庫,從節點會自動從primary節點拷貝數據到存放數據文件的位置。
[root@PXC01 opt]#yum -y install perl-DBI perl-DBD-MySQLperl-Time-HiRes perl-IO-Socket-SSL libev libgcrypt-devel libcurl-devel crypt* libgcrypt*imake libxml2-devel expat-devel git bzip2* python-sphinx* cryptopp* ncurses* perl-TermReadKey*tcp_wrappers* libev-devel
注意:sphinx,lzlib,libev動態庫需要手動下載,編譯安裝,下載地址如下:
http://software.schmorp.de/pkg/libev.html
http://download.savannah.gnu.org/releases/lzip/lzlib/
http://sphinxsearch.com
http://www.dest-unreach.org/socat/
[root@pxc02opt]# tar -zxvf socat-2.0.0-b9.tar.gz -C /usr/local
[root@pxc02 opt]# cd /usr/local/socat-2.0.0-b9
[root@pxc02 socat-2.0.0-b9]# ./configure
[root@pxc02 socat-2.0.0-b9]# make
[root@pxc02 socat-2.0.0-b9]# make install
[root@pxc02 socat-2.0.0-b9]# ln -s /usr/local/bin/socat /usr/bin/
[root@PXC01 opt]# tar -zxvf libev-4.22.tar.gz -C /usr/local
[root@PXC01 libev-4.22]# chmod 755 ./*
[root@PXC01 libev-4.22]# ./configure
[root@PXC01 libev-4.22]# make
[root@PXC01 libev-4.22]# make install
[root@PXC01 opt]# tar -zxvf lzlib-1.7.tar.gz -C /usr/local
[root@PXC01 opt]# cd /usr/local/lzlib-1.7/
[root@PXC01 lzlib-1.8-rc3]#./configure
[root@PXC01 lzlib-1.8-rc3]# make
[root@PXC01 lzlib-1.8-rc3]# make install
[root@PXC01 opt]# tar -zxvf sphinx-2.2.8-release.tar.gz -C /usr/local
[root@PXC01 local]# cd /usr/localsphinx-2.2.8-release/
[root@PXC01sphinx-2.2.8-release]# ./configure--prefix=/usr/local/sphinx/ --with-mysql --enable-id64
注意:
如果mysql沒有安裝到/usr/local/下,使用一下命令:
./configure--prefix=/usr/local/sphinx/ --with-mysql=/mysoft --with-mysql-includes=/mysoft/include--enable-id64
[root@PXC01sphinx-2.2.8-release]#make
[root@PXC01sphinx-2.2.8-release]#make install
[root@PXC01 opt]# tar -zxvfpercona-xtrabackup_2.3.4.orig.tar.gz
[root@PXC01 opt]#cd percona-xtrabackup-2.3.4
[root@PXC01percona-xtrabackup-2.3.4]# cmake -DBUILD_CONFIG=xtrabackup_release-DWITH_MAN_PAGES=OFF
[root@PXC01percona-xtrabackup-2.3.4]#make
[root@PXC01percona-xtrabackup-2.3.4]#make install
默認安裝到/usr/local/xtrabackup
注意:如果編譯安裝出錯、需要重新安裝需要清除舊的對象和緩存信息
make clean
rm -fCMakeCache.txt
重新安裝需要xtrabackup
rm -rf /usr/bin/innobackupex
rm -rf /usr/bin/xtrabackup
在編譯時可以添加如下兩個參數:
-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local
2.1.2.5.1、建立軟連接
[root@PXC01xtrabackup]#ln -s/usr/local/xtrabackup/bin/innobackupex /usr/bin/innobackupex
[root@PXC01xtrabackup]#ln -s/usr/local/xtrabackup/bin/xbcrypt /usr/bin/xbcrypt
[root@PXC01xtrabackup]#ln -s/usr/local/xtrabackup/bin/xbstream /usr/bin/xbstream
[root@PXC01xtrabackup]#ln -s /usr/local/xtrabackup/bin/xtrabackup/usr/bin/xtrabackup
[root@PXC01xtrabackup]#ln -s/usr/local/xtrabackup/bin/xbcloud_osenv /usr/bin/xbcloud_osenv
[root@PXC01 xtrabackup]#ln -s /usr/local/xtrabackup/bin/xbcloud/usr/bin/xbcloud
ln -s/usr/local/xtrabackup/bin/innobackupex /usr/bin/innobackupex
ln -s /usr/local/xtrabackup/bin/xbcrypt /usr/bin/xbcrypt
ln -s /usr/local/xtrabackup/bin/xbstream /usr/bin/xbstream
ln -s /usr/local/xtrabackup/bin/xbcloud_osenv/usr/bin/xbcloud_osenv
ln -s /usr/local/xtrabackup/bin/xbcloud/usr/bin/xbcloud
ln –s /usr/local/xtrabackup/bin/xtrabackup/usr/bin/xtrabackup
2.1.2.5.2、驗證xtrabackup
[root@PXC01 xtrabackup]# xtrabackup-version
xtrabackup version 2.3.4 based on MySQLserver 5.6.24 Linux (x86_64) (revision id: e80c779)
[root@pxc01 opt]#tar –zxvf /opt/ galera-3-25.3.16.tar.gz–C /usr/local
[root@pxc01 opt]# cd/usr/local/galera-3-25.3.16/
[root@pxc01 galera-3-25.3.16]#cd scripts
[root@pxc01 galera-3-25.3.16]#./build.sh
[root@PXC01 galera-3-25.3.16]# cplibgalera_smm.so/usr/lib64
[root@PXC01 galera-3-25.3.16]# chmod +x libgalera_smm.so
執行上面腳本./build.sh時報錯解決如:
yum install boost* openssl* check* -y
yum -y install gcc
yum -y install scons
然后可以不執行腳本執行scons進行編譯即可:
[root@pxc01 opt]# cd/usr/local/galera-3-25.3.16/
#scons
可以以正常模式啟動主節點mysql(/usr/local/mysql/bin/mysqld_safe--wsrep_cluster_address=gcomm://>/dev/null &)
其余2個節點按照主節點步驟安裝,
從節點安裝完mysql以后不需要初始化數據,可以直接啟動mysql,mysql啟動以后會自動加入到集群節點,并從主節點拷貝數據文件到存放數據文件的位置。
chown -R mysql.mysql /usr/local/mysql/
從節點啟動:
/usr/local/mysql/bin/mysqld_safe--wsrep_cluster_address=gcomm://192.168.20.11:4567>/dev/null&
/usr/local/mysql/bin/mysqld_safe--wsrep_cluster_address=gcomm://192.168.20.22:4567 >/dev/null &
4.1.1、添加集群復制賬號
[mysql@VM-172-31-102-133 ~]#mysql
mysql>GRANT PROCESS, RELOAD, LOCKTABLES, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost' identified by'sstuser';
mysql>FLUSH PRIVILEGES;
編輯my.cnf文件,添加以下參數:
server-id = 1
# Path to Galera library
wsrep_provider=/usr/lib64/libgalera_smm.so ---注意編譯galera軟件時的存放目錄
# Cluster connection URL contains the IPsof node#1, node#2 and node#3
wsrep_cluster_address=gcomm://172.31.102.133,172.31.102.139,172.31.102.167 --節點IP地址,不添加端口會使用默認端口
# In order for Galera to work correctlybinlog format should be ROW
binlog_format=ROW
# MyISAM storage engine has onlyexperimental support
default_storage_engine=InnoDB
# This changes how InnoDB autoincrementlocks are managed and is a requirement for Galera
innodb_autoinc_lock_mode=2
# Node #1 address
wsrep_node_address=172.31.102.133 ---主機IP
# SST method
wsrep_sst_method=xtrabackup-v2
# Cluster name
wsrep_cluster_name=my_centos_cluster
# Authentication for SST method
wsrep_sst_auth="sstuser:s3cret"
[root@pxc01 ]#cat /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /data/mysql
port = 3306
server-id = 238
#socket = /data/mysql/mysql.sock
pid-file = /tmp/mysql.pid
# replication settings #
sync_binlog = 0
binlog_format = row
# log settings #
log-error = /data/log/3306.err
log-bin=/data/binlog/mysql-bin
# connection #
interactive_timeout = 1800
wait_timeout = 1800
lock_wait_timeout = 1800
skip_name_resolve = 1
max_connections = 2000
max_connect_errors = 1000000
default-storage-engine = innodb
skip-name-resolve
skip-host-cache
explicit_defaults_for_timestamp
sql_mode =STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER
expire_logs_days = 7
collation_server=utf8_general_ci
init_connect='SET NAMES utf8'
transaction_isolation = READ-COMMITTED
max_allowed_packet = 16M
max_heap_table_size = 64M
# session memory settings #
sort_buffer_size = 33M
join_buffer_size = 134M
query_cache_size = 0
query_cache_limit = 0
read_buffer_size= 8M
# table cache performance settings
table_open_cache = 4096
table_definition_cache = 4096
table_open_cache_instances = 64
# innodb settings #
innodb_undo_directory = /data/undolog/
innodb_undo_logs = 128
innodb_undo_tablespaces = 3
innodb_buffer_pool_instances = 8
innodb_online_alter_log_max_size = 1G
innodb_data_file_path = ibdata1:1G:autoextend
innodb_buffer_pool_size = 12G
innodb_file_per_table = 1
innodb_flush_method = O_DIRECT
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 64M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_io_capacity = 600
innodb_max_dirty_pages_pct = 75
innodb_autoinc_lock_mode = 2
innodb_locks_unsafe_for_binlog = 1
innodb_doublewrite = 0
innodb_open_files = 4096
innodb_page_size = 16k
innodb_purge_threads = 4
innodb_large_prefix = 1
innodb_thread_concurrency = 64
innodb_print_all_deadlocks = 1
innodb_strict_mode = 1
innodb_sort_buffer_size = 60M
innodb_online_alter_log_max_size = 1G
# wsrep settings #
wsrep_provider=/usr/lib64/libgalera_smm.so
wsrep_cluster_address=gcomm://192.168.10.238,192.168.10.239,192.168.10.240
wsrep_sst_auth=sstuser:sstuser
wsrep_provider_options="gcache.size=2G"
wsrep_cluster_name=Percona_cluster
wsrep_sst_method=xtrabackup-v2
wsrep_node_address=192.168.10.238
wsrep_node_name=pxc01
wsrep_slave_threads=8
以PXC(初始化)模式啟動mysql,只有主節點可以這么啟動,從節點必須按照正常啟動方式啟動mysql
[mysql@VM-172-31-102-133 ~]#/etc/init.d/mysqldbootstrap-pxc
Bootstrapping PXC (Percona XtraDBCluster)Starting MySQL (Percona XtraDB Cluster). SUCCESS!
server-id = 2
配置my.cnf文件,添加以下參數:
# Path to Galera library
wsrep_provider=/usr/lib64/libgalera_smm.so
# Cluster connection URL contains the IPsof node#1, node#2 and node#3
wsrep_cluster_address=gcomm://172.31.102.133,172.31.102.139,172.31.102.167
# In order for Galera to work correctlybinlog format should be ROW
binlog_format=ROW
# MyISAM storage engine has onlyexperimental support
default_storage_engine=InnoDB
# This changes how InnoDB autoincrementlocks are managed and is a requirement for Galera
innodb_autoinc_lock_mode=2
# Node #1 address
wsrep_node_address=172.31.102.139
# SST method
wsrep_sst_method=xtrabackup-v2
# Cluster name
wsrep_cluster_name=my_centos_cluster
# Authentication for SST method
wsrep_sst_auth="sstuser:s3cret"
server-id = 3
配置my.cnf文件,添加以下參數:
# Path to Galera library
wsrep_provider=/usr/lib64/libgalera_smm.so
# Cluster connection URL contains the IPsof node#1, node#2 and node#3
wsrep_cluster_address=gcomm://172.31.102.133,172.31.102.139,172.31.102.167
# In order for Galera to work correctlybinlog format should be ROW
binlog_format=ROW
# MyISAM storage engine has onlyexperimental support
default_storage_engine=InnoDB
# This changes how InnoDB autoincrementlocks are managed and is a requirement for Galera
innodb_autoinc_lock_mode=2
# Node #1 address
wsrep_node_address=172.31.102.167
# SST method
wsrep_sst_method=xtrabackup-v2
# Cluster name
wsrep_cluster_name=my_centos_cluster
# Authentication for SST method
wsrep_sst_auth="sstuser:s3cret"
以次下列命令啟動
Service mysql start
查看日志:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。