我正在尝试使用主从复制配置 MariaDB (10.1.13) 的 DR 实例。
我能够通过在主服务器上锁定表、备份数据库、在从服务器上恢复数据库并在从服务器上运行它来建立与 GTID 的主从关系:
CHANGE MASTER TO MASTER_HOST='master.domain.com', MASTER_USER='replication_user', MASTER_PASSWORD='replication_password', MASTER_PORT=3306, MASTER_LOG_FILE='masterlogfile', MASTER_CONNECT_RETRY=10, MASTER_USE_GTID = slave_pos;
我能够确认复制正在正常运行。但是,我正在努力弄清楚将当前从站转换为主站并将主站转换为从站(反转复制流程)的过程。
当我在 ex-master 上运行以下命令时,我在SHOW SLAVE STATUS \G;
( Slave_SQL_Running
isNo
并且错误是Error 'Operation CREATE USER failed for 'replication_user'@'%'' on query. Default database: ''. Query: 'CREATE USER 'replication_user'@'%' IDENTIFIED BY 'somepassword''
,我不确定为什么它在运行下面的查询后尝试创建此用户) 中出现错误:
CHANGE MASTER TO MASTER_HOST='slave.domain.com', MASTER_USER='replication_user', MASTER_PASSWORD='replication_password', MASTER_PORT=3306, MASTER_LOG_FILE='slavelogfile', MASTER_CONNECT_RETRY=10, MASTER_USE_GTID = slave_pos;
我有一种感觉,我做错了什么,我的场景不受支持。如果不支持,那么为 MariaDB 实现异步复制(MS SQL 中 AlwaysOn 的模拟)以支持故障转移到从属设备和故障回复的最佳方式是什么?
我选择了主-主复制。为了防止连接到主服务器的“被动”副本,我使用了一个脚本来删除所有用户(DBA 和复制用户除外),以确保防止写入“被动”副本。
作为故障转移过程的一部分,用户将被转移到“被动”并从“主动”中删除。
这基本上实现了我想要的。