1. 程式人生 > >Percona XtraDB Cluster叢集

Percona XtraDB Cluster叢集

官網參考地址:

https://www.percona.com/doc/percona-xtradb-cluster/LATEST/configure.html

前期準備:

都用的root許可權或使用sudo
確保3306、4444、4567、4568埠沒有被防火牆攔截
關閉selinux

$ cat /etc/centos-release
   CentOS Linux release 7.4.1708 (Core)
$ uname -r   
   3.10.0-693.el7.x86_64

  IP       主機名

192.168.3.120    node1

192.168.3.121    node2

192.168.3.122    node3

##########################################################################

安裝版塊:(所有節點上執行)

$ yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-6/percona-release-0.1-6.noarch.rpm
$ yum -y install Percona-XtraDB-Cluster-57          #如是本地執行可能會提示要掛載光碟,如雲上則不會
$ service mysql start

複製超級使用者帳戶的自動生成的臨時密碼:
$ grep 'temporary password' /var/log/mysqld.log|awk -F '@' '{print $2}'|awk -F ' ' '{print $2}'
使用此密碼登入為root:
$ mysql -u root -p
更改超級使用者帳戶的密碼並登出:
$  mysql>  ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

##########################################################################

建立資料、日誌、臨時檔案目錄(所有節點上執行)

mkdir -p  /data/mysql/{data,logs,tmp} 
chown -R mysql.mysql /data
mv /etc/my.cnf{,.bak}
cp /etc/percona-xtradb-cluster.conf.d/wsrep.cnf   /etc/my.cnf

##########################################################################

第一個節點上的/etc/my.cnf中新增以下配置變數:

cat /etc/my.cnf | grep -v ^#|grep -v ^$

[mysqld]
user=mysql
innodb_buffer_pool_size = 1024M
datadir = /data/mysql/data
port = 3306
server_id = 1                #每個節點的server_id都不一樣
socket = /var/lib/mysql/mysql.sock
pid-file = /var/lib/mysql/controller.pid
log-error = /data/mysql/logs/error.log
log_warnings = 2
slow_query_log_file = /data/mysql/logs/slow.log
long_query_time = 0.1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

wsrep_provider=/usr/lib64/galera3/libgalera_smm.so
wsrep_cluster_address=gcomm://192.168.3.120,192.168.3.121,192.168.3.122
binlog_format=ROW
default_storage_engine=InnoDB
wsrep_slave_threads= 8
wsrep_log_conflicts
innodb_autoinc_lock_mode=2
wsrep_node_address=192.168.3.120           #IP為本機IP
wsrep_cluster_name=pxc-cluster
wsrep_node_name=pxc-cluster-node-1
pxc_strict_mode=ENFORCING
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth="sstuser:123456"               格式:使用者名稱:密碼

 在上面的配置檔案中,有個wsrep_sst_auth引數。該引數是用於其它節點加入到該叢集中,利用XtraBackup執行State Snapshot Transfer(類似於全量同步)的。

    所以,接下來是授權 

mysql> create user 'sstuser'@'localhost' identified by '123456';
mysql> grant reload,lock tables,process,replication client on *.* to 'sstuser'@'localhost';
mysql> flush privileges;
mysql> show grants for [email protected];
mysql> exit service mysql stop

##########################################################################

對於第二個節點:
server_id = 2
wsrep_node_name=pxc2
wsrep_node_address=192.168.3.121


對於第三個節點:
server_id = 3
wsrep_node_name=pxc3
wsrep_node_address=192.168.3.122

除以上3項和節點1上不一樣之外,第二個節點和第三個節點的其他配置和節點1上的my.cnf配置一樣

########### 以上各引數解析 ##############
wsrep_provider
指定Galera庫的路徑。
紅帽或CentOS: /usr/lib64/galera3/libgalera_smm.so

wsrep_cluster_name
指定群集的邏輯名稱。對於群集中的所有節點它必須相同。

wsrep_cluster_address
指定群集中節點的IP地址。節點加入群集至少需要一個,但建議列出所有節點的地址。這樣,如果列表中的第一個節點不可用,則加入節點可以使用其他地址。

wsrep_node_name
指定每個節點的邏輯名稱。如果未指定此變數則將使用主機名。

wsrep_node_address
指定此特定節點的IP地址。

