使用 REST API
使用 OCI GoldenGate REST API 与数据复制部署进行通信。了解如何在各种配置中使用 REST API,以及如何使用 curl 和 Cloud Shell 调用命令。
连接到公共部署
要使用 Cloud Shell 中的公共端点连接到 OCI GoldenGate 部署,您只需要部署 URL。您可以在部署的详细信息页面上找到部署 URL(控制台 URL)。
连接到专用部署
如果部署具有专用端点,则可以使用 Cloud Shell 网络将 Cloud Shell 连接到具有部署访问权限的网络,或者创建堡垒、堡垒会话和 SSH 隧道。
默认情况下,Cloud Shell 会限制对租户主区域中的 OCI 内部资源的网络访问,除非您启用了云 Shell 托管公共网络。您的管理员必须配置身份策略才能启用 Cloud Shell 公共网络。有关更多信息,请参见 Cloud Shell Networking 。
要在管理客户端中连接到专用 OCI GoldenGate 部署:
-
在 Oracle Cloud 控制台全局导航栏中,依次选择 Developer tools 和 Cloud Shell 。
注:如果这是您首次连接到 Cloud Shell,可能需要几分钟时间才能连接。
-
(可选)运行以下命令以生成 SSH 密钥。如果要在创建堡垒时生成密钥,可以跳过此步骤。
ssh-key gen -t rsa保留默认文件名,在出现提示时不要输入口令短语。私钥位于
~/ssh/id_rsa,公钥位于~/ssh/id_rsa.pub。 -
在部署详细信息页面上,记下部署的专用 IP 和子网信息。
-
创建堡垒:
-
从 Oracle Cloud 控制台导航菜单中,依次选择身份和安全和堡垒。
-
在“堡垒”页上,选择创建堡垒。
-
在“Create bastion(创建堡垒)”页面中,输入名称,然后选择部署所在的子网。
-
对于 CIDR 块允许列表,输入
0.0.0.0/0。 -
选择创建堡垒。
-
-
堡垒处于活动状态后,创建会话:
-
在堡垒详细信息页上,选择创建会话。
-
在“创建会话”页的会话类型中,选择 SSH 端口转发会话。
-
输入会话名称。
-
对于 Connect to target host by using ,选择 IP address(IP 地址),然后输入部署的专用 IP 地址。
-
对于“端口”,输入
443。 -
对于添加 SSH 密钥,请选择以下选项之一:
-
粘贴 SSH 密钥,并粘贴在上面的步骤 2 中 Cloud Shell 中创建的公共密钥 (
(~/ssh/id_rsa.pub) 的内容。 -
生成 SSH 密钥对
-
-
选择创建会话。
-
-
会话处于活动状态后,从其“操作”菜单中选择查看 SSH 命令(省略号图标)。
-
在 "View SSH command"(查看 SSH 命令)对话框中,输入私有密钥 (
~/ssh/id_rsa) 的路径以替换<private-key>,并将<local-port>替换为 Cloud Shell 中将连接转发到堡垒的端口。注: Cloud Shell 不允许在具有
sudo访问权限的特权端口上转发端口,因此您必须使用非特权端口(例如 7443)。在前台运行一次命令以将堡垒主机添加到known_hosts之后,可以在命令末尾附加“和”号 (&),以便下次可以在后台运行。 -
复制命令,然后在 Cloud Shell 中运行该命令。可以忽略
bind: Cannot assign requested address消息。
REST API 调用示例
(可选)可以将部署用户名和密码存储到 [.netrc](netrc.html) 文件中。以下示例假定您使用的是 .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.* into 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: