tencent cloud

云数据库 PostgreSQL

动态与公告
产品动态
产品简介
产品概述
产品特性
产品优势
应用场景
信息安全说明
地域和可用区
产品功能列表
大版本生命周期说明
MSSQL 兼容版
产品计费
计费概述
实例类型与规格
购买方式
退费说明
欠费说明
备份空间收费说明
快速入门
创建 PostgreSQL 实例
连接 PostgreSQL 实例
管理 PostgreSQL 实例
数据导入
通过 DTS 迁移数据
内核能力介绍
内核版本概述
内核版本更新动态
查看内核版本
自研内核功能介绍
数据库审计
审计服务说明
开通审计服务
查看审计日志
修改审计服务
审计性能说明
用户指南
实例管理
升级实例
CPU 弹性扩容
只读实例
账号管理
数据库管理
参数管理
日志管理及分析
备份与恢复
数据迁移
插件管理
网络管理
访问管理
数据安全
租户及资源隔离
安全组
监控与告警
标签
AI 实践
使用 tencentdb_ai 插件调用大模型
使用 tencentdb_ai 插件构建 AI 应用
结合 Supabase 快速构建基于云数据库 PostgreSQL 的后端服务
实践教程
跨库访问
如何在 PostgreSQL 中自动创建分区
基于 pg_roaringbitmap 实现超大规模标签查找
一条 SQL 实现查询附近的人
如何配置云数据库 PostgreSQL 作为 GitLab 外部数据源
通过 cos_fdw 插件支持分级存储能力
通过 pgpool 实现读写分离
通过 auto_explain 插件实现慢 SQL 分析
使用 pglogical 进行逻辑复制
使用 Debezium 采集 PostgreSQL 数据
在 CVM 本地搭建 PostgreSQL 异地灾备环境
只读实例与只读组实践教程
如何使用云函数定时操作数据库
表膨胀处理
性能白皮书
测试方法
测试结果
API 文档
History
Introduction
API Category
Making API Requests
Instance APIs
Read-only Replica APIs
Backup and Recovery APIs
Parameter Management APIs
Security Group APIs
Performance Optimization APIs
Account APIs
Specification APIs
Network APIs
Data Types
Error Codes
常见问题
相关协议
Service Level Agreement
Terms of Service
词汇表
联系我们

修改数据复制方式

PDF
聚焦模式
字号
最后更新时间: 2025-05-21 15:58:05

支持的数据复制方式

数据库实例复制是指通过为服务器配置一个或多个备份数据库的方式来进行数据同步,将 PostgreSQL 的数据分布到多个系统上去。云数据库 PostgreSQL 支持两种数据复制方式:异步复制和半同步复制。

异步复制

腾讯云数据库 PostgreSQL 异步复制采用一主一备的架构。
应用发起数据更新(含 insert、update、delete 操作)请求,Master 在执行完更新操作后立即向应用程序返回响应,然后 Master 再向 Slave 复制数据。
数据更新过程中 Master 不需要等待 Slave 的响应,因此异步复制的数据库实例通常具有较高的性能(具体性能请参见 测试结果),且 Slave 不可用并不影响 Master 对外提供服务。但因数据并非实时同步到 Slave,而 Master 在 Slave 有延迟的情况下发生故障后发生切换则有较小概率会引起数据不一致。
说明:
腾讯云数据库 PostgreSQL 默认采用异步复制的数据复制方式。

半同步复制

腾讯云数据库 PostgreSQL 半同步复制采用一主一备的架构。
应用发起数据更新(含 insert、update、delete 操作)请求,Master 在执行完更新操作后立即向 Slave 复制数据,Slave 接收到数据并写到 WAL 中(无需执行) 后才向 Master 返回成功信息,Master 必须在接受到 Slave 的成功信息后再向应用程序返回响应。
仅在数据复制发生异常(Slave 节点不可用或者数据复制所用网络发生异常)的情况下,Master 会暂停(PostgreSQL 默认10秒左右)对应用的响应,系统将复制方式降为异步复制。当数据复制恢复正常,系统将复制方式恢复为半同步复制。

