MariaDB GTID Replication Step-by-Step: Master & Slave Setup

需积分: 0 0 下载量 127 浏览量 更新于2024-08-04 收藏 19KB DOCX 举报
在MariaDB中构建GTID(全局事务标识符)复制是一项关键任务,它允许数据库在多个服务器之间实现更可靠、高效的实时数据同步。以下步骤详细介绍了如何在MariaDB环境中设置GTID复制。 首先,创建一个只用于复制的用户,例如'repl',并分配必要的权限: 1. 在MariaDB的主服务器上,使用以下命令创建用户并授予复制权限: ```sql CREATE USER 'repl'@'%' IDENTIFIED BY 'yanagi'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES; ``` 接着,编辑主服务器的`my.ini`配置文件,确保设置正确的参数: - 设置不同的server_id以区分主从服务器:`server-id=1` - 指定二进制日志文件的名称和格式:`log-bin=master-bin`, `binlog-format=ROW` - 启用记录从库更新的日志:`log-slave-updates` 重启MariaDB服务使配置生效。 在从库(slave)上进行相应的设置: - 保持不同的server_id:`server-id=2` - 将状态设置为只读:`read_only` - 指定从库的二进制日志文件:`log-bin=slave-bin` - 配置GTID接收器:`MASTER_USE_GTID=slave_pos` 获取主服务器的最新二进制日志信息: - 使用`SHOW MASTER STATUS`查看当前日志文件名和位置,并记录下来。 检查主服务器的GTID状态: - 使用`SELECT BINLOG_GTID_POS('xxxxx-bin.000001', xxx)`查询特定日志文件中的GTID位置。 将主服务器的数据复制到从库: - 进行数据库备份或直接导入数据。 在从库上设置GTID: - 设置全局变量`gtid_slave_pos`,如`SET GLOBAL gtid_slave_pos='4000-4000-37644177';` 最后,执行`CHANGE MASTER`命令并启动从库: - 配置`CHANGE MASTER TO`,提供主服务器的信息(IP、端口、用户和密码,以及刚设置的GTID位置): ```sql CHANGE MASTER TO MASTER_HOST='192.168.0.1', MASTER_PORT=3306, MASTER_USER='repl', MASTER_PASSWORD='[repl用户的密码]', MASTER_USE_GTID=slave_pos; ``` - 启动从库复制进程:`START SLAVE;` 监控从库状态,确保以下指标正常: - `Slave_IO_State`: 应显示"Waiting for master to send event" - `Slave_IO_Running`: 显示"Yes" - `Slave_SQL_Running`: 显示"Yes" 通过以上步骤,你已经成功配置了MariaDB的GTID复制。这将确保在高可用性和容灾场景下,数据能够实时且一致地在主从服务器之间进行传输。请注意,在实际操作时,务必根据你的具体环境调整配置和参数。