对多个账户的数据库进行故障转移

本主题介绍了对不同 区域 的多个账户的复制数据库进行故障转移以进行灾难恢复所需的步骤。

备注

本主题内容:

用于数据库复制和故障转移/故障恢复的 Web 界面

注意

在 Snowsight 和 Classic Console 中管理和监控复制以及故障转移/故障恢复仅适用于使用专用连接的账户。

对于所有其他账户,请参阅 使用 Snowsight 监控复制复制账户对象和数据库

账户管理员(具有 ACCOUNTADMIN 角色的用户)可以在 Snowsight 或 Classic Console 中管理复制和故障转移/故障恢复操作。

Snowsight

有关将本地数据库升级为主数据库的说明,请参阅 用于数据库复制和故障转移/故障恢复的 Web 界面

Classic Console

使用 Classic Console 中 Databases Databases 选项卡 选项卡的 Replication 区域可以执行与配置和管理数据库复制相关的大多数操作,包括以下操作:

  • 将本地数据库提升为主数据库

  • 为主数据库(Business Critical Edition 账户或更高版本)启用故障转移。

  • 刷新辅助数据库,一次(手动)或多次(按照计划,使用任务)刷新。

  • 将辅助数据库提升为主数据库(Business Critical Edition 账户或更高版本)。

  • 禁用主数据库的复制和/或故障转移。

复制和故障转移 SQL 命令的账户标识符

以下说明中的示例 SQL 语句使用格式为 organization_name.account_name账户标识符。但是,支持格式为 snowflake_region.account_locator 的账户标识符。

有关更多详细信息,请参阅 用于复制和故障转移的账户标识符

先决条件要求

  1. 为一组账户中的主数据库启用复制。

  2. 在第 1 步中指定的一个或多个账户中至少创建主数据库的一个辅助数据库(即副本),并定期使用主数据库的最新更新刷新(即同步)该副本。

有关说明,请参阅 跨多个账户复制数据库

第 1 步:查看所有启用了复制的账户

查询 SHOW REPLICATION ACCOUNTS,以查看组织中已启用复制的账户列表。

SHOW REPLICATION ACCOUNTS;

+------------------+---------------------------------+---------------+------------------+---------+-------------------+
| snowflake_region | created_on                      | account_name  | account_locator  | comment | organization_name |
|------------------+---------------------------------+---------------+------------------+---------+-------------------|
| AWS_US_WEST_2    | 2018-11-19 16:11:12.720 -0700   | ACCOUNT1      | MYACCOUNT1       |         | MYORG             |
| AWS_US_EAST_1    | 2019-06-02 14:12:23.192 -0700   | ACCOUNT2      | MYACCOUNT2       |         | MYORG             |
+------------------+---------------------------------+---------------+------------------+---------+-------------------+
Copy

查看 区域 IDs 的完整列表。

第 2 步:为主数据库启用故障转移

备注

如果您在 跨多个账户复制数据库 中为该主数据库启用了故障转移,请跳过此步骤。

使用 ALTER DATABASE ...ENABLE FAILOVER TO ACCOUNTS 语句启用主数据库到组织中一个或多个账户的故障转移。这些任一账户中的主数据库的副本(即辅助数据库)都可以升级为主数据库。

请注意,可以在指定账户中创建主数据库的副本之前 之后为主数据库启用故障转移。

示例

启用主数据库 mydb1 到账户 myaccount2myaccount3 的故障转移。在此示例中,假设主数据库存储在 myaccount1 账户中,并且所有三个账户都属于组织 myorg。必须从 myaccount1 中执行 ALTER DATABASE 命令。

ALTER DATABASE mydb1 ENABLE FAILOVER TO ACCOUNTS myorg.myaccount2, myorg.myaccount3;
Copy

第 3 步:将副本数据库提升为主数据库

可以将主数据库的任何副本提升为主数据库,方法是执行 ALTER DATABASE ...PRIMARY 语句。升级后,数据库变为可写入。同时,先前的主数据库变成了只读副本数据库。

在包含您正在升级的辅助数据库的账户中执行该 ALTER DATABASE 语句。

备注

若要升级辅助数据库,用于执行该操作的角色必须拥有关于数据库的 OWNERSHIP 权限。

示例

-- Promote a secondary database to serve as the primary database.
ALTER DATABASE mydb1 PRIMARY;

-- Verify that the former secondary database was promoted successfully.
SHOW REPLICATION DATABASES;
Copy
语言: 中文