REST APIの使用
OCI GoldenGate REST APIを使用して、データ・レプリケーション・デプロイメントと通信します。curlおよびCloud Shellを使用してコマンドを起動し、様々な構成でREST APIを使用する方法について学習します。
パブリック・デプロイメントへの接続
クラウド・シェルのパブリック・エンドポイントを使用してOCI GoldenGateデプロイメントに接続するには、デプロイメントURLのみが必要です。デプロイメントURL (コンソールURL)は、デプロイメントの詳細ページで確認できます。
プライベート・デプロイメントへの接続
デプロイメントにプライベート・エンドポイントがある場合は、クラウド・シェル・ネットワーキングを使用してデプロイメントにアクセスできるネットワークにクラウド・シェルを接続するか、要塞、要塞セッションおよびSSHトンネルを作成できます。
デフォルトでは、クラウド・シェル管理パブリック・ネットワークを有効にしていないかぎり、クラウド・シェルはテナンシ・ホーム・リージョンのOCI内部リソースへのネットワーク・アクセスを制限します。管理者は、クラウド・シェル・パブリック・ネットワークを有効にするようにアイデンティティ・ポリシーを構成する必要があります。詳細は、クラウド・シェル・ネットワーキングを参照してください。
管理クライアントでプライベートOCI GoldenGateデプロイメントに接続するには:
-
Oracle Cloudコンソールのグローバル・ナビゲーション・バーで、「開発者ツール」、「クラウド・シェル」の順に選択します。
ノート:クラウド・シェルに初めて接続する場合は、接続に数分かかる場合があります。
-
(オプション)次のコマンドを実行してSSHキーを生成します。要塞の作成時にキーを生成する場合は、このステップをスキップできます。
ssh-key gen -t rsaデフォルトのファイル名を維持し、プロンプトが表示されてからもパスフレーズを入力しないようにします。秘密キーは
~/ssh/id_rsaにあり、公開キーは~/ssh/id_rsa.pubにあります。 -
「デプロイメントの詳細」ページで、デプロイメントのパブリックIPおよびサブネット情報をメモしておきます。
-
要塞の作成:
-
Oracle Cloudコンソールのナビゲーション・メニューから、「アイデンティティとセキュリティ」、「要塞」の順に選択します。
-
要塞ページで、「要塞の作成」を選択します。
-
「要塞の作成」ページで名前を入力し、デプロイメントが存在する場所と同じサブネットを選択します。
-
CIDRブロック許可リストに、
0.0.0.0/0と入力します。 -
「要塞の作成」を選択します。
-
-
要塞が「アクティブ」になったら、セッションを作成します。
-
要塞の詳細ページで、「セッションの作成」を選択します。
-
「セッションの作成」ページの「セッション・タイプ」で、「SSHポート転送セッション」を選択します。
-
「セッションの名前」を入力します。
-
「次 を使用してターゲットホストに接続」で、「IPアドレス」を選択し、デプロイメントのプライベートIPアドレスを入力します。
-
「ポート」に、
443と入力します。 -
「SSHキーの追加」で、次のいずれかのオプションを選択します。
-
SSHキーを貼り付け、前述のステップ2でクラウド・シェルで作成された公開キー(
(~/ssh/id_rsa.pub)の内容を貼り付けます。 -
SSHキー・ペアを生成します
-
-
「セッションの作成」を選択します。
-
-
セッションがアクティブになったら、その「アクション」メニュー(省略記号アイコン)から「SSHコマンドの表示」を選択します。
-
「SSHコマンドの表示」ダイアログで、
<private-key>のかわりに秘密キーへのパス(~/ssh/id_rsa)を入力し、<local-port>を、要塞に接続を転送するクラウド・シェルのポートに置き換えます。ノート:クラウド・シェルでは、
sudoアクセス権を持つ特権ポートでの ポート転送は許可されないため、7443などの権限のないポートを使用する必要があります。コマンドをフォアグラウンドで1回実行して要塞ホストをknown_hostsに追加した後、次回バックグラウンドで実行できるように、コマンドの最後にアンパサン(&)を追加できます。 -
コマンドをコピーし、クラウド・シェルで実行します。
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についてさらに学習: