mysqlのPXC 5.7.18クラスターシリーズ——1.Percona XtraDB Cluster構築

4131 ワード

1.関連準備
公式チュートリアル:https://www.percona.com/doc/percona-xtradb-cluster/LATEST/install/yum.html#yumepelの紹介:https://fedoraproject.org/wiki/EPELepel 6ダウンロード:https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
  :rhel   epel,              yum  ,     

2.クラスタノード
Nodes
Hostname
IP
HAProxy
haproxy
172.16.3.30
Node1
mysql01
172.16.3.31
Node2
mysql02
172.16.3.32
Node3
mysql03
172.16.3.33
  :RHEL6.8,4G  

3.前提条件
(1)オープンポート
# iptables -I INPUT -p tcp -m multiport –dport 3306,4444,4567,4568 -j ACCEPT # service iptables save # service iptables restart
  :1.service iptables status          

(2) SELinux
# vim/etc/selinux/config SELINUX = disabled # setenforce 0
  :1.SELINUX = permissive    setenforce 0     SELINUX   permissive,            ,      
  :2.getenforce   SELINUX    

4.インストールファイル
ファイル
説明
Percona-XtraDB-Cluster
Percona-XtraDB-Cluster-5.7.18-29.20-r346-el6-x86_64-bundle.tar
socat
yum -y install socat
libev
yum -y install libev
perl-DBD-MySQL
yum -y install perl-DBD-MySQL
xtrabackup
percona-xtrabackup-24-2.4.6-2.el6.x86_64.rpm
cluster
Percona-XtraDB-Cluster-57-5.7.18-29.20.1.el6.x86_64.rpm
client
Percona-XtraDB-Cluster-client-57-5.7.18-29.20.1.el6.x86_64.rpm
server
Percona-XtraDB-Cluster-server-57-5.7.18-29.20.1.el6.x86_64.rpm
shared
Percona-XtraDB-Cluster-shared-57-5.7.18-29.20.1.el6.x86_64.rpm
5.ディレクトリの作成
# mkdir -p/home/mysql/{data,log,run,backup}
  :data,mysql    
  :log,mysql    
  :run,mysql    
  :backup,mysql    ,    xtrabackup

6. my.cnf構成
(1) Node1
[mysql] port = 3306 socket =/home/mysql/run/mysql.soc
[mysqld]###Percona XtraDB Cluster公式配置begin wsrep_provider =/usr/lib64/galera3/libgalera_smm.so wsrep_cluster_name = pxc-cluster wsrep_cluster_address = gcomm://172.16.3.31,172.16.3.32,172.16.3.33 wsrep_node_name = pxc1 wsrep_node_address = 172.16.3.31 wsrep_sst_method = xtrabackup-v2 wsrep_sst_auth = sstuser:sstpassword wsrep_provider_options="gcache.size=8G;"#個人(非公式)はpxcを強くお勧めします.strict_mode = enforcing binlog_format = ROW default_storage_engine = InnoDB innodb_autoinc_lock_mode=2###Percona XtraDB Cluster公式配置end
###カスタム構成begin user=mysql port=3306
datadir =/home/mysql/data log-bin =/home/mysql/log/mysql-bin expire_logs_days = 14 log-error =/home/mysql/log/mysql.err
pid-file =/home/mysql/run/mysql.pid socket =/home/mysql/run/mysql.soc
character_set_server = utf8 collation_server = utf8_general_ci###カスタム構成end
###パフォーマンス最適化begin innodb_buffer_pool_size = 3G #80% innodb_log_file_size = 256M #5% innodb_flush_method = O_DIRECT#デュアルバッファ回避技術max_allowed_Packet=167777216#最大許容パケットサイズ、16 M、デフォルト1024*1024*4
sync_binlog=0#トランザクションはディスクinnodb_に同期することなくコミットされました.flush_log_at_trx_commit=0#0はディスクへのリフレッシュを意味するが、同期しない(コミット時に実際のIOは実行されない)###パフォーマンス最適化end
  :wsrep_provider_options="gcache.size=8G;",      ,  :
  xtrabackup+IST     SST         Node,          。     

(2) Node2
wsrep_node_name = pxc2 wsrep_node_address = 172.16.3.32
(3) Node3
wsrep_node_name = pxc3 wsrep_node_address = 172.16.3.33
7.ファイル権限
# chowm -R mysql.mysql/home/mysql
8.クラスタ起動
(1) Node1
# service mysql bootstrap-pxc
  :  ,           Node(              ),        

(2) Node2
# service mysql start
  :  ,       Node  ,            

(3) Node3
# service mysql start
9.アカウントの作成
mysql> create user 'sstuser'@'localhost' identified by 'sstpassword'; mysql> grant process, reload, lock tables, replication client on *.* to 'sstuser'@'localhost';
  :sstuser,  xtrabackup             

10.クラスタのステータスの表示
mysql> show status like 'wsrep%';