使用跨区域复制和灾难恢复

本页面介绍了如何使用 BigLake metastore 跨区域复制和灾难恢复。

此功能仅适用于使用 Cloud Storage 双区域多区域存储分区的目录。

准备工作

  1. Verify that billing is enabled for your Google Cloud project.

  2. Enable the BigLake API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

所需的角色

如需获得在 BigLake metastore 中使用 Iceberg REST 目录所需的权限,请让管理员为您授予以下 IAM 角色:

  • 执行管理任务,例如管理目录用户访问权限、存储访问权限和目录的凭证自动售卖模式:
    • 针对项目的 BigLake Admin (roles/biglake.admin) 角色
    • 针对 Cloud Storage 存储桶的 Storage Admin (roles/storage.admin) 角色
  • 在凭据自动售卖模式下读取表数据: 针对项目的 BigLake Viewer (roles/biglake.viewer) 角色
  • 以凭据自动售卖模式写入表数据:项目的 BigLake Editor (roles/biglake.editor) 角色
  • 在非凭证自动售卖模式下读取目录资源和表数据:
  • 在非凭证自动售卖模式下管理目录资源和写入表数据:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

复制和灾难恢复工作流

如需使用跨区域复制和灾难恢复,请按照以下常规步骤操作:

  1. 查看复制状态:确定当前的主要区域和次要区域,以确定故障切换的目标区域。
  2. 检查同步状态:验证主区域和辅助区域的当前状态,确保它们已准备好进行转换。
  3. 选择故障切换模式:选择软故障切换(最适合计划性维护)或硬故障切换(最适合紧急恢复)。
  4. 启动故障切换:运行与所选模式对应的命令,以切换主要区域和次要区域。

为故障切换做好准备

确定当前主要区域,并验证次要区域的同步状态。然后,启动故障切换。

查看复制状态

如需确定目录的复制区域,请运行以下 gcloud alpha biglake iceberg catalogs describe 命令。

gcloud alpha biglake iceberg catalogs describe CATALOG_NAME

CATALOG_NAME 替换为您的目录名称。

检查同步状态

在启动故障切换之前,请使用 alpha biglake iceberg failover 命令检查次要副本的同步状态:

gcloud alpha biglake iceberg catalogs failover CATALOG_NAME \
    --validate_only \
    --primary-replica PRIMARY_REPLICA_REGION

替换以下内容:

  • CATALOG_NAME:您的目录的名称。
  • PRIMARY_REPLICA_REGION:要指定为新主副本的区域。

启动故障切换

灾难恢复功能使用元存储区复制来指定主区域和辅助区域。所有表提交元数据都从主要区域提供,并复制到次要区域。您可以使用故障切换操作来切换目录的主要区域和次要区域。

软故障切换

如需启动软故障切换,请运行以下 alpha biglake iceberg failover 命令:

gcloud alpha biglake iceberg catalogs failover CATALOG_NAME \
    --primary-replica PRIMARY_REPLICA_REGION

替换以下内容:

  • CATALOG_NAME:您的目录的名称。
  • PRIMARY_REPLICA_REGION:要指定为新主副本的区域。

硬故障切换

如需启动硬故障切换,请运行以下 alpha biglake iceberg failover 命令:

gcloud alpha biglake iceberg catalogs failover CATALOG_NAME \
    --primary-replica PRIMARY_REPLICA_REGION \
    --conditional-failover-replication-time=REPLICATION_TIMESTAMP

替换以下内容:

  • CATALOG_NAME:您的目录的名称。

  • PRIMARY_REPLICA_REGION:要指定为新主副本的区域。

  • REPLICATION_TIMESTAMP:充当复制检查点的 RFC 3339 时间戳。复制过程会验证副本是否包含截至此时已提交的所有数据。如果副本不包含在此时间戳之前提交的所有数据,则该命令会失败。如需强制执行故障切换流程,而不考虑任何复制延迟,请将此时间戳设置为很久以前的日期。

后续步骤