MariaDB 提供了多种复制方式,以满足不同场景的需求:
1. 主从复制(Master-Slave Replication)
异步复制:
- 主库执行事务后立即返回,不等待从库确认
- 性能最好,但可能存在数据延迟
- 适用于:读多写少、对数据一致性要求不高的场景
半同步复制:
- 主库等待至少一个从库确认接收事务后才返回
- 平衡了性能和数据一致性
- 适用于:需要较高数据一致性的场景
2. 组复制(Group Replication)
- 基于 Paxos 算法的多主复制
- 支持自动故障转移
- 提供强一致性保证
- 适用于:高可用性、高可靠性要求的生产环境
3. Galera 集群
- 同步多主复制
- 所有节点都可读写
- 无数据丢失风险
- 适用于:需要高可用性和读写负载均衡的场景
4. GTID 复制
- 使用全局事务 ID 标识事务
- 简化故障恢复和主从切换
- 便于管理复制拓扑
- 适用于:复杂的复制环境
配置示例
sql-- 主库配置 server-id = 1 log-bin = mysql-bin binlog-format = ROW gtid-mode = ON enforce-gtid-consistency = ON -- 从库配置 server-id = 2 relay-log = relay-bin read-only = 1
监控复制状态
sql-- 查看主库状态 SHOW MASTER STATUS; -- 查看从库状态 SHOW SLAVE STATUS;
选择复制方式时需要考虑:性能需求、数据一致性要求、故障恢复能力、运维复杂度等因素。