0.双节点集群,IP分别为:
HostA :172.18.48.3
HostB : 172.18.48.4
本地进行/etc/hosts解析。
1.添加源
deb http://mirrors.fe.up.pt/pub/mariadb/repo/5.5/debian wheezy main
deb-src http://mirrors.fe.up.pt/pub/mariadb/repo/5.5/debian wheezy main
apt-get update
2.安装mariadb和galera包
# apt-get install -y rsync galera mariadb-galera-server
3.修改配置文件
# emacs /etc/mysql/my.cnf
bind-address = 0.0.0.0
skip-name-resolve
4.配置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
##集群节点IP,主主模式,相互镜像,可以添加多个IP地址
---------------------------------------------------------
4.galera01和galera02关闭mysql
HostA: service mysql stop
HostB: service mysql stop
5.启动集群,第一个启动的节点要加上集群初始化命令,相当于主节点
HostA: service mysql start --wsrep-new-cluster
HostB: service mysql start
6.检查集群规模
HostA: mysql -u root -e 'SELECT VARIABLE_VALUE as "cluster size" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size"' -p
+————–+
| cluster size |
+————–+
| 2 |
+————–+
7.在HostA上创建数据库,并授权允许远程访问
mysql>create database nova;
mysql>GRANT ALL ON nova.* TO 'nova'@'%' IDENTIFIED BY 'password';
8.galera的弹性和容灾
添加新节点时候直接重启服务即可,galera节点必须有一个主节点,即执行如下语句的节点:
service mysql start --wsrep-new-cluster
9.galera的使用注意:
galera集群内部节点使用双主模式,每个节点都能对外提供服务,数据在故障节点恢复后能够自动同步数据,无需人工干预,
同时为了保证对外服务高可用,可以使用heartbeat或者haproxy+keepalive的方式来实现HA.
10.出现错误时解决
# 如果我们在主主中关闭某台服务器时出现以下错误
[FAIL] Stopping MariaDB database server: mysqld failed!
ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)
此原因是因为在/etc/mysql/debian.cnf中配置有这个用户debian-sys-maint
我们只需要在主服器上复制/etc/mysql/debian.cnf到其它服务器中,保持文件一致即可
# scp /etc/mysql/debian.cnf 172.18.48.4:/etc/mysql/
11、Maridb Crash时的数据恢复:
请参考:https://www.percona.com/blog/2014/09/01/galera-replication-how-to-recover-a-pxc-cluster/?utm_source=tuicool
HostA :172.18.48.3
HostB : 172.18.48.4
本地进行/etc/hosts解析。
1.添加源
deb http://mirrors.fe.up.pt/pub/mariadb/repo/5.5/debian wheezy main
deb-src http://mirrors.fe.up.pt/pub/mariadb/repo/5.5/debian wheezy main
apt-get update
2.安装mariadb和galera包
# apt-get install -y rsync galera mariadb-galera-server
3.修改配置文件
# emacs /etc/mysql/my.cnf
bind-address = 0.0.0.0
skip-name-resolve
4.配置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
##集群节点IP,主主模式,相互镜像,可以添加多个IP地址
---------------------------------------------------------
4.galera01和galera02关闭mysql
HostA: service mysql stop
HostB: service mysql stop
5.启动集群,第一个启动的节点要加上集群初始化命令,相当于主节点
HostA: service mysql start --wsrep-new-cluster
HostB: service mysql start
6.检查集群规模
HostA: mysql -u root -e 'SELECT VARIABLE_VALUE as "cluster size" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size"' -p
+————–+
| cluster size |
+————–+
| 2 |
+————–+
7.在HostA上创建数据库,并授权允许远程访问
mysql>create database nova;
mysql>GRANT ALL ON nova.* TO 'nova'@'%' IDENTIFIED BY 'password';
8.galera的弹性和容灾
添加新节点时候直接重启服务即可,galera节点必须有一个主节点,即执行如下语句的节点:
service mysql start --wsrep-new-cluster
9.galera的使用注意:
galera集群内部节点使用双主模式,每个节点都能对外提供服务,数据在故障节点恢复后能够自动同步数据,无需人工干预,
同时为了保证对外服务高可用,可以使用heartbeat或者haproxy+keepalive的方式来实现HA.
10.出现错误时解决
# 如果我们在主主中关闭某台服务器时出现以下错误
[FAIL] Stopping MariaDB database server: mysqld failed!
ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)
此原因是因为在/etc/mysql/debian.cnf中配置有这个用户debian-sys-maint
我们只需要在主服器上复制/etc/mysql/debian.cnf到其它服务器中,保持文件一致即可
# scp /etc/mysql/debian.cnf 172.18.48.4:/etc/mysql/
11、Maridb Crash时的数据恢复:
请参考:https://www.percona.com/blog/2014/09/01/galera-replication-how-to-recover-a-pxc-cluster/?utm_source=tuicool