使用 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 內部資源的網路存取,除非您已啟用 Cloud Shell 管理的公用網路。您的管理員必須設定身分識別原則,才能啟用 Cloud Shell 公用網路。如需詳細資訊,請參閱 Cloud Shell 網路

若要連線至「管理從屬端」中的專用 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. 按一下建立階段作業
  6. 階段作業為「作用中」之後,請從其動作功能表 (省略符號圖示) 中選取檢視 SSH 命令
  7. 在「檢視 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
列出 Replicats:
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/replicats

擷取 Extract 或 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.* 複製到 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: