REST APIコマンドを使用したデータ分散トポロジのデータ・レプリケーション
REST APIコマンドを使用したブロードキャスト・トポロジ・ベースのデータ・レプリケーションの作成
次のcURLスクリプトをコピーして使用し、インストール済のデータベースおよびOracle GoldenGateデプロイメントにOracle GoldenGateデータ・レプリケーション環境を設定します。
ノート:
サンプル・スクリプトでは、データベース・サーバーの名前と値、パラメータ値、Extract、Replicatおよびその他のプロセスを使用します。このスクリプトを機能させるには、環境に応じてこれらの値を変更する必要があります。#!/bin/bash
# ----------------------------------------------------------------------------------------------------
# --
# -- Create USERIDALIAS to connection from GoldenGate to the Databases
# --
# ----------------------------------------------------------------------------------------------------
# Add UserIdAlias GGNORTH to connect to the Database instance DBNORTH
curl -s -k -X POST https://north:9001/services/v2/credentials/OracleGoldenGate/ggnorth \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"userid":"ggadmin@dbnorth","password":"ggadmin"}' | jq '.messages'
curl -s -k -X GET https://north:9001/services/v2/credentials/OracleGoldenGate/ggnorth \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.response'
# ----------------------------------------------------------------------------------------------------
# --
# -- Add Schematranda
# -- Add Heartbeattable
# -- Add Checkpointtables
# --
# ----------------------------------------------------------------------------------------------------
# Add Supplemental Logging to Database Schema HR (Schematrandata) on source database GGNORTH
curl -s -k -X POST https://north:9001/services/v2/connections/OracleGoldenGate.ggnorth/trandata/schema \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"operation":"add","schemaName":"hr"}' | jq '.messages'
curl -s -k -X POST https://north:9001/services/v2/connections/OracleGoldenGate.ggnorth/trandata/schema \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"operation":"info", "schemaName":"hr"}' | jq '.response'
# Add Heartbeattable on source database GGNORTH
curl -s -k -X POST https://north:9001/services/v2/connections/OracleGoldenGate.ggnorth/tables/heartbeat \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"frequency":60}' | jq '.messages'
curl -s -k -X GET https://north:9001/services/v2/connections/OracleGoldenGate.ggnorth/tables/heartbeat \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq .'messages'
# ----------------------------------------------------------------------------------------------------
# --
# -- Add Extracts on source database GGNORTH
# --
# ----------------------------------------------------------------------------------------------------
curl -s -k -X POST https://north:9001/services/v2/extracts/EXTN \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"description":"Extract - Region North"
,"config":["EXTRACT EXTN"
,"USERIDALIAS ggnorth"
,"DDL INCLUDE MAPPED"
,"DDLOPTIONS REPORT"
,"REPORTCOUNT EVERY 10 MINUTES, RATE"
,"WARNLONGTRANS 15MINUTES, CHECKINTERVAL 5MINUTES"
,"EXTTRAIL north/ea"
,"TABLE hr.job_history_a;"
,"EXTTRAIL north/eb"
,"TABLE hr.job_history_b;"
,"EXTTRAIL north/ec"
,"TABLE hr.job_history_c;"
]
,"source": "tranlogs"
,"credentials":{"alias":"ggnorth"}
,"registration": {"optimized": false}
,"begin":"now"
,"targets":[{"name":"ea", "path":"north/"}
,{"name":"eb", "path":"north/"}
,{"name":"ec", "path":"north/"}
]
,"status":"running"
}' | jq '.messages'
curl -s -k -X GET https://north:9001/services/v2/extracts/EXTN \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.response'
# ----------------------------------------------------------------------------------------------------
# --
# -- Add DistPath from source to target system
# --
# ----------------------------------------------------------------------------------------------------
#ea: north -> A
curl -s -k -X POST https://north:9002/services/v2/sources/DPNS_A \
-H 'Content-Type: application/json' \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"description": "Region: From: North, To: A"
,"name": "DPNS_A"
,"source":
{"uri": "trail://north:9002/services/v2/sources?trail=north/ea"
,"details": {"encryption": {"algorithm": "NONE"}}
}
,"target":
{"uri": "wss://south:9103/services/v2/targets?trail=north/da"
,"authenticationMethod": {"certificate": "default"}
,"details":
{"trail": {"sizeMB": 100}
,"encryption": {"algorithm": "NONE"}
,"compression": {"enabled": false}
}
}
,"options":
{"eofDelayCSecs": 10
,"checkpointFrequency": 10
,"critical": false
,"autoRestart": {"retries": 10, "delay": 2}
,"streaming": true
}
,"begin": "now"
,"encryptionProfile": "LocalWallet"
,"status": "running"
}' | jq '.messages'
#eb: north -> B
curl -s -k -X POST https://north:9002/services/v2/sources/DPNS_B \
-H 'Content-Type: application/json' \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"description": "Region: From: North, To: B"
,"name": "DPNS_B"
,"source":
{"uri": "trail://north:9002/services/v2/sources?trail=north/eb"
,"details": {"encryption": {"algorithm": "NONE"}}
}
,"target":
{"uri": "wss://south:9103/services/v2/targets?trail=north/db"
,"authenticationMethod": {"certificate": "default"}
,"details":
{"trail": {"sizeMB": 100}
,"encryption": {"algorithm": "NONE"}
,"compression": {"enabled": false}
}
}
,"options":
{"eofDelayCSecs": 10
,"checkpointFrequency": 10
,"critical": false
,"autoRestart": {"retries": 10, "delay": 2}
,"streaming": true
}
,"begin": "now"
,"encryptionProfile": "LocalWallet"
,"status": "running"
}' | jq '.messages'
curl -s -k -X POST https://north:9002/services/v2/sources/DPNS_C \
-H 'Content-Type: application/json' \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"description": "Region: From: North, To: C"
,"name": "DPNS_C"
,"source":
{"uri": "trail://north:9002/services/v2/sources?trail=north/ec"
,"details": {"encryption": {"algorithm": "NONE"}}
}
,"target":
{"uri": "wss://south:9103/services/v2/targets?trail=north/dc"
,"authenticationMethod": {"certificate": "default"}
,"details":
{"trail": {"sizeMB": 100}
,"encryption": {"algorithm": "NONE"}
,"compression": {"enabled": false}
}
}
,"options":
{"eofDelayCSecs": 10
,"checkpointFrequency": 10
,"critical": false
,"autoRestart": {"retries": 10, "delay": 2}
,"streaming": true
}
,"begin": "now"
,"encryptionProfile": "LocalWallet"
,"status": "running"
}' | jq '.messages'
curl -s -k -X GET https://north:9002/services/v2/sources \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.response'
curl -s -k -X GET https://north:9002/services/v2/sources/DPNS_A \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.response'
curl -s -k -X GET https://north:9002/services/v2/sources/DPNS_B \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.response'
curl -s -k -X GET https://north:9002/services/v2/sources/DPNS_C \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.response'
REST APIコマンドを使用したブロードキャスト・トポロジ・ベースのデータ・レプリケーションにおける統計の確認
ノート:
サンプル・スクリプトでは、データベース・サーバーの名前と値、パラメータ値、Extract、Replicatおよびその他のプロセスを使用します。このスクリプトを機能させるには、環境に応じてこれらの値を変更する必要があります。#!/bin/bash
# ----------------------------------------------------------------------------------------------------
# --
# -- Create USERIDALIAS to connection from GoldenGate to the Databases
# --
# ----------------------------------------------------------------------------------------------------
echo " "
echo "------------------------------------------------------------------------------------------"
echo "--"
echo "-- Extract EXN "
echo "--"
echo "------------------------------------------------------------------------------------------"
echo " "
echo "Extract EXTN status:"
curl -s -k -X GET https://north:9001/services/v2/extracts/EXTN \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.response.status'
echo "Extract EXTN lag:"
curl -s -k -X POST https://north:9001/services/v2/extracts/EXTN/command \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"command": "GETLAG", "isReported": true}' | jq '.response.reply' \
| sed 's/\\n/\n/g' | sed 's/\\t/\t/g'| grep -v OKNODOT
echo "Extract EXTN statistics:"
curl -s -k -X POST https://north:9001/services/v2/extracts/EXTN/command \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"command":"STATS", "arguments":"TOTAL"}' \
| jq '.response.reply' | json_reformat | sed 's/\\n/\n/g' | sed 's/\\t/\t/g'| grep -v OKNODOT
echo " "
echo "------------------------------------------------------------------------------------------"
echo "--"
echo "-- DistPath DPNS"
echo "--"
echo "------------------------------------------------------------------------------------------"
echo " "
echo "DistPath DPNS_A status:"
curl -s -k -X GET https://north:9002/services/v2/sources/DPNS_A \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.response.status'
echo "DistPath DPNS_A statistics:"
curl -s -k -X GET https://north:9002/services/v2/sources/DPNS_A/stats \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
| jq '.response' | json_reformat | sed 's/\\n/\n/g' | sed 's/\\t/\t/g'| grep -v OKNODOT
echo "DistPath DPNS_B status:"
curl -s -k -X GET https://north:9002/services/v2/sources/DPNS_B \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.response.status'
echo "DistPath DPNS_B statistics:"
curl -s -k -X GET https://north:9002/services/v2/sources/DPNS_B/stats \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
| jq '.response' | json_reformat | sed 's/\\n/\n/g' | sed 's/\\t/\t/g'| grep -v OKNODOT
echo "DistPath DPNS_C status:"
curl -s -k -X GET https://north:9002/services/v2/sources/DPNS_C \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.response.status'
echo "DistPath DPNS_C statistics:"
curl -s -k -X GET https://north:9002/services/v2/sources/DPNS_C/stats \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
| jq '.response' | json_reformat | sed 's/\\n/\n/g' | sed 's/\\t/\t/g'| grep -v OKNODOT
exit
# ----------------------------------------------------------------------------------------------------
REST APIコマンドを使用したブロードキャスト・トポロジ設定の削除
ノート:
サンプル・スクリプトでは、データベース・サーバーの名前と値、パラメータ値、Extract、Replicatおよびその他のプロセスを使用します。このスクリプトを機能させるには、環境に応じてこれらの値を変更する必要があります。#!/bin/bash
# ----------------------------------------------------------------------------------------------------
# --
# -- Stop & Delete DistPath
# -- Purge Target Trail File
# --
# ----------------------------------------------------------------------------------------------------
curl -s -k -X PATCH https://north:9002/services/v2/sources/DPNS_A \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"status":"stopped"}' | jq '.messages'
curl -s -k -X PATCH https://north:9002/services/v2/sources/DPNS_B \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"status":"stopped"}' | jq '.messages'
curl -s -k -X PATCH https://north:9002/services/v2/sources/DPNS_C \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"status":"stopped"}' | jq '.messages'
curl -s -k -X DELETE https://north:9002/services/v2/sources/DPNS_A \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.messages'
curl -s -k -X DELETE https://north:9002/services/v2/sources/DPNS_B \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.messages'
curl -s -k -X DELETE https://north:9002/services/v2/sources/DPNS_C \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.messages'
curl -s -k -X POST https://north:9001/services/v2/commands/execute \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"name": "purge"
,"purgeType": "trails"
,"trails": [{"name": "da","path": "north/"}]
,"useCheckpoints": false
,"keep": [{"type": "min","units": "files","value": 0}]
}' | jq '.messages'
curl -s -k -X POST https://north:9001/services/v2/commands/execute \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"name": "purge"
,"purgeType": "trails"
,"trails": [{"name": "db","path": "north/"}]
,"useCheckpoints": false
,"keep": [{"type": "min","units": "files","value": 0}]
}' | jq '.messages'
curl -s -k -X POST https://north:9001/services/v2/commands/execute \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"name": "purge"
,"purgeType": "trails"
,"trails": [{"name": "dc","path": "north/"}]
,"useCheckpoints": false
,"keep": [{"type": "min","units": "files","value": 0}]
}' | jq '.messages'
# ----------------------------------------------------------------------------------------------------
# --
# -- Stop & Delete Extracts
# --
# ----------------------------------------------------------------------------------------------------
curl -s -k -X PATCH https://north:9001/services/v2/extracts/EXTN \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"status":"stopped"}' | jq '.messages'
curl -s -k -X DELETE https://north:9001/services/v2/extracts/EXTN \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.messages'
curl -s -k -X POST https://north:9001/services/v2/commands/execute \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"name": "purge"
,"purgeType": "trails"
,"trails": [{"name": "ea","path": "north/"}]
,"useCheckpoints": false
,"keep": [{"type": "min","units": "files","value": 0}]
}' | jq '.messages'
curl -s -k -X POST https://north:9001/services/v2/commands/execute \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"name": "purge"
,"purgeType": "trails"
,"trails": [{"name": "eb","path": "north/"}]
,"useCheckpoints": false
,"keep": [{"type": "min","units": "files","value": 0}]
}' | jq '.messages'
curl -s -k -X POST https://north:9001/services/v2/commands/execute \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"name": "purge"
,"purgeType": "trails"
,"trails": [{"name": "ec","path": "north/"}]
,"useCheckpoints": false
,"keep": [{"type": "min","units": "files","value": 0}]
}' | jq '.messages'
# ----------------------------------------------------------------------------------------------------
# --
# -- Delete Schematranda
# -- Delete Checkpointtable
# -- Delete Heartbeattables
# --
# ----------------------------------------------------------------------------------------------------
# Delete SchemaTrandata at Database GGNORTH
curl -s -k -X POST https://north:9001/services/v2/connections/OracleGoldenGate.ggnorth/trandata/schema \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"operation":"delete","schemaName":"hr"}' | jq '.messages'
# Delete Heartbeattable at Database GGNORTH
curl -s -k -X DELETE https://north:9001/services/v2/connections/OracleGoldenGate.ggnorth/tables/heartbeat \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.messages'
# ----------------------------------------------------------------------------------------------------
# --
# --Delete USERIDALIAS from GoldenGate
# --
# ----------------------------------------------------------------------------------------------------
curl -s -k -X DELETE https://north:9001/services/v2/credentials/OracleGoldenGate/ggnorth \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.messages'
curl -s -k -X GET https://north:9001/services/v2/credentials/OracleGoldenGate \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.messages'
# --------------------------------------------------------------------------------------------------