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'