cURL
Setup a Data Replication Environment Using cURL
Copy and use the following cURL script to set up Oracle GoldenGate data
replication environment on an pre-installed database.
Note:
The given sample script uses names and values of database server, parameter values, Extract, Replicat, and other processes. You must change these values according to your environment for this script to work.
# --
# -- 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'
# ----------------------------------------------------------------------------------------------------
Check the Statistical Reports Using cURL
Copy and use the following cURL script to check the statistical data for the
DDL and DML operations.
Note:
The given sample script uses names and values of database server, parameter values, Extract, Replicat, and other processes. You must change these values according to your environment for this script to work.
# --
# -- 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
# ----------------------------------------------------------------------------------------------------
Delete the Replication Environment
Copy and use the following cURL script to delete the data replication
environment after you have tested it and do not need it.
Note:
The given sample script uses names and values of database server, parameter values, Extract, Replicat, and other processes. You must change these values according to your environment for this script to work.
# --
# -- 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'