真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

PerconaXtraDBCluster規(guī)劃實施

##搭建集群的時候要學會看日志,日志很重要的,日志真的很重要

一、準備工作

1.1、服務器配置

主機名

創(chuàng)新互聯公司是專業(yè)的渾南網站建設公司,渾南接單;提供網站設計制作、成都做網站,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行渾南網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!

IP地址



Pxc01

192.168.1.17



Pxc02

192.168.1.18



Pxc03

192.168.1.19



 源碼軟件包下載:http://down.51cto.com/data/2330430

1.2、環(huán)境配置

注:不能用oracle的MySQL進行編譯安裝,因為mysql GPL不識別 pxc的相關參數。

安裝pxc環(huán)境需要用到以下安裝包:

  • percona xtaDB cluster  ----percona mysql 數據庫

  • percona xtracebackup   ----備份恢復工具

備注:

Percona-XtraDB-Cluster-5.6.28-rel76.1-25.14.1.Linux.x86_64.ssl100.tar.gz–已經編譯的安裝包,解壓完成后只需要執(zhí)行scripts中的mysql_install_db初始化數據庫即可。

percona-xtradb-cluster-5.6_5.6.28-25.14.orig.tar.gz–原始安裝包,需要使用cmake編譯安裝

 

1.3、名詞解釋

名詞:

    WS:write set 寫數據集

    IST: Incremental State Transfer 增量同步

    SST:State Snapshot Transfer 全量同步

    UUID:節(jié)點狀態(tài)改變及順序的唯一標識。

    GTID:Global Transaction ID ,由UUID和偏移量組成。wsrep api 中定義的集群內全局事務id。

 

1.4、PXC原理

pxc是基于驗證的數據強一致性數據復制的mysql集群,特性分析:

優(yōu)點:

       1.高可用性,節(jié)點不可用不影響集群正常運行。

       2.強一致性,可以將讀擴展到多個節(jié)點上。    

       3. 節(jié)點的增加數據同步自動化(IST,SST)。

       4. 可實現多點讀寫,但寫壓力仍要同步到所有節(jié)點。

缺點:

        1.由于ddl需全局驗證通過,則集群性能由集群中最差性能節(jié)點決定。

        2.為保證一致性,galera 總是優(yōu)先保證數據一致性,在多點并發(fā)寫時,鎖沖突問題嚴重

        3.新節(jié)點加入或延后較大的節(jié)點重新加入需全量拷貝數據(sst),作為donor的節(jié)點在同步過程中無法提供讀寫

        4.數據冗余度為節(jié)點數

1.5、PXC工作原理

節(jié)點接收sql 請求后,對于ddl 操作,在commit之前,由wsrep API 調用galera 庫進行集群內廣播,所有其他節(jié)點驗證成功后事務在集群所有節(jié)點進行提交,反之roll back。pxc 保證整個集群所有數據的強一致性,滿足CAP理論中滿足:Consistency 和  Availability。

  • WSREP API:

1):在DBMS和wsrep provider 之間提供接口。

2):GTID:Global Transaction ID. 由UUID 和 sequence number組成,用于標示集群中發(fā)生狀態(tài)改變的唯一標示以及隊列中的偏移量。

  • Galera wsrep provider:

1):完成事務在集群內的廣播:本地事務發(fā)送給其他節(jié)點驗證,接收其他節(jié)點事件本地驗證并返回結果

2):應用從其他節(jié)點接收并全局驗證通過的事件到本地。

3):集群內通信,節(jié)點存活的檢測,pc的選舉等

4):腦裂,為避免節(jié)點失效導致pc選舉失敗整個集群不可用,建議節(jié)點數至少為3

5):多點寫入時的鎖沖突檢測機制

6):等待隊列中事務的并發(fā)提交

Percona XtraDB Cluster規(guī)劃實施

galera的group communication 層實現統一全局數據同步策略和集群內所有事務的排序,便于生成GTID。

對于每一個節(jié)點有2方面工作:

(1)、完成數據同步。

(2)、完成與其他節(jié)點的通信。

    galera 的replication 層完成數據同步,由slavequeue 和applier組成,在事務的同步過程中,事務在隊列中以及應用線程中時于節(jié)點本地產生鎖沖突處理方式。replication 模塊的效率直接影響整個集群的寫入性能。

