galera-mariadb集群
环境:系统centos7.3,全初始化环境
IP:192.168.2.111,192.168.2.106,192.168.2.107
MariaDB 10.1及更高版本不再单独使用MariaDB Galera Cluster版本。只需下载MariaDB(10.1或更高版本)并正常配置您的群集。(官网原话)
所以我就直接安装10.1版本了,如果直接安装将会默认安装mariadb 5.5,需要安装mariadb10需要另外配置MariaDB.repo,这个是国内的yum源:
[code]# vim /etc/yum.repos.d/mariadb.repo [mariadb] name = MariaDB baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.1/centos7-amd64 gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck=1
[code]# yum install -y mariadb-server # systemctl restart mariadb # mysql_secure_installation
回车,密码,确认密码,回车到直接结束,mariadb就装好了。
[code]# mysql -uroot -p123 MariaDB [(none)]> select version();
+-----------------+
| version() |
+-----------------+
| 10.1.40-MariaDB |
+-----------------+
1 row in set (0.00 sec)
版本为10.1.40
三台主机同样安装mariadb。
关闭防火墙selinux(临时)
[code]# systemctl stop firewalld # setenforce 0
编辑配置文件并启动服务
[code]# vim /etc/my.cnf
[code][mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock skip_name_resolve=ON relay_log=mysql-relaylog relay_log_index=mysql-relaylog relay_log_purge=OFF slow_query_log=ON server-id=10 innodb_file_per_table=ON binlog_format=ROW log_bin=mysql-binlog log_slave_updates=ON [galera] # Mandatory settings wsrep_on=ON wsrep_cluster_name=ark wsrep_provider=/lib64/galera/libgalera_smm.so wsrep_cluster_address="gcomm://" binlog_format=row default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 innodb_doublewrite=1
"gcomm://" 是特殊的地址,仅仅是galera cluster初始化启动时候使用。如果集群启动以后,我们关闭了第一个节点,那么再次启动的时候必须先修改"gcomm://"为其他节点的集群地址,首次作为发起人则此处为空,不向任何人同步数据。
[code]# galera_new_cluster # systemctl restart mysqld # ss -tnlp |egrep '3306|4567'
重启mariadb,并查看端口是否起来。
进入mysql查询变量的状态:
[code]mysql>show status like 'wsrep%';
如果wsrep_connected=ON且wsrep_ready=ON则说明节点成功接入集群。
接下来将配置文件cp给另外两台主机
[code]# scp /etc/my.cnf 192.168.2.107:/etc/ # scp /etc/my.cnf 192.168.2.111:/etc/
在另外两台主机上修改server_id和wsrep_cluster_address='gcomm:其他集群主机的名字'
两台主机都是修改这两个地方即可,server-id要唯一。
然后重新启动mariadb
[code]# systemctl restart mariadb
进入mysql查询变量的状态:
[code]mysql>show status like 'wsrep%';
任意在集群中一台主机创个库测试一下是否同步
至此,galera-mariadb集群完成,再添加多的集群机器也是按照同样的步骤。
监测状态说明
1. 集群完整性检查:
wsrep_cluster_state_uuid:在集群所有节点的值应该是相同的,有不同值的节点,说明其没有连接入集群.
wsrep_cluster_conf_id:正常情况下所有节点上该值是一样的.如果值不同,说明该节点被临时”分区”了.当节点之间网络连接恢复的时候应该会恢复一样的值.
wsrep_cluster_size:如果这个值跟预期的节点数一致,则所有的集群节点已经连接.
wsrep_cluster_status:集群组成的状态.如果不为”Primary”,说明出现”分区”或是”split-brain”状况.
2. 节点状态检查:
wsrep_ready: 该值为ON,则说明可以接受SQL负载.如果为Off,则需要检查wsrep_connected.
wsrep_connected: 如果该值为Off,且wsrep_ready的值也为Off,则说明该节点没有连接到集群.(可能是wsrep_cluster_address或wsrep_cluster_name等配置错造成的.具体错误需要查看错误日志)
wsrep_local_state_comment:如果wsrep_connected为On,但wsrep_ready为OFF,则可以从该项查看原因.
3. 复制健康检查:
wsrep_flow_control_paused:表示复制停止了多长时间.即表明集群因为Slave延迟而慢的程度.值为0~1,越靠近0越好,值为1表示复制完全停止.可优化wsrep_slave_threads的值来改善.
wsrep_cert_deps_distance:有多少事务可以并行应用处理.wsrep_slave_threads设置的值不应该高出该值太多.
wsrep_flow_control_sent:表示该节点已经停止复制了多少次.
wsrep_local_recv_queue_avg:表示slave事务队列的平均长度.slave瓶颈的预兆.
报错解决:
1.数据库无法启动情况下把/var/lib/mysql下的几个文件:grastate.dat gvwstate.dat galera.cache mysql.sock统统删掉再重启
2.如果第二台数据库报uuid错误,看错误信息,将错误信息()里的uuid改入grastate.dat文件再重启,[Warning] WSREP: Failed to prepare for incremental state transfer: Local state UUID (00000000-0000-0000-0000-000000000000) does not match group state UUID (19ff9f3e-7af5-11e9-9ee5-528eb3fbf780):
- MariaDB集群Galera Cluster的研究与测试
- MariaDB集群Galera Cluster的探索
- Linux下MySQL/MariaDB Galera集群搭建过程【转】
- Mariadb Galera 集群选用
- [ Openstack ] Openstack-Mitaka 高可用之 Mariadb-Galera集群部署
- 【Mariadb】centos7搭建mariadb Galera集群--v1.0(成功)
- mariadb galera集群配置
- CentOS7环境下部署Mariadb-Galera集群
- 实战MySQL集群,试用CentOS 6下的MariaDB-Galera集成版
- What is MariaDB Galera Cluster?( 什么是 MariaDB Galera 集群)
- mariadb-galera集群架构
- mariadb galera集群配置
- centos mariadb galera 多主同步 haprox keepalive 集群热备
- MariaDB Galera Cluster 部署(如何快速部署MariaDB集群)
- 实战mariadb-galera集群架构
- mariadb galera集群配置
- MariaDB Galera Cluster 部署(mysql 集群部署)
- MariaDB Galera Cluster 部署(如何快速部署 MariaDB 集群)
- centos7下部署mariadb+galera数据库高可用集群
- MariaDB Galera Cluster 部署(如何快速部署 MariaDB 集群)