PXC(Percona XtraDB Cluster)叢集的安裝

小亮520cl發表於2015-11-12

1規劃

node1
192.168.6.119
node2
192.168.6.121
node3
192.168.6.122


2 安裝(所有節點上都做

  1. 設定selinux為disable
  2. SELINUX=disabled
  3. SELINUXTYPE=targeted
 $ setenforce 0 立即生效
  1. 測試時可以關閉防火牆
  2. 生產環境需要開啟埠:3306, 4444, 4567 and 4568
 安裝percona yum源
[root@localhost ~]# rpm -Uhv 
Retrieving 
Preparing...                ########################################### [100%]
1:percona-release        ########################################### [100%]

安裝epel yum源
。。。。。。

安裝percona包
[root@localhost ~]# rpm -aq | grep -i percona
Percona-XtraDB-Cluster-galera-3-3.12.2-1.rhel5
percona-xtrabackup-2.3.2-1.el5
Percona-XtraDB-Cluster-client-55-5.5.41-25.11.853.el5
Percona-XtraDB-Cluster-server-55-5.5.41-25.11.853.el5
Percona-Server-shared-compat-5.1.68-rel14.6.551.rhel5
percona-release-0.1-3


3 編輯引數檔案
編輯第一個節點
  1. [root@localhost ~]# more /etc/my.cnf
  2. [mysqld]

  3. # GENERAL
  4. datadir=/var/lib/mysql
  5. socket=/var/lib/mysql/mysql.sock
  6. pid_file=/var/lib/mysql/mysql.pid
  7. user=mysql
  8. port=3306
  9. default_storage_engine=InnoDB
  10. character_set_server=utf8
  11. log_bin=mysqlbin
  12. # INNODB/XtraDB
  13. innodb_buffer_pool_size=1610612736    ----這個地方要注意啊。在別的節點上不要註釋掉,不然別的節點啟動的時候一直報錯
  14. innodb_log_file_size=104857600

  15. #PXC
  16. wsrep_provider=/usr/lib64/libgalera_smm.so
  17. wsrep_cluster_address=gcomm://192.168.6.119,192.168.6.121,192.168.6.121
  18. binlog_format=ROW
  19. innodb_autoinc_lock_mode=2
  20. wsrep_node_address=192.168.6.119
  21. wsrep_sst_receive_address=192.168.6.119     ---第二個,第三個節點一樣的,只是這個ip分別換了
  22. server_id=000119
  23. wsrep_sst_method=xtrabackup-v2
  24. wsrep_cluster_name=my_mysql_cluster
  25. wsrep_sst_auth="sstuser:sstuser"            ----叢集使用者

  26. # LOGGING
  27. log-error=/var/lib/mysql/mysql-error.log
  28. slow_query_log=1
  29. slow_query_log_file=/var/lib/mysql/mysql-slow.log

  30. # OTHER

  31. [client]
  32. socket=/var/lib/mysql/mysql.sock
  33. port=3306
  34. # END

啟動
[root@localhost ~]# /etc/init.d/mysql start --wsrep-cluster-address="gcomm://"
Starting MySQL (Percona XtraDB Cluster).. SUCCESS! 
或者使用這種啟動
[root@localhost ~]/etc/init.d/mysql bootstrap-pxc
mysql> show status like 'wsrep%'

點選(此處)摺疊或開啟

  1. mysql> show status like 'wsrep%';
  2. +------------------------------+---------------------------------------+
  3. | Variable_name | Value |
  4. +------------------------------+---------------------------------------+
  5. | wsrep_local_state_uuid | a36a6abc-8829-11e5-bd81-fa6fd7dadaec |
  6. | wsrep_protocol_version | 7 |
  7. | wsrep_last_committed | 38253 |
  8. | wsrep_replicated | 38246 |
  9. | wsrep_replicated_bytes | 16341882 |
  10. | wsrep_repl_keys | 114381 |
  11. | wsrep_repl_keys_bytes | 1794706 |
  12. | wsrep_repl_data_bytes | 12099432 |
  13. | wsrep_repl_other_bytes | 0 |
  14. | wsrep_received | 400 |
  15. | wsrep_received_bytes | 7131 |
  16. | wsrep_local_commits | 37932 |
  17. | wsrep_local_cert_failures | 104 |
  18. | wsrep_local_replays | 0 |
  19. | wsrep_local_send_queue | 0 |
  20. | wsrep_local_send_queue_max | 228 |
  21. | wsrep_local_send_queue_min | 0 |
  22. | wsrep_local_send_queue_avg | 10.807747 |
  23. | wsrep_local_recv_queue | 0 |
  24. | wsrep_local_recv_queue_max | 2 |
  25. | wsrep_local_recv_queue_min | 0 |
  26. | wsrep_local_recv_queue_avg | 0.012500 |
  27. | wsrep_local_cached_downto | 7 |
  28. | wsrep_flow_control_paused_ns | 19690538000 |
  29. | wsrep_flow_control_paused | 0.001397 |
  30. | wsrep_flow_control_sent | 0 |
  31. | wsrep_flow_control_recv | 524 |
  32. | wsrep_cert_deps_distance | 7.398894 |
  33. | wsrep_apply_oooe | 0.827072 |
  34. | wsrep_apply_oool | 0.044831 |
  35. | wsrep_apply_window | 141.161812 |
  36. | wsrep_commit_oooe | 0.000000 |
  37. | wsrep_commit_oool | 0.000000 |
  38. | wsrep_commit_window | 140.036573 |
  39. | wsrep_local_state | 4 |
  40. | wsrep_local_state_comment | Synced |
  41. | wsrep_cert_index_size | 13 |
  42. | wsrep_cert_bucket_count | 210 |
  43. | wsrep_gcache_pool_size | 17954373 |
  44. | wsrep_causal_reads | 0 |
  45. | wsrep_cert_interval | 145.261227 |
  46. | wsrep_incoming_addresses | 192.168.6.119:3306,192.168.6.121:3306 |
  47. | wsrep_evs_delayed | |
  48. | wsrep_evs_evict_list | |
  49. | wsrep_evs_repl_latency | 0/0/0/0/0 |
  50. | wsrep_evs_state | OPERATIONAL |
  51. | wsrep_gcomm_uuid | 0636fa24-8844-11e5-83bd-9bdf3f03c13f |
  52. | wsrep_cluster_conf_id | 13 |
  53. | wsrep_cluster_size | 2 |
  54. | wsrep_cluster_state_uuid | a36a6abc-8829-11e5-bd81-fa6fd7dadaec |
  55. | wsrep_cluster_status | Primary |
  56. | wsrep_connected | ON |
  57. | wsrep_local_bf_aborts | 0 |
  58. | wsrep_local_index | 0 |
  59. | wsrep_provider_name | Galera |
  60. | wsrep_provider_vendor | Codership Oy <info@codership.com> |
  61. | wsrep_provider_version | 3.12.2(rf3e626d) |
  62. | wsrep_ready | ON |
  63. | wsrep_thread_count | 2 |
  64. +------------------------------+---------------------------------------+
  65. 59 rows in set (0.00 sec)

進入資料庫為其他節點做準備工作
mysql> UPDATE mysql.user SET password=PASSWORD("Passw0rd") where user='root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0
#修改root使用者密碼(也可以不修改)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'sstuser';
Query OK, 0 rows affected (0.00 sec)
#增加使用者sstuser
mysql> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';
Query OK, 0 rows affected (0.00 sec)
#賦予許可權
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

第二個節點
編輯my.cnf配置檔案
啟動mysql:/etc/init.d/mysql start    ---啟動方式和上面有區別
Starting MySQL (Percona XtraDB Cluster)...SST in progress, setting sleep higher
.. SUCCESS!


d第三個節點
編輯my.cnf配置檔案
啟動mysql:/etc/init.d/mysql start   ---啟動方式和上面有區別
Starting MySQL (Percona XtraDB Cluster)...SST in progress, setting sleep higher
.. SUCCESS!


到此搭建完畢:不管在哪個節點進行操作,所有的操作會複製到整個叢集!



補充:上面的方式搭建好麻煩還總是報錯,按照Mariadb Galar cluster搭建方式簡單容易

  1. 環境
  2. 121
  3. 119
  4. 122

121:
  1. [root@node4 mysql]# more /etc/my.cnf
  2. [mysqld]
  3. datadir=/var/lib/mysql
  4. socket=/var/lib/mysql/mysql.sock
  5. pid_file=/var/lib/mysql/mysql.pid
  6. user=mysql
  7. port=3306
  8. character_set_server=utf8
  9. log_bin=mysqlbin
  10. innodb_buffer_pool_size=200M
  11. innodb_log_file_size=50M
  12. binlog_format=ROW
  13. innodb_autoinc_lock_mode=2
  14. server_id=000121
  15. log-error=/var/lib/mysql/mysql-error.log
  16. slow_query_log=1
  17. slow_query_log_file=/var/lib/mysql/mysql-slow.log



  18. wsrep_provider=/usr/lib64/libgalera_smm.so
  19. wsrep_cluster_address="gcomm://"
  20. wsrep_sst_auth="sstuser:sstuser"
  21. wsrep_sst_method=rsync


  22. [client]
  23. socket=/var/lib/mysql/mysql.sock
  24. port=3306

122:
  1. [mysqld]

  2. # GENERAL
  3. datadir=/var/lib/mysql
  4. socket=/var/lib/mysql/mysql.sock
  5. pid_file=/var/lib/mysql/mysql.pid
  6. user=mysql
  7. port=3306
  8. character_set_server=utf8
  9. log_bin=mysqlbin
  10. innodb_buffer_pool_size=200M
  11. innodb_log_file_size=50M
  12. binlog_format=ROW
  13. innodb_autoinc_lock_mode=2
  14. server_id=000121
  15. log-error=/var/lib/mysql/mysql-error.log
  16. slow_query_log=1
  17. slow_query_log_file=/var/lib/mysql/mysql-slow.log





  18. wsrep_provider=/usr/lib64/libgalera_smm.so
  19. wsrep_cluster_address="gcomm://192.168.6.121:4567"
  20. wsrep_sst_auth="sstuser:sstuser"
  21. wsrep_sst_method=rsync

  22. [client]
  23. socket=/var/lib/mysql/mysql.sock
  24. port=3306

119:
  1. [mysqld]

  2. # GENERAL
  3. datadir=/var/lib/mysql
  4. socket=/var/lib/mysql/mysql.sock
  5. pid_file=/var/lib/mysql/mysql.pid
  6. user=mysql
  7. port=3306
  8. character_set_server=utf8
  9. log_bin=mysqlbin
  10. innodb_buffer_pool_size=200M
  11. innodb_log_file_size=50M
  12. binlog_format=ROW
  13. innodb_autoinc_lock_mode=2
  14. server_id=000121
  15. log-error=/var/lib/mysql/mysql-error.log
  16. slow_query_log=1
  17. slow_query_log_file=/var/lib/mysql/mysql-slow.log





  18. wsrep_provider=/usr/lib64/libgalera_smm.so
  19. wsrep_cluster_address="gcomm://192.168.6.122:4567"
  20. wsrep_sst_auth="sstuser:sstuser"
  21. wsrep_sst_method=rsync

  22. [client]
  23. socket=/var/lib/mysql/mysql.sock
  24. port=3306



1.122關閉mysql,自動從叢集中被踢出
[root@localhost ~]# /etc/init.d/mysql stop
mysql> show status like 'wsrep%';
+----------------------------+----------------------------------------------------------+
| Variable_name              | Value                                                    |
+----------------------------+----------------------------------------------------------+
| wsrep_incoming_addresses   | 192.168.6.119:3306,192.168.6.121:3306 |



2.模擬此時叢集還有資料寫入,如建立一個bvoid資料庫



3.恢復122mysql,自動加入叢集

mysql> show status like 'wsrep%';
+----------------------------+----------------------------------------------------------+
| Variable_name              | Value                                                    |
+----------------------------+----------------------------------------------------------+

| wsrep_incoming_addresses   | 192.168.6.119:3306,192.168.6.122:3306,192.168.6.121:3306 |


mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bvoid              |  關閉階段產生的資料也會自動同步到122上,是透過rsync的方式同步的!










來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-1831964/,如需轉載,請註明出處,否則將追究法律責任。

相關文章