同步過程中,本地事務和等待隊列中的鎖沖突:

     innodb內部使用悲觀鎖,保證事務的成功進行和提交。pxc中使用樂觀鎖,以避免在每個節(jié)點獲取鎖以及網路開銷,在寫入節(jié)點上,事務在提交之前與單點的innodb一樣,到達提交點時,向集群其他節(jié)點廣播(galera庫完成 并發(fā))事物并等待各節(jié)點驗證結果,如果所有節(jié)點都返回成功,則提交,反之,回滾。

     pxc 中先提交的事物成功,其他事務(本地或其他節(jié)點同步)將回滾或報死鎖錯誤。

相關狀態(tài)值:

wsrep_local_cert_failures  同步過程中節(jié)點認證失敗計數,沖突來自本地提交的事務和同步隊列中事務存在鎖沖突,則本地驗證失?。ūWC全局數據一致性)

wsrep_local_bf_aborts  強制放棄,本地事務和同步隊列中正在執(zhí)行的事務存在鎖沖突時,將強制保證先提交的事務成功,后者回滾活報錯

驗證模塊:

Percona XtraDB Cluster規(guī)劃實施

驗證過程中,節(jié)點在接收到其他節(jié)點writeset后,在本地做沖突驗證并返回驗證結果。

1.6、PXC狀態(tài)說明

     1.OPEN:節(jié)點啟動成功,嘗試連接到集群,如果失敗則根據配置退出或創(chuàng)建新的集群

     2.PRIMARY:節(jié)點處于集群PC中,嘗試從集群中選取donor進行數據同步

     3.JOINER:節(jié)點處于等待接收/接收數據文件狀態(tài),數據傳輸完成后在本地加載數據

     4.JOINED:節(jié)點完成數據同步工作,嘗試保持和集群進度一致

     5.SYNCED:節(jié)點正常提供服務:數據的讀寫,集群數據的同步,新加入節(jié)點的sst請求

     6.DONOR:節(jié)點處于為新節(jié)點準備或傳輸集群全量數據狀態(tài),對客戶端不可用。

狀態(tài)機變化因素:

     1.新節(jié)點加入集群

     2.節(jié)點故障恢復

     3.節(jié)點同步實效

 

監(jiān)控狀態(tài)說明:

(1)集群完整性檢查:

wsrep_cluster_state_uuid:在集群所有節(jié)點的值應該是相同的,有不同值的節(jié)點,說明其沒有連接入集群.

wsrep_cluster_conf_id:正常情況下所有節(jié)點上該值是一樣的.如果值不同,說明該節(jié)點被臨時”分區(qū)”了.當節(jié)點之間網絡連接恢復的時候應該會恢復一樣的值.

wsrep_cluster_size:如果這個值跟預期的節(jié)點數一致,則所有的集群節(jié)點已經連接.

wsrep_cluster_status:集群組成的狀態(tài).如果不為”Primary”,說明出現”分區(qū)”或是”split-brain”狀況.

 

(2)節(jié)點狀態(tài)檢查:

wsrep_ready:該值為ON,則說明可以接受SQL負載.如果為Off,則需要檢查wsrep_connected.

wsrep_connected:如果該值為Off,且wsrep_ready的值也為Off,則說明該節(jié)點沒有連接到集群.(可能是wsrep_cluster_address或wsrep_cluster_name等配置錯造成的.具體錯誤需要查看錯誤日志)

wsrep_local_state_comment:如果wsrep_connected為On,但wsrep_ready為OFF,則可以從該項查看原因.

 

狀態(tài)變化階段:
    1.OPEN:節(jié)點啟動成功,嘗試連接到集群,如果失敗則根據配置退出或創(chuàng)建新的集群
    2.PRIMARY:節(jié)點處于集群PC中,嘗試從集群中選取donor進行數據同步
    3.JOINER:節(jié)點處于等待接收/接收數據文件狀態(tài),數據傳輸完成后在本地加載數據
    4.JOINED:節(jié)點完成數據同步工作,嘗試保持和集群進度一致
    5.SYNCED:節(jié)點正常提供服務:數據的讀寫,集群數據的同步,新加入節(jié)點的sst請求
    6.DONOR(貢獻數據者):節(jié)點處于為新節(jié)點準備或傳輸集群全量數據狀態(tài),對客戶端不可用。

 

當其中一個節(jié)點停機重啟后,通過IST來同步增量數據,來完成保證與另外兩個節(jié)點的數據一致,IST的實現是由wsrep_provider_options="gcache.size=1G"參數決定,一般設置為1G大小,參數大小是由什么決定的,根據停機時間,若停機一小時,需要確認1小時內產生多大的binlog來算出參數大小。假設我們三個節(jié)點都關閉了,會發(fā)生什么呢,全部傳SST,因為gcache數據沒了。

 

全部關閉需要采用滾動關閉方式:

1、關閉node1,修復完后,啟動加回來;

2、關閉node2,修復完后,啟動加回來;

3、直到最后一個節(jié)點

4、原則要保持Group里最少一個成員活著

 

數據庫關閉之后,最會保存一個last Txid,所以啟動時,先要啟動最后一個關閉的節(jié)點,啟動順序和關閉順序剛好相反。

wsrep_recover=on參數在啟動時加入,用于從log中分析gtid。

怎樣避免關閉和啟動時數據丟失?

1、所有的節(jié)點中最少有一個在線,進行滾動重啟;

2、利用主從的概念,把一個從節(jié)點轉化成PXC里的節(jié)點。

 

 

(3)復制健康檢查:

wsrep_flow_control_paused:表示復制停止了多長時間.即表明集群因為Slave延遲而慢的程度.值為0~1,越靠近0越好,值為1表示復制完全停止.可優(yōu)化wsrep_slave_threads的值來改善.

如果主節(jié)點寫入過大,怎么處理? Wsrep_slave_threads參數配置成cpu的個數相等或是1.5倍。

wsrep_cert_deps_distance:有多少事務可以并行應用處理.wsrep_slave_threads設置的值不應該高出該值太多.

wsrep_flow_control_sent:表示該節(jié)點已經停止復制了多少次.

wsrep_local_recv_queue_avg:表示slave事務隊列的平均長度.slave瓶頸的預兆.

最慢的節(jié)點的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、腦裂

任何命令執(zhí)行出現unkown command ,表示出現腦裂,集群兩節(jié)點間4567端口連不通,無法提供對外服務。

SET GLOBAL wsrep_provider_options="pc.ignore_sb=true"; 

2、并發(fā)寫

三個節(jié)點的自增起始值為1、2、3,步長都為3,解決了insert問題,但update同時對一行操作就會有問題,出現:Error: 1213  SQLSTATE: 40001,所以更新和寫入在一個節(jié)點上操作。

3、DDL

引起全局鎖,采用:pt-online-schema-change 

4、MyISAM引擎不能被復制,只支持innodb

5、pxc結構里面必須有主鍵

如果沒有主建,有可能會造成集中每個節(jié)點的Data page里的數據不一樣

6、不支持表級鎖

不支持lock /unlock tables 

7、pxc里只能把slow log ,query log 放到File里

8、不支持XA事務

9、性能由集群中性能最差的節(jié)點決定

 

1.7、PXC優(yōu)缺點

優(yōu)點:

    (1).同步復制 Synchronous replication

    (2).Active-active multi-master 拓撲邏輯

    (3).可對集群中任一節(jié)點進行數據讀寫

    (4).自動成員控制,故障節(jié)點自動從集群中移除

    (5).自動節(jié)點加入

    (6).真正并行的復制,基于行級

    (7).直接客戶端連接,原生的 MySQL 接口

    (8).每個節(jié)點都包含完整的數據副本

    (9).多臺數據庫中數據同步由 wsrep 接口實現

 

    缺點:

(1).目前的復制僅僅支持InnoDB存儲引擎,任何寫入其他引擎的表,包括mysql.*表將不會復制,但是DDL語句會被復制的,因此創(chuàng)建用戶將會被復制,但是insert into mysql.user…將不會被復制的        

(2).DELETE操作不支持沒有主鍵的表,沒有主鍵的表在不同的節(jié)點順序將不同,如果執(zhí)行SELECT…LIMIT… 將出現不同的結果集

    (3).在多主環(huán)境下LOCK/UNLOCK TABLES不支持,以及鎖函數GET_LOCK(), RELEASE_LOCK()…

    (4).查詢日志不能保存在表中。如果開啟查詢日志,只能保存到文件中

    (5).允許最大的事務大小由wsrep_max_ws_rows和wsrep_max_ws_size定義。任何大型操作將被拒絕。如大型的LOAD DATA操作

    (6).由于集群是樂觀的并發(fā)控制,事務commit可能在該階段中止。如果有兩個事務向在集群中不同的節(jié)點向同一行寫入并提交,失敗的節(jié)點將中止。對于集群級別的中止,集群返回死鎖錯誤代碼(Error: 1213 SQLSTATE: 40001 (ER_LOCK_DEADLOCK))

    (7).XA事務不支持,由于在提交上可能回滾

    (8).整個集群的寫入吞吐量是由最弱的節(jié)點限制,如果有一個節(jié)點變得緩慢,那么整個集群將是緩慢的。為了穩(wěn)定的高性能要求,所有的節(jié)點應使用統一的硬件

    (9).集群節(jié)點建議最少3個

    (10).如果DDL語句有問題將破壞集群。

二、二進制包安裝percona mysql

二進制安裝過程略:

編輯my.cnf文件

[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

2.1、初始化數據庫

標注:

作為primary節(jié)點的數據庫需要初始化數據庫,作為從節(jié)點就不需要初始化數據庫,只需要直接啟動數據庫,從節(jié)點會自動從primary節(jié)點拷貝數據到存放數據文件的位置。

2.1.2、源碼安裝xtrabackup
2.1.2.1、安裝依賴包

[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

2.1.2.2、編譯xtrabackup

注意: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/

 

 

2.1.2.2.1、安裝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/

 

2.1.2.2.2、安裝libev

[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

 

2.1.2.2.3、安裝lzlib

[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

2.1.2.2.4、安裝sphinx

[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

 

2.1.2.2.5、安裝xtrabackup

[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

Percona XtraDB Cluster規(guī)劃實施

在編譯時可以添加如下兩個參數:

-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)

 

2.1.3、安裝galera
2.1.3.1、編譯galera

[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時報錯解決如:

Percona XtraDB Cluster規(guī)劃實施

yum install boost* openssl* check* -y
yum -y install gcc

yum -y install scons  

然后可以不執(zhí)行腳本執(zhí)行scons進行編譯即可:

[root@pxc01 opt]# cd/usr/local/galera-3-25.3.16/

#scons

可以以正常模式啟動主節(jié)點mysql(/usr/local/mysql/bin/mysqld_safe--wsrep_cluster_address=gcomm://>/dev/null &)

2.2、從節(jié)點安裝

其余2個節(jié)點按照主節(jié)點步驟安裝,

從節(jié)點安裝完mysql以后不需要初始化數據,可以直接啟動mysql,mysql啟動以后會自動加入到集群節(jié)點,并從主節(jié)點拷貝數據文件到存放數據文件的位置。

chown -R mysql.mysql /usr/local/mysql/

從節(jié)點啟動:

/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 & 

四、配置PXC集群

4.1、添加PXC參數

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;

 

4.1.2、編輯my.cnf文件

編輯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  --節(jié)點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

4.1.3、啟動mysql

以PXC(初始化)模式啟動mysql,只有主節(jié)點可以這么啟動,從節(jié)點必須按照正常啟動方式啟動mysql

[mysql@VM-172-31-102-133 ~]#/etc/init.d/mysqldbootstrap-pxc

Bootstrapping PXC (Percona XtraDBCluster)Starting MySQL (Percona XtraDB Cluster). SUCCESS!

 

 

 

4.1.3、配置第二個節(jié)點

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"

 

4.1.4、配置第三個節(jié)點

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"

 

4.1.4、啟動從節(jié)點mysql

以次下列命令啟動

Service mysql start

查看日志:


網站名稱:PerconaXtraDBCluster規(guī)劃實施
新聞來源:http://weahome.cn/article/pisdic.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部