cURL
cURLを使用したデータ・レプリケーション環境の設定
次のcURLスクリプトをコピーして使用し、インストール済のデータベースにOracle GoldenGateデータ・レプリケーション環境を設定します。
ノート:
サンプル・スクリプトでは、データベース・サーバーの名前と値、パラメータ値、Extract、Replicatおよびその他のプロセスを使用します。このスクリプトを機能させるには、環境に応じてこれらの値を変更する必要があります。
# --
# -- 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":"xxxxxx"}' | 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 UserIdAlias GGSOUTH to connect to the Database instance DBSOUTH
curl -s -k -X POST https://south:9101/services/v2/credentials/OracleGoldenGate/ggsouth \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"userid":"ggadmin@dbsouth","password":"xxxxxx"}' | jq '.messages'
curl -s -k -X GET https://south:9101/services/v2/credentials/OracleGoldenGate/ggsouth \
-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 .'response'
# Add Checkpointtable on target database GGSOUTH
curl -s -k -X POST https://south:9101/services/v2/connections/OracleGoldenGate.ggsouth/tables/checkpoint \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"operation":"add","name":"ggadmin.ggs_checkpointtable"}' | jq '.messages'
curl -s -k -X POST https://south:9101/services/v2/connections/OracleGoldenGate.ggsouth/tables/checkpoint \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"operation":"info","name":"ggadmin.ggs_checkpointtable"}' | jq '.messages'
# Add Heartbeattable on target database GGSOUTH
curl -s -k -X POST https://south:9101/services/v2/connections/OracleGoldenGate.ggsouth/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.ggsouth/tables/heartbeat \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.response'
# ----------------------------------------------------------------------------------------------------
# --
# -- 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"
,"EXTTRAIL north/ea"
,"DDL INCLUDE MAPPED"
,"DDLOPTIONS REPORT"
,"REPORTCOUNT EVERY 10 MINUTES, RATE"
,"WARNLONGTRANS 15MINUTES, CHECKINTERVAL 5MINUTES"
,"TABLE hr.*;"
]
,"source": "tranlogs"
,"credentials":{"alias":"ggnorth"}
,"registration": {"optimized": false}
,"begin":"now"
,"targets":[{"name":"ea", "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
# --
# ----------------------------------------------------------------------------------------------------
curl -s -k -X POST https://north:9002/services/v2/sources/DPNS \
-H 'Content-Type: application/json' \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"description": "Region: From: North, To: South"
,"name": "DPNS"
,"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'
curl -s -k -X GET https://north:9002/services/v2/sources/DPNS \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.response'
# ----------------------------------------------------------------------------------------------------
# --
# -- Add Replicat at target Database GGSOUTH
# --
# ----------------------------------------------------------------------------------------------------
curl -s -k -X POST https://south:9101/services/v2/replicats/REPN \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"description":"Replicat - Region South"
,"config":["REPLICAT repn"
,"USERIDALIAS ggsouth DOMAIN OracleGoldenGate"
,"DDL INCLUDE MAPPED"
,"DDLOPTIONS REPORT"
,"DDLERROR DEFAULT, DISCARD"
,"REPORTCOUNT EVERY 10 MINUTES, RATE"
,"REPERROR (DEFAULT, DISCARD)"
,"MAP hr.*, TARGET hr.*;"
]
,"credentials": {"alias": "ggsouth"}
,"mode": {"parallel":true,"type": "nonintegrated"}
,"source": {"name": "da", "path": "north"}
,"checkpoint":{"table": "ggadmin.ggs_checkpointtable"}
,"status": "running"
}' | jq '.messages'
curl -s -k -X GET https://south:9101/services/v2/replicats/REPN \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.response'
# ----------------------------------------------------------------------------------------------------
cURLを使用した統計レポートの確認
次のcURLスクリプトをコピーして使用し、DDLおよびDML操作の統計データを確認します。
ノート:
サンプル・スクリプトでは、データベース・サーバーの名前と値、パラメータ値、Extract、Replicatおよびその他のプロセスを使用します。このスクリプトを機能させるには、環境に応じてこれらの値を変更する必要があります。
# --
# -- 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 status:"
curl -s -k -X GET https://north:9002/services/v2/sources/DPNS \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.response.status'
curl -s -k -X GET https://north:9002/services/v2/sources/DPNS/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 " "
echo "------------------------------------------------------------------------------------------"
echo "--"
echo "-- Replicat REPN "
echo "--"
echo "------------------------------------------------------------------------------------------"
echo " "
echo "Replicat REPN status:"
curl -s -k -X GET https://south:9101/services/v2/replicats/REPN \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.response.status'
echo "Replicat REPN lag:"
curl -s -k -X POST https://south:9101/services/v2/replicats/REPN/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 "Replicat REPN statistics:"
curl -s -k -X POST https://south:9101/services/v2/replicats/REPN/command \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"command":"STATS", "arguments":"TOTAL"}' \
| jq '.response.reply' | sed 's/\\n/\n/g' | sed 's/\\t/\t/g'| grep -v OKNODOT
exit
# ----------------------------------------------------------------------------------------------------
レプリケーション環境の削除
次のcURLスクリプトをコピーして使用し、テスト後に不要になったデータ・レプリケーション環境を削除します。
ノート:
サンプル・スクリプトでは、データベース・サーバーの名前と値、パラメータ値、Extract、Replicatおよびその他のプロセスを使用します。このスクリプトを機能させるには、環境に応じてこれらの値を変更する必要があります。
# --
# -- stop & Delete Replicat
# --
# ----------------------------------------------------------------------------------------------------
curl -s -k -X PATCH https://south:9101/services/v2/replicats/REPN \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"status":"stopped"}' | jq '.messages'
curl -s -k -X DELETE https://south:9101/services/v2/replicats/REPN \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.messages'
# ----------------------------------------------------------------------------------------------------
# --
# -- Stop & Delete DistPath
# --
# ----------------------------------------------------------------------------------------------------
curl -s -k -X PATCH https://north:9002/services/v2/sources/DPNS \
-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 \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | 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'
# ----------------------------------------------------------------------------------------------------
# --
# -- 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 Checkpointtable at Database GGSOUTH
curl -s -k -X POST https://south:9101/services/v2/connections/OracleGoldenGate.ggsouth/tables/checkpoint \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' \
-d '{"operation":"delete","name":"ggadmin.ggs_checkpointtable"}' | 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 Heartbeattable at Database GGSOUTH
curl -s -k -X DELETE https://south:9101/services/v2/connections/OracleGoldenGate.ggsouth/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 DELETE https://south:9101/services/v2/credentials/OracleGoldenGate/ggsouth \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Basic Z2dtYTpHR21hXzIzYWk=' | jq '.messages'
# --------------------------------------------------------------------------------------------------
# --
# -- Delete Trail Files
# --
# ----------------------------------------------------------------------------------------------------
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": "da","path": "north/"}]
,"useCheckpoints": false
,"keep": [{"type": "min","units": "files","value": 0}]
}' | jq '.messages'