高可用的mysql galera集羣部署

一:集羣機器介紹 四臺機器: 1.balance節點安裝haproxy和keepalived 機器名: balance01 172.18.48.1 balance02 172.18.48.2 2.galera節點安裝mysql數據庫和galera 機器名: galera01 172.18.48.3 galera02 172.18.48.4 操做系統:ubuntu14.04 server64python

注:每臺機器/etc/hosts上要寫上涉及到的全部對應的ip和主機名mysql

二:balance節點安裝redis

balance節點安裝配置haproxy和keepalivedsql

1./etc/sysctl.conf添加 vim /etc/sysctl.conf net.ipv4.ip_nonlocal_bind=1數據庫

2.加載sysctl.conf sysctl -pubuntu

3.安裝haproxy和keepalived apt-get install -y keepalived haproxyvim

4.建立/var/lib/haproxy mkdir /var/lib/haproxysocket

5.把/var/lib/haproxy權限改成root全部 chown root:root /var/lib/haproxy/tcp

6.vim /etc/keepalived/keepalived.conf balance01添加以下: global_defs { notification_email { root@[YOUR_DOMAIN_NAME] } notification_email_from keepalived@[YOUR_DOMAIN_NAME] smtp_server localhost smtp_connect_timeout 30 router_id balance01 } vrrp_script haproxy { script "killall -0 haproxy" interval 2 weight 2 } vrrp_instance 50 { virtual_router_id 50 advert_int 1 priority 101 state MASTER interface eth0 virtual_ipaddress { 172.18.48.20 dev eth0 } track_script { haproxy } }ide

balance02以下: global_defs { notification_email { root@[YOUR_DOMAIN_NAME] } notification_email_from keepalived@[YOUR_DOMAIN_NAME] smtp_server localhost smtp_connect_timeout 30 router_id balance02 } vrrp_script haproxy { script "killall -0 haproxy" interval 2 weight 2 } vrrp_instance 50 { virtual_router_id 50 advert_int 1 priority 101 state MASTER interface eth0 virtual_ipaddress { 172.18.48.20 dev eth0 } track_script { haproxy } }

7.vim /etc/haproxy/haproxy.cfg

balance01上添加以下: global chroot /var/lib/haproxy daemon group haproxy log 172.18.48.1 local0 maxconn 4000 pidfile /var/run/haproxy.pid stats socket /var/lib/haproxy/stats user haproxy defaults log global maxconn 8000 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout check 10s listen mysql_cluster bind 172.18.48.20:3306 mode tcp balance roundrobin option mysql-check user root option tcpka server galera01 172.18.48.3:3306 server galera02 172.18.48.4:3306

balance02添加以下: global chroot /var/lib/haproxy daemon group haproxy log 172.18.48.2 local0 maxconn 4000 pidfile /var/run/haproxy.pid stats socket /var/lib/haproxy/stats user haproxy defaults log global maxconn 8000 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout check 10s listen mysql_cluster bind 172.18.48.20:3306 mode tcp balance roundrobin option mysql-check user root option tcpka server galera01 172.18.48.3:3306 server galera02 172.18.48.4:3306 8.balance節點修改/etc/default/haproxy ENABLED=1

9.啓動keepalived和haproxy service keepalived restart service haproxy restart

三:galera節點安裝

(一)安裝MariaDB,全部galera節點

1.安裝軟件源 sudo apt-get install software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db sudo add-apt-repository 'deb http://mirrors.hustunique.com/mariadb/repo/10.0/ubuntu trusty main'

2.安裝MariaDB sudo apt-get update sudo apt-get install mariadb-server

(二)安裝galera cluster,全部galera節點

1.安裝軟件安裝源 apt-get install python-software-properties apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db add-apt-repository 'deb http://mirror3.layerjet.com/mariadb/repo/5.5/ubuntu precise main' apt-get update

2.安裝galera包 DEBIAN_FRONTEND=noninteractive apt-get install -y rsync galera mariadb-galera-server 3.配置galera cluster /etc/mysql/conf.d/galera.cnf [mysqld] mysql settings binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 query_cache_size=0 query_cache_type=0 bind-address=0.0.0.0 galera settings wsrep_provider=/usr/lib/galera/libgalera_smm.so wsrep_cluster_name="my_wsrep_cluster" wsrep_cluster_address="gcomm://172.18.48.3,172.18.48.4" wsrep_sst_method=rsync 4.galera01和galera02關閉mysql galera01 service mysql stop galera02 service mysql stop 5.啓動集羣,第一個啓動的節點要加上集羣初始化命令,至關於主節點 galera01 service mysql start --wsrep-new-cluster galera02 service mysql start 6.檢查集羣規模 galera01 mysql -u root -e 'SELECT VARIABLE_VALUE as "cluster size" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size"' +--------------+ | cluster size | +--------------+ | 2 | +--------------+ 7.在galera上建立數據庫,並受權容許遠程訪問 mysql>create database nova; mysql>GRANT ALL ON nova.* TO 'nova'@'%' IDENTIFIED BY 'password'; 四:balance節點和galera的彈性和容災 添加新節點時候直接重啓服務便可,galera節點必須有一個主節點,即執行以下語句的節點: service mysql start --wsrep-new-cluster

相關文章
相關標籤/搜索