ALTER POSTGRES INSTANCE¶
修改现有 Snowflake Postgres 实例 属性。
- 另请参阅:
CREATE POSTGRES INSTANCE, DESCRIBE POSTGRES INSTANCE, DROP POSTGRES INSTANCE, SHOW POSTGRES INSTANCES
语法¶
参数¶
name指定要更改的 Postgres 实例的标识符。
如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。
有关更多信息,请参阅 标识符要求。
RENAME TO new_name将 Postgres 实例的名称更改为指定的新名称。新的标识符必须在账户中是唯一的。
有关标识符的更多详细信息,请参阅 标识符要求。
RESET ACCESS FOR { 'snowflake_admin' | 'application' }重新生成
snowflake_admin或application角色的凭据。返回包含以下列的一行:password
有关更多信息,请参阅 Snowflake Postgres 角色。
SET ...为 Postgres 实例设置一个或多个指定属性:
NETWORK_POLICY = 'network_policy'指定用于实例的 网络策略。策略更改可能需要最多 2 分钟才能生效。
要指定此参数,您必须已获得网络策略对象上的 USAGE 权限。
AUTHENTICATION_AUTHORITY = { POSTGRES | POSTGRES_OR_SNOWFLAKE }Change the authentication method for the instance. POSTGRES indicates that only Postgres user passwords can be used. POSTGRES_OR_SNOWFLAKE also allows the use of short-lived access token passwords. See Snowflake Postgres 的 Snowflake 令牌身份验证 for more details.
COMMENT = 'string_literal'添加或覆盖 Postgres 实例的现有注释。
HIGH_AVAILABILITY = { TRUE | FALSE }对于该实例,启用或禁用 高可用性。作为异步操作执行。运行 DESCRIBE POSTGRES INSTANCE 命令和监控跟踪进度的
operations字段。仅当实例位于 READY 状态,并且没有其他操作正在运行,才能发起高可用性变更。
备注
突发型实例大小(BURST_XS、BURST_S、BURST_M)不支持高可用性。要启用 HA,您必须首先更改为 STANDARD 或 HIGHMEM 计算系列。
COMPUTE_FAMILY = 'compute_family'对于 Postgres 实例,指定新的 实例大小。
STORAGE_SIZE_GB = storage_gb指定新的存储大小,单位为 GB。支持增加和减少。
备注
When you decrease the storage size, you can't set it too close to current disk usage. The new size must be at least 1.4x the disk space currently in use. That way, there's still room to add more data without triggering an automatic storage increase.
STORAGE_INTEGRATION = 'storage_integration_name'将类型为
POSTGRES_EXTERNAL_STORAGE的存储集成附加到 Postgres 实例,使 pg_lake 扩展能够访问外部对象存储中的数据。有关完整的设置步骤,请参阅 为 pg_lake 配置 S3 存储。POSTGRES_VERSION = { 16 | 17 | 18 }指定要升级到的 Postgres 主要版本。您只能升级到较新的版本;不支持降级。
MAINTENANCE_WINDOW_START = hour_of_day指定一天中可以开始维护时段的小时数(0-23、UTC)。维护时段为从指定小时开始的三小时时段。
POSTGRES_SETTINGS = 'json_string'指定以 JSON 格式对实例的 Postgres 服务器设置 进行更改:
某些设置需要重新启动实例才能生效。除非您指定
APPLY IMMEDIATELY,否则不会应用这些更改。APPLY IMMEDIATELY替换任何定义的维护时段,并在指定操作就绪后立即应用它们。适用于
COMPUTE_FAMILY、STORAGE_SIZE_GB、POSTGRES_VERSION和POSTGRES_SETTINGS。APPLY ON 'timestamp'替换任何定义的维护时段,并在给定时间戳应用指定的操作。时间戳不能超过未来 72 小时。
支持的时间戳格式:
yyyy-MM-ddyyyy-MM-dd HH:mmyyyy-MM-dd HH:mm:ssyyyy-MM-dd HH:mm zzz
UNSET ...取消设置 Postgres 实例的一个或多个指定属性,将其重置为默认值:
COMMENTPOSTGRES_SETTINGSNETWORK_POLICYMAINTENANCE_WINDOW_START– 取消设置会导致所有正在进行的操作在完成后立即应用。STORAGE_INTEGRATION– 从实例中移除存储集成,禁用 pg_lake 对外部存储的访问。
要使用单个 ALTER 语句取消设置多个属性或参数,请使用逗号分隔每个属性或参数。
取消设置属性或参数时,只指定属性或参数名称(除非上述语法表明您应该指定值)。指定值会返回错误。
SUSPEND暂停 Postgres 实例。当磁盘镜像保留在存储中时,虚拟机器将被停用。正常计费已暂停,但存储成本继续累积。保留现有备份。
RESUME恢复暂停的 Postgres 实例。如果有待重启的操作,则在实例恢复时应用这些操作。
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]指定 标签 名称和标签字符串值。
标签值始终为字符串,标签值的最大字符数为 256。
有关在语句中指定标签的信息,请参阅 Tag quotas。
访问控制要求¶
权限 |
对象 |
备注 |
|---|---|---|
OWNERSHIP 或 OPERATE |
Postgres 实例 |
修改实例属性时需要。 |
USAGE |
网络策略 |
仅当指定 NETWORK_POLICY 时需要。 |
USAGE |
存储集成 |
仅当指定 STORAGE_INTEGRATION 时需要。 |
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
更改为
COMPUTE_FAMILY、STORAGE_SIZE_GB和POSTGRES_VERSION统称为“升级”操作,可以一起执行。运行 DESCRIBE POSTGRES INSTANCE 命令和监控跟踪进度的operations字段。仅当实例位于 READY 状态,并且没有其他操作正在运行,才能启动升级操作。
如果实例定义了维护时段,则在维护时段开始之前,更改不会生效,除非已指定
APPLY IMMEDIATELY。维护时段控制应用变更的 时间,而不是控制实例是否正在运行。有关维护操作的更多详细信息,请参阅 Snowflake Postgres 实例管理。执行实例管理操作需要短暂的服务中断。 确保您的应用程序能够自动重新连接到数据库。
SUSPEND 和 RESUME 是停止和启动实例计费的立即操作。它们与维护时段不同,维护时段会安排配置更改(例如升级或 HA 启用)生效。
除非您显式重新生成凭据,否则实例的连接字符串在实例管理操作中保持不变。
关于元数据:
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
示例¶
更改 Postgres 实例的计算系列和存储大小:
使用 DESCRIBE 监控操作的进度:
为实例启用高可用性:
升级到 Postgres 18:
立即应用更改,覆盖维护时段:
暂停 Postgres 实例:
恢复暂停的实例:
重命名 Postgres 实例:
备注
重命名实例会更改其在 Snowflake 中的标识符,但 不会 更改连接主机名。主机名保持不变,因此现有连接和应用程序无需修改即可继续工作。
