REST APIの使用

OCI GoldenGate REST APIを使用して、データ・レプリケーション・デプロイメントと通信します。curlおよびCloud Shellを使用してコマンドを起動して、様々な構成でREST APIを使用する方法について学習します。

パブリック・デプロイメントへの接続

クラウド・シェルのパブリック・エンドポイントを使用してOCI GoldenGateデプロイメントに接続するには、デプロイメントURLのみが必要です。デプロイメントURL (コンソールURL)は、デプロイメントの詳細ページで確認できます。

プライベート・デプロイメントへの接続

デプロイメントにプライベート・エンドポイントがある場合は、クラウド・シェル・ネットワーキングを使用してデプロイメントへのアクセス権を持つネットワークにクラウド・シェルを接続するか、要塞、要塞セッションおよびSSHトンネルを作成できます。

デフォルトでは、クラウド・シェルで管理されるパブリック・ネットワークを有効にしていないかぎり、クラウド・シェルはテナンシ・ホーム・リージョン内のOCI内部リソースへのネットワーク・アクセスを制限します。管理者は、Cloud Shellパブリック・ネットワークを有効にするようにアイデンティティ・ポリシーを構成する必要があります。詳細は、Cloud Shellネットワーキングを参照してください。

管理クライアントでプライベートOCI GoldenGateデプロイメントに接続するには:
  1. Oracle Cloudコンソールのグローバル・ナビゲーション・バーで、「開発者ツール」「クラウド・シェル」の順にクリックします。
    ノート

    クラウド・シェルに初めて接続する場合は、接続に数分かかる場合があります。
  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. 「Add SSH key」で、次のいずれかのオプションを選択します。
      • SSHキーを貼り付け、前述のステップ2でクラウド・シェルで作成した公開キー((~/ssh/id_rsa.pub)の内容を貼り付けます。
      • SSHキー・ペアを生成します
    7. 「セッションの作成」をクリックします
  6. セッションが「アクティブ」になったら、「アクション・メニュー」(省略記号アイコン)から「SSHコマンドの表示」を選択します。
  7. 「SSHコマンドの表示」ダイアログで、<private-key>のかわりに秘密キーへのパス(~/ssh/id_rsa)を入力し、<local-port>を、要塞に接続を転送するクラウド・シェルのポートに置き換えます。
    ノート

    クラウド・シェルでは、sudoアクセス権を持つ特権ポートでのポート転送は許可されないため、7443などの権限のないポートを使用する必要があります。要塞ホストをknown_hostsに追加するためにコマンドをフォアグラウンドで1回実行した後、次回バックグラウンドで実行できるように、アンパサンド(&)をコマンドの最後に追加できます。
  8. コマンドをコピーし、クラウド・シェルで実行します。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

抽出またはReplicatのリスト

Extractをリストします。
curl -n -H "Content-Type: application/json" -H "Accept: application/json" -X GET https://<deployment URL>/v2/extracts
Replicatをリストします。
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の作成

まず、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"}]
}
次に、次のコマンドを実行してExtractプロセスを作成します。
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"}'