REST APIの使用

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

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

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

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

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

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

管理クライアントでプライベート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. 「SSHキーの追加」で、次のいずれかのオプションを選択します。

      • SSHキーを貼り付け、前述のステップ2でクラウド・シェルで作成された公開キー((~/ssh/id_rsa.pub)の内容を貼り付けます。

      • SSHキー・ペアを生成します

    7. 「セッションの作成」を選択します。

  6. セッションがアクティブになったら、その「アクション」メニュー(省略記号アイコン)から「SSHコマンドの表示」を選択します。

  7. 「SSHコマンドの表示」ダイアログで、<private-key>のかわりに秘密キーへのパス(~/ssh/id_rsa)を入力し、<local-port>を、要塞に接続を転送するクラウド・シェルのポートに置き換えます。

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

  8. コマンドをコピーし、クラウド・シェルで実行します。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

抽出またはReplicatのリスト

抽出のリスト:

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の詳細の取得

Extractの詳細の取得:

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.* 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のステータスおよび統計の取得

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についてさらに学習: