使用 REST API

使用 OCI GoldenGate REST API 与数据复制部署进行通信。了解如何在各种配置中使用 REST API,使用 curl 和 Cloud Shell 调用命令。

相关主题

连接到公共部署

要使用 Cloud Shell 中的公共端点连接到 OCI GoldenGate 部署,您只需要部署 URL。您可以在部署的详细信息页上找到部署 URL(控制台 URL)。

连接到专用部署

如果部署具有专用端点,则可以使用 Cloud Shell Networking 将 Cloud Shell 连接到可以访问部署的网络,或者创建堡垒、堡垒会话和 SSH 隧道。

默认情况下,Cloud Shell 限制对租户主区域中 OCI 内部资源的网络访问,除非您启用了 Cloud Shell 托管公共网络。您的管理员必须配置身份策略才能启用 Cloud Shell 公共网络。有关更多信息,请参见 Cloud Shell 网络

要连接到 Admin Client 中的专用 OCI GoldenGate 部署:
  1. 在 Oracle Cloud 控制台全局导航栏中,依次单击开发人员工具 Cloud Shell

    注意:

    如果这是您第一次连接到 Cloud Shell,则可能需要几分钟才能连接。
  2. (可选)运行以下命令以生成 SSH 密钥。如果要在创建堡垒时生成密钥,则可以跳过此步骤。
    ssh-key gen -t rsa

    保留默认文件名,在出现提示时不要输入口令短语。私钥位于 ~/ssh/id_rsa,公钥位于 ~/ssh/id_rsa.pub

  3. 在部署详细信息页面上,记下部署的专用 IP 和子网信息。
  4. 创建堡垒:
    1. 从 Oracle Cloud 控制台导航菜单中,依次选择身份和安全堡垒
    2. 在“堡垒”页上,单击创建堡垒
    3. 在“Create bastion(创建堡垒)”页面中,输入名称,然后选择部署所在的子网。
    4. 对于 CIDR 块允许列表,输入 0.0.0.0/0
    5. 单击创建堡垒
  5. 堡垒处于活动状态后,创建一个会话:
    1. 在堡垒详细信息页上,单击创建会话
    2. 在“创建会话”页上,为会话类型选择 SSH 端口转发会话
    3. 输入会话名
    4. 对于使用以下项连接到目标主机,选择 IP 地址,然后输入部署的专用 IP 地址。
    5. 对于“端口”,输入 443
    6. 对于添加 SSH 密钥,请选择以下选项之一:
      • 粘贴 SSH 密钥,然后粘贴在上面第 2 步的 Cloud Shell 中创建的公共密钥 ((~/ssh/id_rsa.pub) 的内容。
      • 生成 SSH 密钥对
    7. 单击创建会话
  6. 会话处于活动状态后,从其操作菜单(省略号图标)中选择查看 SSH 命令
  7. 在 "View SSH command"(查看 SSH 命令)对话框中,输入私有密钥 (~/ssh/id_rsa) 的路径来代替 <private-key>,并将 <local-port> 替换为 Cloud Shell 中将连接转发到堡垒的端口。

    注意:

    Cloud Shell 不允许在访问 sudo 的特权端口上进行端口转发,因此必须使用非特权端口(如 7443)。在前台运行一次命令以将堡垒主机添加到 known_hosts 后,可以将 & 符号 (&) 附加到命令末尾,以便下次可以在后台运行。
  8. 复制该命令,然后在 Cloud Shell 中运行该命令。您可以忽略 bind: Cannot assign requested address 消息。

REST API 调用示例

(可选)您可以将部署用户名和密码存储到 .netrc 文件中。以下示例假定您使用的是 .netrc 文件。

现在,您可以使用 curl 向数据复制部署发送请求。例如,以下命令返回部署健康状况:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/services/v2/config/health

列出线索文件

curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/services/v2/exttrails

列出提取或复制

列出提取:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/extracts
列出副本:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/replicats

检索提取或复制详细信息

检索提取详细信息:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/extracts/<extract name>
检索复制详细信息:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/replicats/<replicat name>

创建提取

首先,创建一个包含提取配置的 JSON 文档。例如,此文件可用于使用 E1 线索生成名为 EATP 的提取,并从 SRC_OCIGGLL.* 捕获数据:
{
        "config":[
                "Extract EATP",
                "ExtTrail E1",
                "UseridAlias BLOGSRCATP", 
                "Table SRC_OCIGGLL.*;"
        ], 
        "source":{"tranlogs":"integrated"},
        "credentials":{"alias":"BLOGSRCATP"},
        "registration":{"optimized":false},
        "begin":"now",
        "targets":[{"name":"E1"}]
}
然后,运行以下命令创建提取处理:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X POST https://<deployment URL>/services/v2/extracts/<Extract name> -d @<JSON file>.json

创建副本

首先,创建一个包含 Replicat 配置的 JSON 文档。例如,此文件可用于使用 E1 线索生成名为 RADW 的复制,并将数据从 SRC_OCIGGLL.* 复制到 SRCMIRROR_OCIGGLL.*:
{
        "config":[
                "REPLICAT RADW",
                "UseridAlias BLOGTRGADW",
                "MAP SRC_OCIGGLL.*, TARGET SRCMIRROR_OCIGGLL.*;"
        ],  
        "source":{"name": "E1"},
        "credentials":{"alias":"BLOGTRGADW"},
        "checkpoint":{"table":"SRCMIRROR_OCIGGLL.CHECKTABLE"},
        "mode":{
                "type":"nonintegrated",
                "parallel": false
        },
        "registration":"none",
        "begin":"now",
        "status":"stopped"
}
然后,运行以下命令来创建复制过程:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X POST https://<deployment URL>/services/v2/replicats/<Replicat name> -d @<JSON file>.json

启动提取或复制

curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X POST https://<deployment URL>/services/v2/commands/execute -d '{ "name":"start", "processName":"<Extract or Replicat name>"}'

获取给定提取的状态和统计信息

获取提取状态:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X POST https://<deployment URL>:<port>/services/v2/extracts/<extract name>/command -d '{"command":"STATUS"}'
获取提取统计信息:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X POST https://<deployment URL>:<port>/services/v2/extracts/<extract name>/command -d '{"command":"STATUS"}'

获取给定复制的状态和统计信息

获取复制状态:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X POST https://<deployment URL>:<port>/services/v2/replicats/<replicat name>/command -d '{"command":"STATUS"}'
获取复制统计信息:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X POST https://<deployment URL>:<port>/services/v2/replicats/<replicat name>/command -d '{"command":"STATS"}'

了解更多信息

详细了解 Oracle GoldenGate REST API: