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'
	 
# --------------------------------------------------------------------------------------------------