Snowflake Postgres 只读副本¶
概述¶
Snowflake Postgres 支持创建 副本。副本是 主实例 的只读副本,会持续与主实例的变更保持同步。此同步是自动完成的,对用户透明。
副本对于读取扩展和卸载某些可能影响生产环境的工作负载(如报告工作负载)非常有用。副本必须具有与主实例相同的存储容量,但可以具有不同的计算能力规模。
副本预置在与其领导者实例相同的网络中,因此会继承其领导者实例的所有入口和出口网络规则。
Postgres 凭据以及副本上的所有其他数据都会被复制,并与领导者实例保持同步。
创建只读副本¶
要将 Postgres 实例创建为源实例的副本,请在 CREATE POSTGRES INSTANCE 命令中指定 AS REPLICA OF 子句:
CREATE POSTGRES INSTANCE <name>
AS REPLICA OF <orig_name>
[ COMPUTE_FAMILY = <compute_family> ]
[ POSTGRES_SETTINGS = '<json_string>' ]
[ COMMENT = '<string_literal>' ]
[ [ WITH ] TAG ( <tag_name> ... ) ]
对于命令参数:
AS REPLICA OF orig_name指定新副本实例要追随的主实例。
COMPUTE_FAMILY = compute_family指定 Snowflake Postgres 实例规格 表中实例规格的名称。
默认值:None。从源实例复制。
POSTGRES_SETTINGS = 'json_string'允许您以 JSON 格式,在实例上可选地设置 Postgres 配置参数。请参阅 Snowflake Postgres 服务器设置 获取可用的 Postgres 参数列表。
'{"component:name" = "value", ...}'默认值:None。从源实例复制。
COMMENT = 'string_literal'指定用户的注释。
默认:
NULL
TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )指定 标签 名称和标签字符串值。
标签值始终为字符串,标签值的最大字符数为 256。
有关在语句中指定标签的信息,请参阅 Tag quotas。
将返回一行,包含以下列:
status
host
CREATE REPLICA SQL 示例
创建实例 my_origin_instance 的副本 my_replica。
CREATE POSTGRES INSTANCE my_replica
AS REPLICA OF my_origin_instance;
为实例 my_origin_instance 创建一个使用不同计算系列的副本 my_replica。
CREATE POSTGRES INSTANCE my_replica
AS REPLICA OF my_origin_instance
COMPUTE_FAMILY = STANDARD_M;
创建副本所需的时间取决于其源实例的大小。副本在构建过程中将显示其当前状态。有关副本在构建时会经历的状态详细信息,请查看 实例状态 列表。
副本行为和限制¶
默认情况下,一个主实例最多只能支持 10 个副本 流式传输变更。要允许更多副本进行流式传输,请增加 Postgres
max_wal_senders设置(请参阅 Snowflake Postgres 服务器设置)。拥有副本的主 Postgres 实例无法被删除。在删除主实例之前,必须先移除其所有副本。
应用于主实例的 Postgres 服务器设置将复制到所有副本。