wsrep_sst_method
預設情況下,Percona XtraDB群集使用Percona XtraBackup進行狀態快照傳輸(SST)。
wsrep_sst_method=xtrabackup-v2強烈建議設定。此方法需要在初始節點上設定使用者SST。
使用wsrep_sst_auth變數提供SST使用者憑據。

wsrep_sst_auth
指定認證憑證SST 作為<sst_user>:<sst_pass>

pxc_strict_mode
PXC嚴格模式預設啟用並設定為ENFORCING,這會阻止在Percona XtraDB Cluster中使用實驗和不支援的功能。

binlog_format
Galera僅支援行級複製因此設定成binlog_format=ROW。

default_storage_engine
Galera完全支援InnoDB儲存引擎。它無法與MyISAM或任何其他非事務性儲存引擎一起正常工作。將此變數設定為default_storage_engine=InnoDB

innodb_autoinc_lock_mode
Galera僅支援2InnoDB的interleaved()鎖定模式。設定傳統(0)或連續(1)鎖定模式可能會導致複製因未解決的死鎖而失敗。將此變數設定為innodb_autoinc_lock_mode=2

########### 各引數解析結束 ##############

##########################################################################

啟動第一個節點:

$ systemctl start [email protected]
##注意!第一個節點啟動方式和其他節點方式啟動不同
##如果是CentOS 6,則啟動方式為 # /etc/init.d/mysql bootstrap-pxc,之所以採用bootstrap啟動,其實是告訴資料庫,這是第一個節點,不用進行資料的同步。

更改mysql的root密碼:

vim /etc/my.cnf
在[mysqld]中新增
skip-grant-tables
$ systemctl restart [email protected]
$ mysql -uroot -p (直接點選回車,密碼為空)
use mysql;
update user set authentication_string=password('123456') where user='root';
flush privileges;
exit
刪除skip-grant-tables
$ systemctl restart [email protected]

確保已初始化群集執行以下命令:(所有節點上執行,下圖是節點一上還未啟動其他節點時的)

$ mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
mysql> show status like 'wsrep%';

注:現在上面的wsrep_cluster_size 是為1的

驗證sstuser登入:(所有節點上執行)

$ mysql -usstuser -p123456 -S /var/lib/mysql/mysql.sock -e 'show databases'

注意:如有報錯自行修改,也就是許可權和使用者有沒新增的問題

啟動其他所有節點:(所有節點上執行)

$ systemctl start mysql   

附:啟動時有一個節點報了個錯,如下:

根據報錯資訊,最後解決:

再到節點有上去看下:


簡單測試:

在節點2上建立一個數據庫,並在節點1上在節點2上建立的庫中建立一張test100表

然後再在節點3上的節點2上建立的test100表中插入資料

相關推薦

Percona XtraDB Cluster 叢集引數配置說明(PXC 5.7)

從PXC5.7版本開始,叢集的配置主要是通過wsrep.cnf配置來實現。這個檔案有幾個常用的引數配置。下文對其做簡要說明。 一、PXC 5.7叢集配置檔案 [[email protected] ~]# more /etc/percona-xtradb-cluster.conf.d/wsrep

mysql之 Percona XtraDB Cluster叢集執行緒模型

Percona XtraDB叢集建立一組執行緒來為其操作提供服務,這些執行緒與現有的MySQL執行緒無關。有三個主要執行緒組: 一、Applier執行緒 Applier執行緒應用從其他節點接收的寫入集。寫訊息直接通過gcv_recv_thread。 使用wsrep_sl

Percona XtraDB Cluster叢集節點重啟及故障轉移

一、重新啟動叢集節點 要重新啟動叢集節點,請關閉MySQL並重新啟動它。該節點將離開叢集(並且法定人數的總計數應該減少)。釋出命令 systemctl restart mysql 當它重新加入時,節點應該使用IST進行同步。如果gcache在整個叢集中的任何

Percona XtraDB Cluster叢集

官網參考地址: https://www.percona.com/doc/percona-xtradb-cluster/LATEST/configure.html 前期準備: 都用的root許可權或使用sudo確保3306、4444、4567、4568埠沒有被防火牆攔截關閉selinux $ cat /e

docker mysql pxc叢集percona-xtradb-cluster

docker pull percona/percona-xtradb-cluster docker tag percona/percona-xtradb-cluster pxc docker network create --subnet=172.18.0.0/24 net1 docker volume

Mysql搭建PXC叢集 - Percona XtraDB Cluster

