2021年12月29日 星期三

【IT Notes】 CentOS 7 配置 Percona XtraDB Cluster

 XtraDB是Percona公司出的一款開放免費的MySQL系統,前年玩過這個東西後也沒有留下筆記,趁有點時間的時候重新再試做一次,中間果然又遇到很多障礙,後來成功後得要趕緊留下紀錄,不然以後要做又會忘記了。

一‧事前準備 四台VM,基本配備:  

4核心CPU、4GB RAM、15GB硬碟  
node1: 10.113.112.52     pxc1
node2: 10.113.112.53     pxc2
node3: 10.113.112.54     pxc3 
(要先確認彼此都能ping或ssh得到)

二‧防火牆調整通訊port

# firewall-cmd --permanent --add-port={3306,4444,4567,4568}/tcp 
# firewall-cmd --reload

三‧關閉SELinux
XtraDB跟SELinux沒有完整相容,所以必須關閉
# vim /etc/selinux/config

SELinux設定為disabled










四‧下載並用root安裝XtraDB
1.四台node都要下載
# yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm yum
# makecache fast
# yum install -y Percona-XtraDB-Cluster-57

2.四台node各自啟動MySQL
# systemctl enable --now mysql.service
# grep 'temporary password' /var/log/mysqld.log
2021-12-30T01:57:55.528469Z 1 [Note] A temporary password is generated for root@localhost: a3wrV-VW&qfe
\\啟動MySQL時會自動產生一個臨時密碼,第一次登入後再去修改密碼
# mysql -u root -pa3wrV-VW&qfe

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '1qaz@WSX';
mysql> flush privileges;
mysql> exit




















五‧三台node配置複寫的config
1.pxc1、2和3都要停整的配置檔案
# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf

2.pxc1要修改的設定
wsrep_cluster_address=gcomm://10.113.112.52,10.113.112.53,10.113.112.54
wsrep_node_address=10.113.112.52
wsrep_cluster_name=pxc-cluster
wsrep_node_name=pxc1
wsrep_sst_auth="sstuser:1qaz@WSX"


3.pxc2要修改的設定
wsrep_cluster_address=gcomm://10.113.112.52,10.113.112.53,10.113.112.54
wsrep_node_address=10.113.112.53
wsrep_cluster_name=pxc-cluster
wsrep_node_name=pxc2
wsrep_sst_auth="sstuser:1qaz@WSX"

4.pxc3要修改的設定
wsrep_cluster_address=gcomm://10.113.112.52,10.113.112.53,10.113.112.54
wsrep_node_address=10.113.112.54
wsrep_cluster_name=pxc-cluster
wsrep_node_name=pxc3
wsrep_sst_auth="sstuser:1qaz@WSX"


六‧啟動複寫
1.node1先帶頭啟動並建立複寫用帳號
# systemctl start mysql@bootstrap.service
# mysql -u root -p

mysql> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY '1qaz@WSX';
mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> exit









2.node2和node3啟動MySQL,加入cluster
# systemctl start mysql.service

3.回到node1檢視複寫狀態
# mysql -u root -p
mysql>show status like 'wsrep%';
 


























mysql>show status like 'wsrep_cluster_size';








4.建立資料表測試複寫
在node1上建立資料庫和資料表
mysql> CREATE DATABASE RECIPES;
mysql> USE RECIPES;
mysql> CREATE TABLE TAB1 (CONTACT_ID INT PRIMARY KEY, CONTACT_NAME VARCHAR(20));
mysql> INSERT INTO TAB1 VALUES (1,'sadegh');
mysql> INSERT INTO TAB1 VALUES (2,'nix');
mysql> INSERT INTO TAB1 VALUES (3,'mamad');
mysql> exit
Bye


















再到另兩台node查看有無同步
mysql> USE RECIPES;
mysql> SELECT * FROM TAB1;
複寫成功,XtraDB有正常運作

























沒有留言:

張貼留言

【IT Notes】透過api移轉Gmail到Exchange

 在雲端裡面串接api不是一件很好學的技術,第一次有機會學習到將GWS的Gmail信件全部轉移到M365的Exchange,其實方法很多種,像以前用的pst檔匯出轉移的方式等,但透過api串接,可以批次和排程轉移,是非常方便且準確的作法。唯一讓人感到困難的是學習成本不小,通常需要...