使用 REST API

使用 OCI GoldenGate REST API 與資料複製部署進行通訊。探索如何在各種組態中使用 REST API,並使用 curl 和 Cloud Shell 呼叫命令。

連線至公用部署

若要使用 Cloud Shell 中的公用端點連線至 OCI GoldenGate 部署,您只需要部署 URL。您可以在部署的詳細資訊頁面上找到部署 URL (主控台 URL)。

連線至專用部署

如果部署具有專用端點,您可以透過 Cloud Shell 網路連線至可存取部署的網路,或建立堡壘主機、堡壘主機階段作業和 SSH 通道。

除非您已啟用 Cloud Shell 管理的公用網路,否則 Cloud Shell 預設會限制對租用戶原建立區域中 OCI 內部資源的網路存取。您的管理員必須設定識別原則,才能啟用 Cloud Shell 公用網路。如需詳細資訊,請參閱 Cloud Shell Networking

連線至管理從屬端中的專用 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. 在「建立堡壘主機」頁面中,輸入名稱,然後選取部署所在的相同子網路。

    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. 選取建立階段作業 (Create session)

  6. 階段作業為「作用中」之後,請從其動作功能表 (省略符號圖示) 中選取檢視 SSH 命令

  7. 在「檢視 SSH 命令」對話方塊中,輸入私密金鑰 (~/ssh/id_rsa) 的路徑以取代 <private-key>,並以 Cloud Shell 中將連線轉送至堡壘主機的連接埠取代 <local-port>

    注意: Cloud Shell 不允許以具備 sudo 存取權的授權連接埠進行連接埠轉送,因此您必須使用非授權的連接埠,例如 7443。在前景中執行一次命令,將堡壘主機新增至 known_hosts 之後,您可以在命令的結尾附加 & 符號,以便下次在背景中執行。

  8. 複製命令,然後在 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

擷取擷取或 Replicat 詳細資訊

擷取擷取明細:

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

擷取 Replicat 詳細資訊:

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

建立擷取

首先,建立一個包含 Extract 組態的 JSON 文件。例如,此檔案可用來使用 E1 歷程檔產生名為 EATP 的 Extract,並從 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

首先,建立一個包含 Replicat 組態的 JSON 文件。例如,此檔案可用來使用 E1 歷程檔產生名為 RADW 的 Replicat,以及從 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"
}

然後執行下列命令來建立 Replicat 處理作業:

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

啟動 Extract 或 Replicat

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>"}'

取得指定 Extract 的狀態和統計資料

取得擷取狀態:

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"}'

取得 Extract 統計資料:

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"}'

取得指定 Replicat 的狀態和統計資料

取得 Replicat 狀態:

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"}'

取得 Replicat 統計資料:

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: