PostgreSQL 流式复制 - Table 已在主服务器上删除
PostgreSQL Streaming Replication - Table Dropped on Primary server
在 PostgreSQL 11 上的主备流式复制中,如果从主服务器删除 table,但是相同的 table 正在被 user/app 访问待命(仅供阅读)会发生什么?
备用服务器是否会等待接收并执行WAL并向用户抛出table已不存在的错误或是否会输出所需的结果集?
请告诉我
谢谢
这会导致锁复制冲突。
AccessExclusive
个锁(此类锁被 DROP TABLE
占用)被复制到备用服务器。当备用数据库想要重放锁时,它将检测到与使用 table 的 运行 查询的冲突。然后它最多会延迟复制 max_standby_streaming_delay
,如果到那时还没有完成读取事务,它将被取消,以便复制可以继续进行。
详情见my blog。
在 PostgreSQL 11 上的主备流式复制中,如果从主服务器删除 table,但是相同的 table 正在被 user/app 访问待命(仅供阅读)会发生什么?
备用服务器是否会等待接收并执行WAL并向用户抛出table已不存在的错误或是否会输出所需的结果集?
请告诉我
谢谢
这会导致锁复制冲突。
AccessExclusive
个锁(此类锁被 DROP TABLE
占用)被复制到备用服务器。当备用数据库想要重放锁时,它将检测到与使用 table 的 运行 查询的冲突。然后它最多会延迟复制 max_standby_streaming_delay
,如果到那时还没有完成读取事务,它将被取消,以便复制可以继续进行。
详情见my blog。