pxc叢集是Percona XtraDB Cluster的縮寫,是基於percona資料庫和galera中介軟體一種特殊MYSQL資料庫,而且據說percona資料庫的效能要比mysql還要好一些,並且是基於mysql,可以使用mysql的jdbc和客戶端進行連線的。 pxc叢集相比mysql單

在CentOS上配置Percona XtraDB叢集Percona XtraDB Cluster

原作者:Percona官網 翻譯&轉載來源:https://www.percona.com/doc/percona-xtradb-cluster/LATEST/howtos/centos_howto.html   在CentOS上配置Percona XtraDB叢集(Per

docker搭建基於percona-xtradb-cluster方案的myql叢集

一、部署環境 序號 hostname ip 備註 1 manager107 10.0.3.107 centos7;3.10.0-957.1.3.el7.x86_64 2 worke

percona xtradb cluster test

amp all ets allow try status stat dock mys docker run --rm -ti -e CLUSTER_NAME=test -e MYSQL_ALLOW_EMPTY_PASSWORD=1 --entrypoint="bash" -

PXC5.7(Percona XtraDB Cluster)+HAproxy集群部署

PXChaproxymysqlPXC是Percona XtraDB Cluster的縮寫,是一種具有高可用性和高擴展性的MySQL開源集群。它集成了Percona Server和Percona XtraBackup,同時采用了Codership Galera庫。優點:1.準同步復制2.多個可同時讀寫節點,可實

Install Percona XtraDb Cluster 5.6.20 on CentOS 6.5

ots mysql- mkdir binlog rdf bootstra cfg mysql sql http://blog.51cto.com/hj192837/1546149 You should have odd number of real nodes. node

Percona-XtraDB-Cluster的編譯安裝

centos7 PXC linux mysql 操作系統centos7.4,mysql 安裝在/data/mysql下,mysql屬於mysql用戶1.下載源碼包下載pxc-5.7.19mkdir -p /home/sunx/tools https://www.percona.com/down

Percona-XtraDB-Cluster編譯安裝錯誤

you all yum mys abort 加入集群 err 備份 Xtraback 報錯一: 2018-06-28T07:32:12.527956Z 0 [ERROR] WSREP: failed to open gcomm backend connection: 11

Percona XtraDB Cluster Installation Guide

code sha rep set expire service cati str ads Percona XtraDB Cluster(簡稱PXC)集群是基於Galera,事務型應用下的通用的多主同步復制插件,主要用於解決強一致性問題,使得各個節點之間的數據保持實時同步以及

mysql之 Percona XtraDB Cluster集群線程模型

動作 模型 page 版權 分配 copy 中繼日誌 只有一個 等待 Percona XtraDB集群創建一組線程來為其操作提供服務,這些線程與現有的MySQL線程無關。有三個主要線程組: 一、Applier線程 Applier線程應用從其他節點接收的寫入集。寫消息直接通過

Percona XtraDB Cluster(PXC)——架構原理

Percona XtraDB Cluster(PXC):Percona XtraDB Server +WSREP API(write set replication patches)  +  Galera(galera library) 轉自:http://blog

About Percona XtraDB Cluster

Percona XtraDB Cluster is a fully open-source high-availability solution for MySQL. It integrates Percona Server and Percona XtraB

如何在Debian 8上安裝Percona XtraDB Cluster for MySQL

翻譯&轉載來源:https://www.howtoforge.com/tutorial/how-to-install-percona-xtradb-cluster-for-mysql/   在本文中,我將向您展示如何在多主複製中配置具有三個節點的MySQL資料庫叢集。多主複

Percona XtraDB Cluster高可用與狀態快照傳輸(PXC 5.7 )

Percona XtraDB Cluster(下稱PXC)高可用叢集支援任意節點在執行期間的重啟,升級或者意外宕機,即它解決了單點故障問題。那在這個意外宕機或者重啟期間,該節點丟失的資料如何再次進行同步呢?本文介紹了在節點故障和重啟PXC如何實現高可用以及狀態快照傳輸的幾種方

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

Percona XtraDB Cluster有眾多的優秀特性,使得mysql叢集得以輕鬆實現。但是不要忽略了它的一些限制。如果你無法接受,或者你的應用程式或資料庫(比如使用了memory引擎)對限制無法做出調整,那PXC對你而言是不合適。限制有哪些呢,下文是其描述。 1、儲