日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MariaDB Galera Cluster环境搭建及高可用测试

發布時間:2025/5/22 编程问答 274 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MariaDB Galera Cluster环境搭建及高可用测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、服務器概況
Galera Cluster需要至少三個節點,在此次實驗過程中,三個節點IP地址:
192.168.56.101
192.168.56.102
192.168.56.103
OS為centos 7.2
服務器配置:
4G 內存,2核CPU,20G數據磁盤空間。

關閉防火墻:

service iptables stop systemctl stop firewalld chkconfig iptables off

關閉SELinux:

/etc/selinux/config中的SELINUX=disabled

修改主機名

vi /etc/hostname MariaDB01 MariaDB02 MariaDB03 systemctl restart systemd-hostnamed

三臺主機上加入/etc/hosts:

192.168.56.101 MariaDB01 192.168.56.102 MariaDB02 192.168.56.103 MariaDB03

?

二、MariaDB Galera Cluster軟件二進制安裝

? 官網下載:https://downloads.mariadb.org/ ??10.0.29

? 初始化節點1

su - mysql cd /app/mysql/ vi my.cnf --my.cnf [client] port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 socket = /tmp/mysql.sock character-set-server=utf8 skip-name-resolve basedir=/app/mysql datadir=/data/mysqldata back_log = 50 binlog_cache_size = 1M max_heap_table_size = 64M read_buffer_size = 2M read_rnd_buffer_size = 16M sort_buffer_size = 8M join_buffer_size = 8M thread_cache_size = 8 thread_concurrency = 8 ft_min_word_len = 4 binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 thread_stack = 240K transaction_isolation = REPEATABLE-READ tmp_table_size = 64M log-bin=/data/binlog/mysql-bin slow_query_log long_query_time = 2 log_error=/data/logs/error.log slow_query_log_file=/data/logs/slow.log server-id = 2 key_buffer_size = 32M bulk_insert_buffer_size = 64M myisam_sort_buffer_size = 128M myisam_max_sort_file_size = 10G myisam_repair_threads = 1 myisam_recover innodb_additional_mem_pool_size = 16M innodb_buffer_pool_size = 1G innodb_data_file_path = ibdata1:500M;ibdata2:16M:autoextend innodb_file_per_table = 1 innodb_support_xa = on sync_binlog = 0 table_definition_cache=65535 table_open_cache=4000 max_connections=3100 max_user_connections=3000 max_connect_errors=65536 max_allowed_packet=16M innodb_strict_mode = 1 innodb_open_files = 4000 innodb_file_format = Barracuda innodb_file_format_max = Barracuda innodb_flush_method = O_DIRECT expire_logs_days=3 innodb_data_home_dir = /data/mysqldata innodb_write_io_threads = 8 innodb_read_io_threads = 8 innodb_thread_concurrency = 16 innodb_flush_log_at_trx_commit = 1 innodb_log_buffer_size = 128M innodb_log_file_size = 256M innodb_log_files_in_group = 3 innodb_log_group_home_dir = /data/redolog innodb_max_dirty_pages_pct = 90 innodb_flush_method=O_DIRECT innodb_lock_wait_timeout = 120[galera] bind-address=0.0.0.0 wsrep_provider=none wsrep_node_address='192.168.56.101' wsrep_provider=/app/mariadb-galera-10.0.29-linux/lib/galera/libgalera_smm.so wsrep_provider_options='gcache.size=1999M' wsrep_cluster_name='galera_cluster' wsrep_cluster_address ='gcomm://192.168.56.101,192.168.56.102,192.168.56.103' wsrep_node_name='MariaDB01' wsrep_slave_threads=4 wsrep_certify_nonPK=1 wsrep_max_ws_rows=131072 wsrep_max_ws_size=1073741824 wsrep_debug=0 wsrep_convert_LOCK_to_trx=0 wsrep_retry_autocommit=1 wsrep_auto_increment_control=1 wsrep_replicate_myisam=1 wsrep_drupal_282555_workaround=0 wsrep_causal_reads=0 wsrep_sst_method=rsync wsrep_sst_auth= sst_user:dbpass[mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash [myisamchk] key_buffer_size = 512M sort_buffer_size = 512M read_buffer = 8M write_buffer = 8M [mysqlhotcopy] interactive-timeout [mysqld_safe] open-files-limit = 8192

  

./scripts/mysql_install_db --defaults-file=my.cnf ./bin/mysqld_safe --defaults-file=my.cnf --wsrep-new-cluster &

? ? ? 初始化節點2、3

./scripts/mysql_install_db --defaults-file=my.cnf ./bin/mysqld_safe --defaults-file=my.cnf &

? ? ?為集群創建帳號

mysql> DELETE FROM mysql.user WHERE user=''; mysql> GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'dbpass'; mysql> GRANT USAGE ON *.* to sst_user@'%' IDENTIFIED BY 'dbpass'; mysql> GRANT ALL PRIVILEGES on *.* to sst_user@'%'; mysql> FLUSH PRIVILEGES;

?

?三日常維護

? ? ? ?1. 集群啟動
? ? ? ? ?啟動第一個節點:service mysql start --wsrep-new-cluster
? ? ? ? ?啟動其它節點:server mysql start
? ? ? ? ?關閉節點:server mysql stop
? ? ? ?2. 通過查看4567端口確認集群是否啟動
? ? ? ? ?netstat -plantu | grep mysqld
? ? ? ?3. 查詢 galera插件是否已啟用

SHOW status LIKE 'wsrep_ready'; SHOW VARIABLES LIKE 'wsrep_cluster_address';

? ? ? ?4. 檢查集群是否正常

? ? ? ? ? 查看Galera集群狀態: mysql> show status like 'wsrep%';

(1)SHOW GLOBAL STATUS LIKE 'wsrep_cluster_state_uuid'; 集群中每個節點的值必須一致。 (2)SHOW GLOBAL STATUS LIKE 'wsrep_cluster_size'; 顯示集群的規模,此例應該顯示”3”。 (3)SHOW GLOBAL STATUS LIKE 'wsrep_cluster_status'; 顯示”Primary”為正常。 (4)SHOW GLOBAL STATUS LIKE 'wsrep_ready'; 顯示”ON”為正常。 (5) SHOW GLOBAL STATUS LIKE 'wsrep_connected'; 顯示”ON”為正常。 (6) SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment'; 顯示” Joined”為正常。

? ? ? ? cluster完整性檢測

? ? ? ? status 變量:
? ? ? ? wsrep_cluster_state_uuid: cluster中的所有node的該變量的值必須一樣, 不一樣表示node沒有連接到cluster。
? ? ? ? wsrep_cluster_conf_id: 次變量用來表示node是否在它相應的cluster中。cluster中所有node的該變量值應該一樣, 不一樣則表示nodes被分隔開了, node恢復的時候該變量也會恢復。
? ? ? ? wsrep_cluster_size: 表示cluster中有多少node節點, 等于預期的數量則表示所有node連接到了cluster。
? ? ? ? wsrep_cluster_status: 正常情況下值為Primary, 如果不為Primay,則該node當前不能操作(歸咎于多成員關系的改變和quorum的缺失), 同時也可能滿足split-brain的條件。
? ? ? ? 如果cluster中沒有node 連接上(connected) PC(就是所有node屬于同一部分,但是node都是non-primary狀態),

?

? ? ? ? wsrep_sst_method的參數說明:

Method Speed Blocks Donor? Available on Live Node Type Requires root access to database server? mysqldump slow yes yes logical donor and joiner rsync fastest yes no physical none xtrabackup fast briefly no physical donor only

? ? ? rsync在數據同步(SST和IST)的時候,速度最快,但是會鎖住提供數據的節點,xtrabackup只會短暫的鎖住節點。

?

?四、高可用測試

? ? ?1、節點數據同步寫入

? ? ?2、故障節點修復后數據自行修復

附錄

MariaDB Galera Cluste安裝報錯處理

170525 23:19:48 [ERROR] WSREP: wsrep_load(): dlopen(): libssl.so.6: cannot open shared object file: No such file or directory 170525 23:19:48 [ERROR] WSREP: wsrep_load(/app/mariadb-galera-10.0.29-linux/lib/galera/libgalera_smm.so) failed: Invalid argument (22). Reverting to no provider. cd /app/mysql/lib/galera/ ldd ./libgalera_smm.so cd /usr/lib64 ln -s libcrypto.so.1.0.1e libcrypto.so.6 ln -s libssl.so.1.0.1e libssl.so.6

?

170526 0:04:07 [Warning] WSREP: Gap in state sequence. Need state transfer. 170526 0:04:07 [Note] WSREP: Running: 'wsrep_sst_rsync --role 'joiner' --address '192.168.56.103' --datadir '/data/mysqldata/' --defaults-file '/app/mariadb-galera-10.0.29-linux/my.cnf' --defaults-group-suffix '' --parent '2832' --binlog '/data/binlog/mysql-bin' ' which: no rsync in (/usr/sbin:/sbin:/app/mariadb-galera-10.0.29-linux//bin:/app/mysql/bin:/bin:/usr/bin:/usr/local/bin:/usr/sbin) 170526 0:04:07 [ERROR] WSREP: Failed to read 'ready <addr>' from: wsrep_sst_rsync --role 'joiner' --address '192.168.56.103' --datadir '/data/mysqldata/' --defaults-file '/app/mariadb-galera-10.0.29-linux/my.cnf' --defaults-group-suffix '' --parent '2832' --binlog '/data/binlog/mysql-bin' Read: ''rsync' not found in PATH' 170526 0:04:07 [ERROR] WSREP: Process completed with error: wsrep_sst_rsync --role 'joiner' --address '192.168.56.103' --datadir '/data/mysqldata/' --defaults-file '/app/mariadb-galera-10.0.29-linux/my.cnf' --defaults-group-suffix '' --parent '2832' --binlog '/data/binlog/mysql-bin' : 2 (No such file or directory) 170526 0:04:07 [ERROR] WSREP: Failed to prepare for 'rsync' SST. Unrecoverable. 170526 0:04:07 [ERROR] Aborting yum install rsync.x86_64

?

which: no lsof in (/usr/sbin:/sbin:/app/mariadb-galera-10.0.29-linux//bin:/app/mysql/bin:/bin:/usr/bin:/usr/local/bin:/usr/sbin:/app/xtrabackup/percona-xtrabackup/bin) 170526 10:13:28 [ERROR] WSREP: Failed to read 'ready <addr>' from: wsrep_sst_rsync --role 'joiner' --address '192.168.56.103' --datadir '/data/mysqldata/' --defaults-file '/app/mariadb-galera-10.0.29-linux/my.cnf' --defaults-group-suffix '' --parent '2821' --binlog '/data/binlog/mysql-bin' Read: ''lsof' not found in PATH' 170526 10:13:28 [ERROR] WSREP: Process completed with error: wsrep_sst_rsync --role 'joiner' --address '192.168.56.103' --datadir '/data/mysqldata/' --defaults-file '/app/mariadb-galera-10.0.29-linux/my.cnf' --defaults-group-suffix '' --parent '2821' --binlog '/data/binlog/mysql-bin' : 2 (No such file or directory) 170526 10:13:28 [ERROR] WSREP: Failed to prepare for 'rsync' SST. Unrecoverable. 170526 10:13:28 [ERROR] Aborting yum install lsof

?

轉載于:https://www.cnblogs.com/vadim/p/6930697.html

總結

以上是生活随笔為你收集整理的MariaDB Galera Cluster环境搭建及高可用测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。