退化说明

系统根据指定条件自动将数据复制方式由半同步复制更改为异步复制的操作称为退化。退化包括两种情况:故障退化和延迟退化。

故障退化

如果当前 PostgreSQL 的主备数据复制方式为半同步,则在数据复制发生异常(Slave 节点不可用或者数据复制所用网络发生异常)时,Master 会暂停对应用的响应(云数据库 PostgreSQL 默认时10秒左右),并将主备复制方式降为异步,保证系统可用性。当高可用系统检测到数据复制恢复正常后,会将主备数据复制方式恢复为半同步复制。
注意:
故障退化为云数据库 PostgreSQL 高可用系统为默认行为,为保证系统高可用性,当前不支持自定义设置。

延迟退化

当您有特殊需要时,可以开启半同步复制下的延迟退化,开启延迟退化之后,云数据库 PostgreSQL 高可用系统会基于您设置的条件来判断主备复制延迟,超过延迟将触发半同步退化为异步。建议只对延迟极其敏感型业务开启该能力。
延迟退化的条件为主备同步的大小或者时间,可参考监控指标为备库日志落盘延迟 (Bytes)、备库日志落盘时间延迟(秒),具体可参考 主备延迟监控指标

故障切换说明

当实例的主备复制方式为异步复制或者半同步降级为异步复制时,Master 发生故障无法恢复时会触发主备切换。因数据并非实时同步到 Slave,发生切换后有较小概率会引起数据不一致。腾讯云数据库 PostgreSQL 开放了故障切换条件方便您可以进行灵活设置。当前系统默认为,同时满足主备同步延迟小于等于10240MB主备延迟小于等于10秒两个条件时允许切换。建议您有特殊业务需求时再进行设置。

修改数据复制方式

1. 登录 PostgreSQL 控制台,在实例列表,单击实例 ID操作列的管理,进入实例详情页面。
2. 在实例详情的可用性信息部分显示了详细的实例的可用性信息。
2.1 当数据复制方式为异步时,具体展示信息如下:
信息
说明
数据复制方式
主备之间数据同步方式,当前双机高可用(一主一从)架构支持异步复制半同步复制两种方式。
实例可用状态
显示实例当前可访问状态,当状态为正常时,正常接收用户请求,如果显示异常,则说明实例当前已经无法接收应用请求。
故障切换条件
当 Master 节点发生故障无法恢复时,需要自动进行故障切换,由 Slave 提供服务,此时系统定义了故障切换条件,条件为主备延迟大小和主备延迟时间,系统默认条件为小于等于10240MB和10秒。具体切换条件请参考 故障切换说明
主可用区
Master 节点所在的可用区。
备可用区
Slave 节点所在的可用区。
2.2 当数据复制方式为半同步时具体展示信息如下:
信息
说明
数据复制方式
主备之间数据同步方式,当前双机高可用(一主一从)架构支持异步复制半同步复制两种方式。
实例可用状态
显示实例当前可访问状态,当状态为正常时,正常接收用户请求,如果显示异常,则说明实例当前已经无法接收应用请求。
延迟退化条件
当实例数据复制方式为半同步复制时,在用户设定的条件范围外,系统会自动退化主备复制方式为异步,以保证系统的可用性。此退化条件为主备延迟大小或者延迟时间。其中,PostgreSQL 大版本为9的实例仅支持主备延迟大小的条件。具体请参考 退化说明
故障切换条件
当 Master 节点发生故障无法恢复时,需要自动进行故障切换,由 Slave 提供服务,此时系统定义了故障切换条件,条件为主备延迟大小或者时间。应用可基于特殊需求来修改切换条件。具体请参考 故障切换说明
主可用区
Master 节点所在的可用区。
备可用区
Slave 节点所在的可用区。
3. 单击修改,可修改当前实例的数据复制方式。
说明:
数据复制方式修改后立即生效,修改数据方式可能引起主备切换,主备切换时会有瞬间闪断,请确保应用有重连。


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