Galera
Galera 是用于 MySQL/InnoDB 数据库的同步多主集群。
注意: 目前仅 InnoDB 表支持复制。
安装
Galera 集群由两个组件组成:Galera 插件本身和一个使用 wsrep API 连接的 MySQL 服务器修补版本。
安装 galera 软件包。你还需要 rsync 和 lsof 软件包用于 rsync 方法。
启动/启用 mysqld.service
守护进程。
配置
你需要配置集群。
在每个节点上编辑 /etc/my.cnf.d/server.cnf
并更新 wsrep_cluster_address
变量,使其包含集群中所有节点的列表
/etc/my.cnf.d/server.cnf
wsrep_cluster_address="gcomm://192.168.1.4,192.168.1.5,192.168.1.6"
更改变量 wsrep_node_address
和 wsrep_node_name
为每个节点的 IP 地址/主机名和名称(这不需要是唯一的),例如
/etc/my.cnf.d/server.cnf
wsrep_node_address='192.168.1.4' wsrep_node_name='node1'
wsrep_cluster_name
变量应包含所有集群节点相同的名称
/etc/my.cnf.d/server.cnf
wsrep_cluster_name='my_galera_cluster'
此外,将 wsrep_sst_method
设置为所需的状态快照传输方法,首选方法是 rsync。
/etc/my.cnf.d/server.cnf
wsrep_sst_method=rsync
确保您还设置了以下选项
/etc/my.cnf.d/server.cnf
wsrep_on=ON wsrep_provider=/usr/lib/galera/libgalera_smm.so default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 binlog_format=row
完成 /etc/my.cnf.d/server.cnf
后,在第一个节点上引导 mysqld 服务(仅在第一个节点上)
# galera_new_cluster
这将引导集群。使用 MySQL 的命令行工具以 root 身份登录到您的 MySQL 服务器
$ mysql -p -u root
检查集群的状态,这将显示与 wsrep 相关的状态变量
mysql> SHOW STATUS LIKE 'wsrep_%';
| wsrep_local_state | 4 | | wsrep_local_state_comment | Synced | | wsrep_cert_index_size | 0 | | wsrep_causal_reads | 0 | | wsrep_incoming_addresses | 192.168.1.4:3306 | | wsrep_cluster_conf_id | 1 | | wsrep_cluster_size | 1 | | wsrep_cluster_state_uuid | 6cd96745-2ea8-11e3-bbc8-d666651b51ef | | wsrep_cluster_status | Primary | | wsrep_connected | ON | | wsrep_local_index | 0 | | wsrep_provider_name | Galera |
如果您使用 xtrabackup 或 mysqldump SST 方法,您将需要为 sst 传输创建一个 MySQL 用户。
配置第一个节点后,您应该能够启动 mysqld.service
。