主機(jī)名 創(chuàng)新互聯(lián)公司是專業(yè)的渾南網(wǎng)站建設(shè)公司,渾南接單;提供網(wǎng)站設(shè)計制作、成都做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行渾南網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作! | IP地址 | ||
Pxc01 | 192.168.1.17 | ||
Pxc02 | 192.168.1.18 | ||
Pxc03 | 192.168.1.19 |
源碼軟件包下載:http://down.51cto.com/data/2330430
注:不能用oracle的MySQL進(jìn)行編譯安裝,因為mysql GPL不識別 pxc的相關(guān)參數(shù)。
安裝pxc環(huán)境需要用到以下安裝包:
percona xtaDB cluster ----percona mysql 數(shù)據(jù)庫
percona xtracebackup ----備份恢復(fù)工具
備注:
Percona-XtraDB-Cluster-5.6.28-rel76.1-25.14.1.Linux.x86_64.ssl100.tar.gz–已經(jīng)編譯的安裝包,解壓完成后只需要執(zhí)行scripts中的mysql_install_db初始化數(shù)據(jù)庫即可。
percona-xtradb-cluster-5.6_5.6.28-25.14.orig.tar.gz–原始安裝包,需要使用cmake編譯安裝
名詞:
WS:write set 寫數(shù)據(jù)集
IST: Incremental State Transfer 增量同步
SST:State Snapshot Transfer 全量同步
UUID:節(jié)點(diǎn)狀態(tài)改變及順序的唯一標(biāo)識。
GTID:Global Transaction ID ,由UUID和偏移量組成。wsrep api 中定義的集群內(nèi)全局事務(wù)id。
pxc是基于驗證的數(shù)據(jù)強(qiáng)一致性數(shù)據(jù)復(fù)制的mysql集群,特性分析:
優(yōu)點(diǎn):
1.高可用性,節(jié)點(diǎn)不可用不影響集群正常運(yùn)行。
2.強(qiáng)一致性,可以將讀擴(kuò)展到多個節(jié)點(diǎn)上。
3. 節(jié)點(diǎn)的增加數(shù)據(jù)同步自動化(IST,SST)。
4. 可實(shí)現(xiàn)多點(diǎn)讀寫,但寫壓力仍要同步到所有節(jié)點(diǎn)。
缺點(diǎn):
1.由于ddl需全局驗證通過,則集群性能由集群中最差性能節(jié)點(diǎn)決定。
2.為保證一致性,galera 總是優(yōu)先保證數(shù)據(jù)一致性,在多點(diǎn)并發(fā)寫時,鎖沖突問題嚴(yán)重
3.新節(jié)點(diǎn)加入或延后較大的節(jié)點(diǎn)重新加入需全量拷貝數(shù)據(jù)(sst),作為donor的節(jié)點(diǎn)在同步過程中無法提供讀寫
4.數(shù)據(jù)冗余度為節(jié)點(diǎn)數(shù)
節(jié)點(diǎn)接收sql 請求后,對于ddl 操作,在commit之前,由wsrep API 調(diào)用galera 庫進(jìn)行集群內(nèi)廣播,所有其他節(jié)點(diǎn)驗證成功后事務(wù)在集群所有節(jié)點(diǎn)進(jìn)行提交,反之roll back。pxc 保證整個集群所有數(shù)據(jù)的強(qiáng)一致性,滿足CAP理論中滿足:Consistency 和 Availability。
WSREP API:
1):在DBMS和wsrep provider 之間提供接口。
2):GTID:Global Transaction ID. 由UUID 和 sequence number組成,用于標(biāo)示集群中發(fā)生狀態(tài)改變的唯一標(biāo)示以及隊列中的偏移量。
Galera wsrep provider:
1):完成事務(wù)在集群內(nèi)的廣播:本地事務(wù)發(fā)送給其他節(jié)點(diǎn)驗證,接收其他節(jié)點(diǎn)事件本地驗證并返回結(jié)果
2):應(yīng)用從其他節(jié)點(diǎn)接收并全局驗證通過的事件到本地。
3):集群內(nèi)通信,節(jié)點(diǎn)存活的檢測,pc的選舉等
4):腦裂,為避免節(jié)點(diǎn)失效導(dǎo)致pc選舉失敗整個集群不可用,建議節(jié)點(diǎn)數(shù)至少為3
5):多點(diǎn)寫入時的鎖沖突檢測機(jī)制
6):等待隊列中事務(wù)的并發(fā)提交
galera的group communication 層實(shí)現(xiàn)統(tǒng)一全局?jǐn)?shù)據(jù)同步策略和集群內(nèi)所有事務(wù)的排序,便于生成GTID。
對于每一個節(jié)點(diǎn)有2方面工作:
(1)、完成數(shù)據(jù)同步。
(2)、完成與其他節(jié)點(diǎn)的通信。
galera 的replication 層完成數(shù)據(jù)同步,由slavequeue 和applier組成,在事務(wù)的同步過程中,事務(wù)在隊列中以及應(yīng)用線程中時于節(jié)點(diǎn)本地產(chǎn)生鎖沖突處理方式。replication 模塊的效率直接影響整個集群的寫入性能。
同步過程中,本地事務(wù)和等待隊列中的鎖沖突:
innodb內(nèi)部使用悲觀鎖,保證事務(wù)的成功進(jìn)行和提交。pxc中使用樂觀鎖,以避免在每個節(jié)點(diǎn)獲取鎖以及網(wǎng)路開銷,在寫入節(jié)點(diǎn)上,事務(wù)在提交之前與單點(diǎn)的innodb一樣,到達(dá)提交點(diǎn)時,向集群其他節(jié)點(diǎn)廣播(galera庫完成 并發(fā))事物并等待各節(jié)點(diǎn)驗證結(jié)果,如果所有節(jié)點(diǎn)都返回成功,則提交,反之,回滾。
pxc 中先提交的事物成功,其他事務(wù)(本地或其他節(jié)點(diǎn)同步)將回滾或報死鎖錯誤。
相關(guān)狀態(tài)值:
wsrep_local_cert_failures 同步過程中節(jié)點(diǎn)認(rèn)證失敗計數(shù),沖突來自本地提交的事務(wù)和同步隊列中事務(wù)存在鎖沖突,則本地驗證失敗(保證全局?jǐn)?shù)據(jù)一致性)
wsrep_local_bf_aborts 強(qiáng)制放棄,本地事務(wù)和同步隊列中正在執(zhí)行的事務(wù)存在鎖沖突時,將強(qiáng)制保證先提交的事務(wù)成功,后者回滾活報錯
驗證模塊:
驗證過程中,節(jié)點(diǎn)在接收到其他節(jié)點(diǎn)writeset后,在本地做沖突驗證并返回驗證結(jié)果。
1.OPEN:節(jié)點(diǎn)啟動成功,嘗試連接到集群,如果失敗則根據(jù)配置退出或創(chuàng)建新的集群
2.PRIMARY:節(jié)點(diǎn)處于集群PC中,嘗試從集群中選取donor進(jìn)行數(shù)據(jù)同步
3.JOINER:節(jié)點(diǎn)處于等待接收/接收數(shù)據(jù)文件狀態(tài),數(shù)據(jù)傳輸完成后在本地加載數(shù)據(jù)
4.JOINED:節(jié)點(diǎn)完成數(shù)據(jù)同步工作,嘗試保持和集群進(jìn)度一致
5.SYNCED:節(jié)點(diǎn)正常提供服務(wù):數(shù)據(jù)的讀寫,集群數(shù)據(jù)的同步,新加入節(jié)點(diǎn)的sst請求
6.DONOR:節(jié)點(diǎn)處于為新節(jié)點(diǎn)準(zhǔn)備或傳輸集群全量數(shù)據(jù)狀態(tài),對客戶端不可用。
狀態(tài)機(jī)變化因素:
1.新節(jié)點(diǎn)加入集群
2.節(jié)點(diǎn)故障恢復(fù)
3.節(jié)點(diǎn)同步實(shí)效
監(jiān)控狀態(tài)說明:
(1)集群完整性檢查:
wsrep_cluster_state_uuid:在集群所有節(jié)點(diǎn)的值應(yīng)該是相同的,有不同值的節(jié)點(diǎn),說明其沒有連接入集群.
wsrep_cluster_conf_id:正常情況下所有節(jié)點(diǎn)上該值是一樣的.如果值不同,說明該節(jié)點(diǎn)被臨時”分區(qū)”了.當(dāng)節(jié)點(diǎn)之間網(wǎng)絡(luò)連接恢復(fù)的時候應(yīng)該會恢復(fù)一樣的值.
wsrep_cluster_size:如果這個值跟預(yù)期的節(jié)點(diǎn)數(shù)一致,則所有的集群節(jié)點(diǎn)已經(jīng)連接.
wsrep_cluster_status:集群組成的狀態(tài).如果不為”Primary”,說明出現(xiàn)”分區(qū)”或是”split-brain”狀況.
(2)節(jié)點(diǎn)狀態(tài)檢查:
wsrep_ready:該值為ON,則說明可以接受SQL負(fù)載.如果為Off,則需要檢查wsrep_connected.
wsrep_connected:如果該值為Off,且wsrep_ready的值也為Off,則說明該節(jié)點(diǎn)沒有連接到集群.(可能是wsrep_cluster_address或wsrep_cluster_name等配置錯造成的.具體錯誤需要查看錯誤日志)
wsrep_local_state_comment:如果wsrep_connected為On,但wsrep_ready為OFF,則可以從該項查看原因.
狀態(tài)變化階段:
1.OPEN:節(jié)點(diǎn)啟動成功,嘗試連接到集群,如果失敗則根據(jù)配置退出或創(chuàng)建新的集群
2.PRIMARY:節(jié)點(diǎn)處于集群PC中,嘗試從集群中選取donor進(jìn)行數(shù)據(jù)同步
3.JOINER:節(jié)點(diǎn)處于等待接收/接收數(shù)據(jù)文件狀態(tài),數(shù)據(jù)傳輸完成后在本地加載數(shù)據(jù)
4.JOINED:節(jié)點(diǎn)完成數(shù)據(jù)同步工作,嘗試保持和集群進(jìn)度一致
5.SYNCED:節(jié)點(diǎn)正常提供服務(wù):數(shù)據(jù)的讀寫,集群數(shù)據(jù)的同步,新加入節(jié)點(diǎn)的sst請求
6.DONOR(貢獻(xiàn)數(shù)據(jù)者):節(jié)點(diǎn)處于為新節(jié)點(diǎn)準(zhǔn)備或傳輸集群全量數(shù)據(jù)狀態(tài),對客戶端不可用。
當(dāng)其中一個節(jié)點(diǎn)停機(jī)重啟后,通過IST來同步增量數(shù)據(jù),來完成保證與另外兩個節(jié)點(diǎn)的數(shù)據(jù)一致,IST的實(shí)現(xiàn)是由wsrep_provider_options="gcache.size=1G"參數(shù)決定,一般設(shè)置為1G大小,參數(shù)大小是由什么決定的,根據(jù)停機(jī)時間,若停機(jī)一小時,需要確認(rèn)1小時內(nèi)產(chǎn)生多大的binlog來算出參數(shù)大小。假設(shè)我們?nèi)齻€節(jié)點(diǎn)都關(guān)閉了,會發(fā)生什么呢,全部傳SST,因為gcache數(shù)據(jù)沒了。
全部關(guān)閉需要采用滾動關(guān)閉方式:
1、關(guān)閉node1,修復(fù)完后,啟動加回來;
2、關(guān)閉node2,修復(fù)完后,啟動加回來;
3、直到最后一個節(jié)點(diǎn)
4、原則要保持Group里最少一個成員活著
數(shù)據(jù)庫關(guān)閉之后,最會保存一個last Txid,所以啟動時,先要啟動最后一個關(guān)閉的節(jié)點(diǎn),啟動順序和關(guān)閉順序剛好相反。
wsrep_recover=on參數(shù)在啟動時加入,用于從log中分析gtid。
怎樣避免關(guān)閉和啟動時數(shù)據(jù)丟失?
1、所有的節(jié)點(diǎn)中最少有一個在線,進(jìn)行滾動重啟; |
2、利用主從的概念,把一個從節(jié)點(diǎn)轉(zhuǎn)化成PXC里的節(jié)點(diǎn)。 |
(3)復(fù)制健康檢查:
wsrep_flow_control_paused:表示復(fù)制停止了多長時間.即表明集群因為Slave延遲而慢的程度.值為0~1,越靠近0越好,值為1表示復(fù)制完全停止.可優(yōu)化wsrep_slave_threads的值來改善.
如果主節(jié)點(diǎn)寫入過大,怎么處理? Wsrep_slave_threads參數(shù)配置成cpu的個數(shù)相等或是1.5倍。
wsrep_cert_deps_distance:有多少事務(wù)可以并行應(yīng)用處理.wsrep_slave_threads設(shè)置的值不應(yīng)該高出該值太多.
wsrep_flow_control_sent:表示該節(jié)點(diǎn)已經(jīng)停止復(fù)制了多少次.
wsrep_local_recv_queue_avg:表示slave事務(wù)隊列的平均長度.slave瓶頸的預(yù)兆.
最慢的節(jié)點(diǎn)的wsrep_flow_control_sent和wsrep_local_recv_queue_avg這兩個值最高.這兩個值較低的話,相對更好.
(4)檢測慢網(wǎng)絡(luò)問題:
wsrep_local_send_queue_avg:網(wǎng)絡(luò)瓶頸的預(yù)兆.如果這個值比較高的話,可能存在網(wǎng)絡(luò)瓶
沖突或死鎖的數(shù)目:
wsrep_last_committed:最后提交的事務(wù)數(shù)目
wsrep_local_cert_failures和wsrep_local_bf_aborts:回滾,檢測到的沖突數(shù)目
三. pxc注意的問題
1、腦裂
任何命令執(zhí)行出現(xiàn)unkown command ,表示出現(xiàn)腦裂,集群兩節(jié)點(diǎn)間4567端口連不通,無法提供對外服務(wù)。
SET GLOBAL wsrep_provider_options="pc.ignore_sb=true";
2、并發(fā)寫
三個節(jié)點(diǎn)的自增起始值為1、2、3,步長都為3,解決了insert問題,但update同時對一行操作就會有問題,出現(xiàn):Error: 1213 SQLSTATE: 40001,所以更新和寫入在一個節(jié)點(diǎn)上操作。
3、DDL
引起全局鎖,采用:pt-online-schema-change
4、MyISAM引擎不能被復(fù)制,只支持innodb
5、pxc結(jié)構(gòu)里面必須有主鍵
如果沒有主建,有可能會造成集中每個節(jié)點(diǎn)的Data page里的數(shù)據(jù)不一樣
6、不支持表級鎖
不支持lock /unlock tables
7、pxc里只能把slow log ,query log 放到File里 |
8、不支持XA事務(wù) |
9、性能由集群中性能最差的節(jié)點(diǎn)決定 |
優(yōu)點(diǎn):
(1).同步復(fù)制 Synchronous replication
(2).Active-active multi-master 拓?fù)溥壿?/p>
(3).可對集群中任一節(jié)點(diǎn)進(jìn)行數(shù)據(jù)讀寫
(4).自動成員控制,故障節(jié)點(diǎn)自動從集群中移除
(5).自動節(jié)點(diǎn)加入
(6).真正并行的復(fù)制,基于行級
(7).直接客戶端連接,原生的 MySQL 接口
(8).每個節(jié)點(diǎn)都包含完整的數(shù)據(jù)副本
(9).多臺數(shù)據(jù)庫中數(shù)據(jù)同步由 wsrep 接口實(shí)現(xiàn)
缺點(diǎn):
(1).目前的復(fù)制僅僅支持InnoDB存儲引擎,任何寫入其他引擎的表,包括mysql.*表將不會復(fù)制,但是DDL語句會被復(fù)制的,因此創(chuàng)建用戶將會被復(fù)制,但是insert into mysql.user…將不會被復(fù)制的
(2).DELETE操作不支持沒有主鍵的表,沒有主鍵的表在不同的節(jié)點(diǎn)順序?qū)⒉煌?如果執(zhí)行SELECT…LIMIT… 將出現(xiàn)不同的結(jié)果集
(3).在多主環(huán)境下LOCK/UNLOCK TABLES不支持,以及鎖函數(shù)GET_LOCK(), RELEASE_LOCK()…
(4).查詢?nèi)罩静荒鼙4嬖诒碇?。如果開啟查詢?nèi)罩?,只能保存到文件?/p>
(5).允許最大的事務(wù)大小由wsrep_max_ws_rows和wsrep_max_ws_size定義。任何大型操作將被拒絕。如大型的LOAD DATA操作
(6).由于集群是樂觀的并發(fā)控制,事務(wù)commit可能在該階段中止。如果有兩個事務(wù)向在集群中不同的節(jié)點(diǎn)向同一行寫入并提交,失敗的節(jié)點(diǎn)將中止。對于集群級別的中止,集群返回死鎖錯誤代碼(Error: 1213 SQLSTATE: 40001 (ER_LOCK_DEADLOCK))
(7).XA事務(wù)不支持,由于在提交上可能回滾
(8).整個集群的寫入吞吐量是由最弱的節(jié)點(diǎn)限制,如果有一個節(jié)點(diǎn)變得緩慢,那么整個集群將是緩慢的。為了穩(wěn)定的高性能要求,所有的節(jié)點(diǎn)應(yīng)使用統(tǒng)一的硬件
(9).集群節(jié)點(diǎn)建議最少3個
(10).如果DDL語句有問題將破壞集群。
二進(jìn)制安裝過程略:
[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
標(biāo)注:
作為primary節(jié)點(diǎn)的數(shù)據(jù)庫需要初始化數(shù)據(jù)庫,作為從節(jié)點(diǎn)就不需要初始化數(shù)據(jù)庫,只需要直接啟動數(shù)據(jù)庫,從節(jié)點(diǎn)會自動從primary節(jié)點(diǎn)拷貝數(shù)據(jù)到存放數(shù)據(jù)文件的位置。
[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動態(tài)庫需要手動下載,編譯安裝,下載地址如下:
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
默認(rèn)安裝到/usr/local/xtrabackup
注意:如果編譯安裝出錯、需要重新安裝需要清除舊的對象和緩存信息
make clean
rm -fCMakeCache.txt
重新安裝需要xtrabackup
rm -rf /usr/bin/innobackupex
rm -rf /usr/bin/xtrabackup
在編譯時可以添加如下兩個參數(shù):
-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
執(zhí)行上面腳本./build.sh時報錯解決如:
yum install boost* openssl* check* -y
yum -y install gcc
yum -y install scons
然后可以不執(zhí)行腳本執(zhí)行scons進(jìn)行編譯即可:
[root@pxc01 opt]# cd/usr/local/galera-3-25.3.16/
#scons
可以以正常模式啟動主節(jié)點(diǎn)mysql(/usr/local/mysql/bin/mysqld_safe--wsrep_cluster_address=gcomm://>/dev/null &)
其余2個節(jié)點(diǎn)按照主節(jié)點(diǎn)步驟安裝,
從節(jié)點(diǎn)安裝完mysql以后不需要初始化數(shù)據(jù),可以直接啟動mysql,mysql啟動以后會自動加入到集群節(jié)點(diǎn),并從主節(jié)點(diǎn)拷貝數(shù)據(jù)文件到存放數(shù)據(jù)文件的位置。
chown -R mysql.mysql /usr/local/mysql/
從節(jié)點(diǎn)啟動:
/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、添加集群復(fù)制賬號
[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文件,添加以下參數(shù):
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 --節(jié)點(diǎn)IP地址,不添加端口會使用默認(rèn)端口
# 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 ---主機(jī)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,只有主節(jié)點(diǎn)可以這么啟動,從節(jié)點(diǎn)必須按照正常啟動方式啟動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文件,添加以下參數(shù):
# 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文件,添加以下參數(shù):
# 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
查看日志:
分享文章:PerconaXtraDBCluster規(guī)劃實(shí)施
網(wǎng)頁地址:http://muchs.cn/article2/pisdic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、Google、網(wǎng)站建設(shè)、虛擬主機(jī)、網(wǎng)站排名、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)