支持的数据复制方式
数据库实例复制是指通过为服务器配置一个或多个备份数据库的方式来进行数据同步,将 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 高可用系统会基于您设置的条件来判断主备复制延迟,超过延迟将触发半同步退化为异步。建议只对延迟极其敏感型业务开启该能力。
故障切换说明
当实例的主备复制方式为异步复制或者半同步降级为异步复制时,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. 单击修改,可修改当前实例的数据复制方式。
说明:
数据复制方式修改后立即生效,修改数据方式可能引起主备切换,主备切换时会有瞬间闪断,请确保应用有重连。