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

Lakehouse for Apache Iceberg 支持目录元数据的跨区域复制和灾难恢复。

此配置需要由 Cloud Storage 双区域多区域存储分区提供支持的目录。

准备工作

  1. 验证是否已为您的 Google Cloud 项目启用结算功能。

  2. 启用 BigLake API。

    启用 API 所需的角色

    如需启用 API,您需要拥有 serviceusage.services.enable 权限。如果您 创建了项目,则可能已通过 所有者角色 (roles/owner) 拥有此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。 了解如何授予角色

    启用 API

所需的角色

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

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

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

复制和灾难恢复工作流

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

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

为故障切换做准备

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

查看复制状态

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

gcloud biglake iceberg catalogs describe CATALOG_NAME

CATALOG_NAME 替换为目录的名称。

检查同步状态

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

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

替换以下内容:

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

启动故障切换

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

软故障切换

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

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

替换以下内容:

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

硬故障切换

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

gcloud 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 时间戳,用作复制的检查点。复制过程会验证副本是否包含在此时间之前提交的所有数据。如果副本不包含在此时间戳之前提交的所有数据,则该命令会失败。如需强制执行故障切换过程,而不考虑任何复制延迟,请将此时间戳设置为很久以前的日期。 注意:此功能处于预览版阶段时,REPLICATION_TIMESTAMP 仅跟踪目录元数据,而不跟踪 Cloud Storage 文件。如需将 数据丢失保持在较低水平,请参阅 Cloud Storage 数据可用性和 持久性文档。

后续步骤