主备复制
主备复制语句用于在单机部署场景下实现高可用能力。
用户可通过配置主备角色,灵活管理主备复制服务的生命周期,包括启动、暂停、恢复和删除等操作。有关主备复制功能的更多信息,参见单机高可用性。
注意
当前版本暂不支持以下功能:
- 在三权分立模式下使用主备复制
- 对关系数据进行主备复制。
添加主库
添加主库语句用于为当前节点添加目标主库地址,或变更现有主库的 IP 地址。
执行语句的节点必须为普通节点或备库节点。如果节点为普通节点,添加主库地址后,系统将自动将其角色切换为备库。
所需权限
用户为 admin
角色的成员。默认情况下,root
用户属于 admin
角色。
语法格式

参数说明
参数 | 说明 |
---|---|
primary_url | 主库 URL,格式为符合 JDBC 连接协议方式的字符串。支持安全和非安全模式。安全模式下需采用证书认证方式,证书对应地址应为备库证书地址并且要保证主备证书配置一致。 |
语法示例
REPLICATE SET PRIMARY postgresql://root@localhost:26267/defaultdb?sslmode=verify-ca&sslcert=./certs/client.root.crt&sslkey=./certs/client.root.key&sslrootcert=./certs/ca.crt;
设置主备角色
该语句用于切换节点角色,适用于主备切换、主库非计划性宕机等场景。
所需权限
用户为 admin
角色的成员。默认情况下,root
用户属于 admin
角色。
语法格式

语法示例
将当前节点角色切换为普通节点,支持读写操作。
REPLICATE SET ROLE DEFAULT;
将当前节点角色切换为主库,支持读写操作。
REPLICATE SET ROLE PRIMARY;
将当前节点角色切换为备库,仅支持读操作。
REPLICATE SET ROLE SECONDARY;
设置主备复制服务
设置主备复制服务语句用于创建、启动、停止和删除主备复制服务:
- CREATE:创建主备复制服务,建立主备高可用关系。
- START:启动主备复制服务,适用于主备初始化或计划性停机后的恢复场景。
- STOP:停止主备复制服务,适用于计划性停机、主备切换等场景。停止复制后,主库写操作会被短暂阻塞,并被设置为只读,以确保主备数据一致。
- DROP:删除主备复制服务,停止数据同步并清除主备关系。
执行 CREATE
、START
和 STOP
操作的节点必须为备库。 执行 DROP
操作的节点必须为普通节点。
所需权限
用户为 admin
角色的成员。默认情况下,root
用户属于 admin
角色。
语法格式

语法示例
创建主备复制服务。
REPLICATE SET SERVICE CREATE;
启动主备复制。
REPLICATE SET SERVICE START;
停止主备复制。
REPLICATE SET SERVICE STOP;
删除主备复制。
REPLICATE SET SERVICE DROP;