DROP POSTGRES INSTANCE

从账户中移除指定的 Snowflake Postgres 实例

另请参阅:

CREATE POSTGRES INSTANCE, ALTER POSTGRES INSTANCE, DESCRIBE POSTGRES INSTANCE, SHOW POSTGRES INSTANCES

语法

DROP POSTGRES INSTANCE [ IF EXISTS ] <name>

参数

name

指定要删除的 Postgres 实例的标识符。

如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。

有关更多信息,请参阅 标识符要求

访问控制要求

用于执行此操作的 角色 必须至少具有以下 权限

权限

对象

备注

OWNERSHIP

Postgres 实例

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

使用说明

  • 目前,已删除的 Postgres 实例无法恢复;您必须重新创建它们。但是,如果您创建了该实例的 分支,那么这个分支将保持独立且不受影响。为了便于以后重新创建实例,您可以使用 DESC POSTGRES INSTANCE 在删除每个实例之前获取其详细信息。

  • 发出此命令时,Snowflake 将终止 Postgres 实例并释放相关的计算资源。实例完全终止后,计算资源计费将停止。

  • 存储在 Postgres 实例中的所有数据都将被永久删除。在删除实例之前,请确保您已备份所有重要数据。

  • 如果该实例启用了 高可用性,那么 HA 备用实例也会与主实例一起被删除。

  • 如果实例有 读取副本,当删除主实例时,这些副本也会被删除。

  • 分叉实例 是独立的副本。删除源实例不会影响从中派生的任何实例。

  • 如果指定了 IF EXISTS 子句,而目标对象不存在,该命令会成功完成,不会返回错误。

示例

删除 Postgres 实例:

DROP POSTGRES INSTANCE my_postgres;

仅在 Postgres 实例存在时才将其删除:

DROP POSTGRES INSTANCE IF EXISTS my_postgres;

使用 流运算符 查找要删除的实例:

-- Find the oldest instance
-- Then use SET and IDENTIFIER() to drop it
SET oldest_instance = (
  SHOW POSTGRES INSTANCES
    ->> SELECT "name"
        FROM $1
        ORDER BY "created_on"
        LIMIT 1
);

DROP POSTGRES INSTANCE IDENTIFIER($oldest_instance);

在删除之前查找低于存储阈值的实例:

-- Identify small instances
SHOW POSTGRES INSTANCES
  ->> SELECT "name", "storage_size", "created_on"
      FROM $1
      WHERE "storage_size" < 50
      ORDER BY "storage_size";

DROP POSTGRES INSTANCE some_extremely_small_instance;

在尝试删除之前检查所有权:

SHOW GRANTS ON POSTGRES INSTANCE my_postgres;

-- Verify that you have OWNERSHIP privilege, then drop
DROP POSTGRES INSTANCE my_postgres;