为 Google Cloud Spanner 添加复制

了解在 Oracle GoldenGate 部署中为 Google Cloud Spanner 添加复制之前所需的配置以及添加复制的步骤。

添加复制之前

在开始添加复制之前,您需要配置与 Google Cloud 的数据库连接,设置检查点表,并建立与 Google Cloud 的数据库连接。(可选)您还可以创建心跳表。

此外,请确保浏览受支持的数据类型、对象和操作的列表。有关详细信息,请参见Google Spanner:Supported Data Types,Objects and Operations 。

了解如何为 Oracle GoldenGate Replicat 配置 Google Cloud。

使用 IAM 验证与 Google Cloud 的连接

Google Spanner 是一个完全托管的云原生分布式数据库。对于适用于 Google Spanner 的 Oracle GoldenGate Replicat,将实施无密码验证。

Google Cloud Spanner 中的身份验证与传统的关系数据库(如 MySQL、PostgreSQL 或 SQL Server)有根本的不同,因为它不是直接登录的独立数据库服务器。

Spanner 使用 Google Cloud IAM(身份和访问管理),在云平台级别进行身份验证,而不是在 Google Spanner 内部进行。

以下步骤用于通过 IAM 验证与 Google Cloud 的连接:

  1. 用户应用程序通过 Google Cloud 验证,使用 JSON 文件中的服务账户凭证。

    服务账户需要具有 roles/Spanner.databaseUser、roles/spanner.databaseAdmin 角色。

  2. 下载身份证明文件:

    1. 登录您的 Google 帐户,网址为 cloud.google.com。

    2. 单击 "Console"(控制台),然后转到 "Dashboard"(显示板),从中可以选择项目。

    3. 从导航菜单中,单击 APIs & Services ,然后选择 Credentials 。

    4. 从 "Create Credentials" 菜单中,选择 "Service account key"。

    5. 选择用于下载系统的 JSON 身份证明文件的 JSON 密钥类型。在 Web 界面中添加数据库连接时,应将此 JSON 身份证明文件作为输入提供。

    Spanner 仅支持 https_proxy,不支持 http_proxy。如果连接到代理服务器后面的 Spanner,则必须设置 https_proxy,并且不得设置 http_server。可以在用于配置服务管理器的环境变量中设置 https_proxy。

添加数据库连接、检查点表和脉动表

为 Google Cloud Spanner 添加复制的流程与添加任何复制的流程相同。在开始添加复制之前,请设置以下配置:

  1. 添加数据库连接。

在目标上添加数据库连接

  1. 创建数据库别名后连接到数据库,以确保连接成功。数据库连接后,可以添加检查点表。

  2. 单击“检查点”旁边的加号以打开“添加检查点”屏幕,并以 schema.table_name 格式指定检查点表名。

    添加检查点表

  3. 单击提交。此时将添加检查点表。

  4. 在连接的数据库下的左侧导航窗格中,检查心跳表。已启用心跳表以检查心跳滞后。

心跳表显示为对 Spanner Replicat 启用

为 Google Spanner 添加复制

在开始添加复制之前,请确保已设置数据库连接并创建了检查点表。有关详细信息,请参阅添加数据库连接、检查点表和心跳表。

使用以下步骤为 Google Spanner 创建经典或协调的复制:

  1. 打开 "Add Replicat"(添加复制)向导,然后选择 "Classic Replicat for Spanner"(适用于 Spanner 的经典复制)。

    为 Google Spanner 添加经典复制

  2. 指定复制名称,然后单击 "Next"(下一步)。

  3. 指定复制选项,例如线索名称、目标身份证明和检查点表名称。

    指定复制选项,例如线索文件名和检查点表名

  4. 在“参数文件”屏幕上,指定 MAP 和 TARGET 详细信息,然后单击创建并运行。这将创建 Spanner Replicat。

    在 Replicat 参数文件中指定 MAP 和 TARGET 值。

注:如果在 Replicat 参数的 MAP 语句中使用了不合格的表名,则方案名取自 GLOBALS 文件中指定的 GGSCHEMA。如果未在 GLOBALS 参数中定义 GGSCHEMA,则将默认(未命名)方案用于复制。

如果正确配置了所有规范,复制将成功运行。

GoldenGate 正在运行状态的 Google Spanner 复制

使用管理客户机添加复制

在开始添加复制之前,请确保已设置数据库连接并创建了 checkpointtable 和 heartbeattable。有关详细信息,请参阅添加数据库连接、检查点表和心跳表。

使用以下步骤从管理客户端为 Google Spanner 创建经典或协调的复制:

  1. 从 Admin Client 提示符连接到部署。

  2. 运行以下命令以创建数据库连接:

    ALTER CREDENTIALSTORE ADD USER "oggh-440221@xxxxxx/srcdb;client_secrets=/scratch/creds.json" nopassword alias spanner
  3. 连接到在上一步中创建的数据库身份证明:

    DBLOGIN USERIDALIAS spanner
  4. 运行逗号以添加复制:

    ADD REPLICAT nrep, classic, EXTTRAIL ea, checkpointtable ggadmin.ckpt1

    输出确认复制是否已成功添加。

  5. 可以使用 EDIT PARAMS 命令在 Replicat 参数文件中为 Replicat 添加其他参数。

    EDIT PARAMS nrep

    在复制参数文件中指定所需的参数。下面是复制参数文件样例:

    DDL EXCLUDE ALL
    DDLERROR default discard
    REPERROR (default,discard)
    DDLOPTIONS REPORT
    SOURCECATALOG spanner MAP hr.*, TARGET hr.*;
  6. 启动复制并确保其成功运行。

    START REPLICAT nrep

    ### 其他引用 {#GUID-C737B199-8182-47BC-986C-088BC1171863}

请参见 Handling Transient and Permanent Errors in Replicat for Google Spanner ,了解如何在 Replicat for Google Cloud Spanner 中处理错误。