Oracle DatabaseのためのOracle GoldenGate Classic Architectureのアップグレード
ここでは、最小限のアップグレードを実行するための手順を説明します。
始める前に、次の準備情報を必ず確認しておいてください。
ノート:
統合キャプチャを使用し、トリガーベースのDDLキャプチャから新しいネイティブDDLキャプチャにアップグレードする場合、要求されるまでDDLトリガーを削除しないでください。Extractでは、REDOのCOMPATIBLE
レベルまでDDLをマイニングする必要があります。たとえば、データベースがアップグレードされたときにExtractが1週間遅れている場合、ExtractはネイティブDDLキャプチャにすぐには切り替わりません。以前のREDOの処理がまず行われ、その後、ExtractはネイティブDDLキャプチャに自動的にアップグレードされます。
-
GGSCIで次のコマンドを使用して、Extractの開始時にリストアが必要になる可能性のある最も古いアーカイブ・ログを判断します。
Recovery Checkpoint
フィールドに、リカバリに必要な最も古いログが表示されます。GGSCI> INFO EXTRACT
group
, SHOWCH
アップグレード・アクティビティはピーク時間外に実行することをお薦めします。実行時間の長いトランザクションがある場合、ソース・システムで、Extractを停止した時点で最も古いオープン・トランザクションの最初のレコードがシステムではなくログにあると、新しいExtractが、バインド・リカバリ・チェックポイントではなく通常のリカバリ・チェックポイントから処理を開始する可能性があります。
Extractの再起動にかかる時間は、Extractを停止した時点でコミットされていないデータの量と直接関係します。
次の2つのオプションがあります。
-
アーカイブを、
INFO EXTRACT
と表示されているリカバリ・チェックポイントで示されている時点までリストアします。 -
アップグレードしているExtractに適用されるトランザクションで、長時間実行されているものを消去します。これは、トランザクションをスキップするか、コミット済トランザクションとして強制的に証跡に書き込むことで実行します。トランザクションをスキップするとデータが失われる可能性があり、トランザクションを強制的に証跡に書き込むと、トランザクションのロールバック時に、不要なデータが追加される可能性があります。トランザクションのスキップまたは強制を実行するには、次のステップに従います。
-
GGSCIで、次のコマンドを使用してオープン・トランザクションを表示します。クリーンアップする任意のトランザクションのトランザクションIDを記録します。
GGSCI> SEND EXTRACT group, SHOWTRANS
-
SEND EXTRACT
コマンドで古いトランザクションをクリーンアップしますが、トランザクションをスキップするにはSKIPTRANS
オプションを、コミット済トランザクションとして現在の状態を強制的に証跡に書き込むにはFORCETRANS
オプションを使用します。GGSCI> SEND EXTRACT group, {SKIPTRANS | FORCETRANS} transaction_ID [THREAD n] [FORCE]
-
長時間実行されているトランザクションのクリーンアップが終了したら、バインド・リカバリ・チェックポイントを強制します。
GGSCI> SEND EXTRACT group, BR BRCHECKPOINT IMMEDIATE
ノート:
スキップまたは強制されたトランザクションはバインド・リカバリ・チェックポイントからクリーンアップされず、SHOWTRANS
が再度発行された場合に表示されるため、強制されたチェックポイントが必要です。これは既知の問題です。SEND EXTRACT
の詳細は、『Oracle GoldenGateリファレンス』を参照してください。
-
-
-
(OracleのクラシックExtractのみ)クラシックExtractを使用している場合は、DMLとDDLが停止した後で次の問合せを実行します。この問合せでは、すべてのトランザクションが確実に処理されるために必要な最小SCNを指定します。オープンしているトランザクションの最も古いSCNを問い合せます。オープンしているトランザクションがない場合は、データベースの現在のSCNを使用できます。
SELECT MIN(SCN) AS INSTANTIATION_SCN FROM (SELECT MIN(START_SCN) AS SCN FROM gv$transaction UNION ALL SELECT CURRENT_SCN FROM gv$database);
ノート:
Oracle GoldenGateのアップグレードを行う際、DML操作は停止しなくてもかまいませんが、DDLやその他のアップグレードSQLスクリプトなどのSQLを実行する必要がある場合、DMLを停止する必要があります。問合せの結果は次のとおりです。
YES = reached the logend
-
(OracleのクラシックExtractのみ)問合せの結果からSCNを記録します。
-
(Oracleのソース・システム用クラシックExtractのみ)取得するREDOデータがこれ以上ないことが示されるまで、
LOGEND
オプションを指定してSEND EXTRACT
コマンドを発行します。統合Extractを使用している場合は、このステップは省略してかまいません。(ソース・システム。統合Extractを使用している場合) Extractのリカバリ・チェックポイントが問合せ結果の現在のSCNを過ぎるまで待ちます。ExtractがチェックポイントでそのSCNを過ぎたかどうかを判別するには、Extractレポート・ファイルを表示します。
GGSCI> SEND EXTRACT
group
LOGEND
-
(ソース・システム) GGSCIで、Extractとデータ・ポンプを停止します。
GGSCI> STOP EXTRACT group
-
統合Extractを使用している場合は、このステップは省略してかまいません。クラシックExtractを使用している場合は、現在トリガー・ベースのDDLキャプチャ・サポートを使用している場合にのみ、ソース・システムで次のステップに従ってください。
-
SQL*Plusを実行し、
sysdba
権限を持つユーザーとしてログインします。 -
エラー(ORA-04021)を回避するために、それ以前にDDLを発行したすべてのセッションを切断します。このアップグレード中にDDLセッションが開始されないことを確認してください。
-
Oracle GoldenGateディレクトリから、
ddl_disable
スクリプトを実行して、Oracle GoldenGate DDLトリガーを無効にします。 -
ddl_remove
スクリプトを実行してOracle GoldenGate DDLトリガーおよびその他の関連オブジェクトを削除し、Oracle GoldenGate DDLスキーマの名前を指定します。デバッグでの使用に備え、スクリプト出力を記録する
ddl_remove_spool.txt
ログ・ファイル、および現在のユーザーの環境設定を記録するddl_remove_set.txt
ファイルが生成されます。 -
marker_remove
スクリプトを実行してOracle GoldenGateマーカー・サポート・システムを削除し、Oracle GoldenGate DDLスキーマの名前を指定します。デバッグでの使用に備え、スクリプトの出力を記録する
marker_remove_spool.txt
ファイル、およびmarker_remove_set.txt
ファイルが生成されます。
-
-
(ターゲット・システム) GGSCIで、すべてのReplicatプロセスを停止します。
GGSCI> STOP REPLICAT group
-
(ソースおよびターゲット・システム) GGSCIで、ソース・システムとターゲット・システムのManagerを停止します。
GGSCI> STOP MANAGER
-
ターゲット・システムのみを更新する場合、またはソース側の前にターゲット側を更新する場合は、必ず
STOP
を使用して、すべてのデータ・ポンプ、およびそのターゲット上で実行されている、任意のソースについてターゲットに直接書き込むプライマリExtractを停止します。開始されている静的コレクタがあれば、同様に停止する必要があります。server
プロセスが実行されていないことを確認するには、ps
やgrep
などのプロセスをチェックするシェル・コマンドを使用します。 -
アウトオブプレース・アップグレードを使用する必要があります。アウトオブプレース・アップグレードでは、アップグレードの実行中に同時に既存のインストールも保持されます。詳細は、Oracle GoldenGateのインストールのOracle DatabaseへのOracle GoldenGate Classic ArchitectureのインストールとClassic Architectureのパッチ適用を参照してください。
-
GGSCIで、次の順序に従って、ソース・システムとターゲット・システムのOracle GoldenGateプロセスを開始します。
GGSCI> START MANAGER GGSCI> START EXTRACT group GGSCI> START EXTRACT pump GGSCI> START REPLICAT group
ログ・ファイルをリストアする必要がある場合、Extractはリストアが必要なログを示すエラーで異常終了します。ログをそのログまでリストアし、Extractを再起動します。
パラメータ・ファイルのコピーを作成してパラメータを変更する場合は、古いパラメータ・ファイルが格納されていたOracle GoldenGateディレクトリに新しいパラメータ・ファイルを移動し、古いパラメータ・ファイルと同じ名前に変更します。大文字と小文字を区別する場合は、パラメータ・ファイルにNOUSEANSISQLQUOTES
を追加するか、convprm
ユーティリティを実行し、必要に応じて引用符を変換します。詳細は、「文字セット変換を使用している場合のアップグレードの考慮事項」を参照してください。
古いOracle GoldenGateリリースのアップグレードに関する考慮事項
-
(ターゲット・システム。バージョン11.2.1.0.0以前からReplicatをアップグレードする場合)各ターゲット・システムにおいてGGSCIで次のコマンドを発行し、そのシステムのReplicatチェックポイント表をアップグレードします。このステップによって表定義が更新され、Oracle GoldenGate 18c (18.1.0)リリースをサポートする列が追加されます。
GGSCI> DBLOGIN [{SOURCEDB} data_source] | [, database@host:port] | {USERID {/ | user id} [, PASSWORD password] [algorithm ENCRYPTKEY {keyname | DEFAULT}] |USERIDALIAS alias [DOMAIN domain]} GGSCI> UPGRADE CHECKPOINTTABLE [owner.table]
チェックポイント表がGLOBALSファイル内の
CHECKPOINTTABLE
にリストされている名前で作成された場合は、owner.table
を省略できます。 -
(ソース・システム)ソース・システムで、
ADD TRADATA
を使用して表にサプリメンタル・ロギングが追加される場合は、ulg.sql script
をsysdba
として実行します。このスクリプトは、表レベルの既存のサプリメンタル・ログ・グループを、新しいリリースで必要な新しい形式に変換します。このスクリプトはエラーなしで実行する必要があります。エラーが発生した場合は、Oracleサポートに連絡してください。ADD SCHEMATRANDATA
を使用している場合は、これは必要ありません。