CentOS 7 搭建PXC 數據庫集群


CentOS 7 搭建PXC 數據庫集群
PXC( Percona XtraDB Cluster ) 特點如下:

1.同步復制,事務要么在所有節點提交或不提交,保證了數據的強一致性。
2.多主復制,可以在任意節點進行寫操作。
3.在從服務器上並行應用事件,真正意義上的並行復制。

Percona 下載地址
https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/

所有下載安裝包如下:

Percona-XtraDB-Cluster

Percona-XtraBackup

jemalloc

qpress

#修改靜態IP

ip addr

vi /etc/sysconfig/network-scripts/ifcfg-ens32

#修改並添加

BOOTPROTO=static

IPADDR=192.168.0.3
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.1
DNS2=8.8.8.8

service network restart

 

#先刪除預裝的 MariaDB
yum -y remove mari*

#解壓所有安裝包,到 /home 目錄,執行批量安裝
yum localinstall *.rpm

#查看 root 密碼
cat /var/log/mysqld.log | grep "A temporary password"

#修改 root 密碼,建議先創建快照,以便恢復.
mysql_secure_installation

#登錄 mysql
mysql -h127.0.0.1  -u root  -p

#創建 admin 帳號
mysql> CREATE USER 'admin'@'%' IDENTIFIED BY 'Abc_123456';
mysql> GRANT all privileges ON *.* TO 'admin'@'%';
mysql> FLUSH PRIVILEGES;
mysql>exit


#修改 mysql 配置文件
vi /etc/percona-xtradb-cluster.conf.d/mysqld.cnf

===>添加在 [mysqld] 下面:
[mysqld]
character_set_server=utf8
bind-address=0.0.0.0
#跳過DNS解析
skip-name-resolve
 
#修改集群配置文件
vi /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
 
===>對照配置文件,修改這些地方(紅色標記是要改的地方)
 
[mysqld]

#集群名稱
wsrep_cluster_name=pxc-cluster

#節點名稱(每個節點不同)
wsrep_node_name=pxc-cluster-node-1

#節點IP
wsrep_node_address=192.168.0.11

#集群IP地址列表(3,4,5 最少三個節點)
wsrep_cluster_address=192.168.0.3,192.168.0.4,192.168.0.5

#同步數據時的帳戶
wsrep_sst_auth="admin:Abc_123456"

#Galera 庫
wsrep_provider=/usr/lib64/galera3/libgalera_smm.so

#基於ROW復制(安全可靠)
binlog_format=ROW

#默認存儲引擎,目前MyISAM 還處於實驗階段
default_storage_engine=InnoDB

#從節點線程數
wsrep_slave_threads= 8

#是否記錄有關沖突的其他信息
wsrep_log_conflicts=OFF

#主鍵自增長不鎖表
innodb_autoinc_lock_mode=2

#同步嚴厲模式(DISABLED,PERMISSIVE,ENFORCING,MASTER)
pxc_strict_mode=ENFORCING

#同步方法(mysqldump、rsync、xtrabackup)
wsrep_sst_method=xtrabackup-v2

 
#把 SELINUX 值設置成 disabled
vi /etc/selinux/config
 
#禁止 mysql 自啟動
chkconfig mysqld off
 
#開放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=4444/tcp --permanent
firewall-cmd --zone=public --add-port=4567/tcp --permanent
firewall-cmd --zone=public --add-port=4568/tcp --permanent
 
#重啟服務器
reboot
 
至此,第一個節點服務器就建好了,如果你用的虛擬機的話,克隆該系統兩份.這個時候是不無法通過 service mysql 啟動的,因為當前是集群配置,沒有沒有集群的存在,當然啟動失敗.
接下來,再配置兩台機器,可以直接克隆,然后改改.
 
如果是克隆的話,我說一個注意事項,首先,機器啟動之前,把網卡地址改一下,不然,與前一台機器沖突了.然后再啟動機器,修改靜態IP.
 
#修改 server-id,每個集群中,編號唯一,可改成1.2.3編號
vi /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
 
准備就位后,把其中一台作為主節點啟動,以創建集群,命令分別如下.
 
#主節點啟動
systemctl start mysql@bootstrap.service
 
#非主節點啟動
service  mysql start
 
另外注意一點,集群中,半數或半數以上的節點掛了,集群也就掛了.當重新啟動集群時,能作為主節點啟動的,往往是那台最后掛的服務器,因為它保存的數據是最完整的.
 
#查看哪能節點服務器能作為主節點啟動
vi /var/lib/mysql/grastate.dat
 
找到 "safe_to_bootstrap: 0"  如果是 1 表示可以作為主節點啟動,當三個節點同時掛了,那么全都是0,這時手動修改其中一個為1就好了.

最終實現的效果是數據庫管理工具連接這三個數據庫節點,然后,任意操作其中一個數據庫,刷新另外兩個,都能看到變一致的改變.
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM