2 Oracle DatabaseのためのOracle GoldenGateのアップグレード
内容は次のとおりです。
- Oracle Database用のアップグレード手順の概要
- アップグレード手順の範囲について
- Oracle GoldenGateディストリビューションの理解と入手
- DDLサポートを含む構成のアップグレード
- Oracle Berkeley DBを含む構成のアップグレード
- Oracle DatabaseのためのOracle GoldenGate Classic Architectureのアップグレード
- Oracle GoldenGate Microservices Architecture12c (12.3.0.1)から18c (18.1.0)へのアップグレード
Webインタフェースを使用してOracle GoldenGate 12cを18cリリースにアップグレードするには、次に示す手順を実行します。 - Microservices Architectureのアップグレード - GUIベース
Microservices architectureのアップグレード手順について説明します。
Oracle Database用のアップグレード手順の概要
このアップグレード手順では、更新されたコア機能のみをデプロイする最小限のアップグレードを実行します。統合されたReplicat、更新されたグローバリゼーション・サポート、新しいSQL-92のデフォルト、セキュリティ機能の拡張などの新機能は実装しません。問題が発生した場合に簡単にトラブルシューティングできるように、最初は最小限のアップグレードを実行することをお薦めします。環境が正常にアップグレードされたことを確認したら、新機能を実装できます。
このアップグレード手順では、Oracle GoldenGateのアップグレード時に、ソースまたはターゲットのデータベースを同時にアップグレードする場合に実行する手順も考慮されています。次に示すアップグレード前要件が組み込まれています。
-
Oracle GoldenGateプロセスが、Oracle GoldenGate証跡にある現在のDMLおよびDDLデータすべての処理を完了できるようにします。
-
ネイティブDDLサポートがない場合はDDLトリガーを無効化します。
-
データベースとOracle GoldenGateを同時にアップグレードする場合は、最初にデータベースをアップグレードする必要があります。
アップグレード手順の範囲について
アップグレードを実行する前に、ExtractおよびReplicatのアップグレードに関して、次の情報を確認してください。ソースとターゲットの両方ではなく、どちらか1つのみをアップグレードする場合でも、アップグレードにはすべてのプロセスが関係します。どのコンポーネントをアップグレードするかに関係なく、すべてのプロセスをアップグレードの適切な順序で停止し、空になるまで証跡を処理する必要があります。
証跡ファイル・フォーマットを調整する必要がないように、ソースではなくターゲットからアップグレードを開始することをお薦めします。
Extractのアップグレードに関する考慮事項
トリガーベースのDDLサポートを使用している場合は、統合キャプチャのトリガーなしの新しいDDLサポートを使用する予定でも、DDLオブジェクトを再構築する必要があります。アップグレード後、Oracle GoldenGateが再度正常に実行されたら、トリガーとDDLオブジェクトを削除できます。DDLのアップグレードに関する考慮事項は、「DDLサポートを含む構成のアップグレード」を参照してください。
統合構成(1つのターゲットに対して多数のソースがある構成)で動作する複数のExtractプロセスをアップグレードする場合は、「Oracle DatabaseのためのOracle GoldenGate Classic Architectureのアップグレード」に示した手順を実行して、Extractを1つずつアップグレードします。
統合キャプチャを使用している場合は、アップグレード手順の適切な時点で、ローカルとリモートの証跡をロールオーバーする必要があります。11.2.1の統合Extract (バージョン1)では、TIMESTAMP WITH LOCAL TIME ZONE
データがUTCとして取得されますが、12c (12.3.0.1)の統合Extract (バージョン2)では、データベース・タイム・ゾーンのローカル時間として取得されます。
親トピック: アップグレード手順の範囲について
Replicatのアップグレードに関する考慮事項
すべてのReplicatインストールを同時にアップグレードする必要があります。全ターゲット・システムのすべてのReplicatグループにつながる証跡すべてを、アップグレード手順に従って、空になるまで処理することが重要です。
注意:
Replicatプロセス間でデータをパーティション化するための@RANGE
関数で使用されるハッシュ計算が変更されました。この変更は透過的であるため、アップグレードが指示に従って行われるかぎり、パラメータ・ファイルの行を再度パーティション化する必要はありません。データの継続性を保証するには、Replicatプロセスを停止する前に、全システムのすべてのReplicatプロセスで、アップグレード手順に従って、証跡の全データの処理が完了されるようにする必要があります。Replicatプロセスがすべて同時にアップグレードされない場合、またはアップグレード前に証跡が空にならない場合は、新しいハッシュ・メソッドの結果として行のパーティションが移動し、コリジョン・エラーが発生する可能性があります。
親トピック: アップグレード手順の範囲について
Oracle GoldenGateディストリビューションの理解と入手
Oracle Fusion Middlewareソフトウェアの入手方法の詳細は、『Oracle Fusion Middlewareのインストールのプランニング』の製品ディストリビューションの入手に関する項を参照してください。
Oracle Fusion Middleware製品の検索やダウンロードの詳細は、Oracle Technology Network (OTN)で、Oracle Fusion Middlewareダウンロード、インストールおよび構成のREADMEファイルを参照してください。
Oracle GoldenGateを入手するには、次の手順を実行します。
- Oracle Technology Network (
http://www.oracle.com/technetwork/middleware/fusion-middleware/downloads/index.html
)に移動します - インストールするOracle GoldenGate 18c (18.1.0)リリースを見つけます。
- ご使用のシステムに適したZIPファイルをダウンロードします。
DDLサポートを含む構成のアップグレード
この項では、現在のOracle GoldenGate環境でDDLサポートがアクティブ化されているときの考慮事項と実行する必要のある手順について説明します。Oracle GoldenGate 18c (18.1.0.0)のDDLサポートには、次の2つのオプションがあります。
-
統合モードでは、次の2つのDDLキャプチャ方法がサポートされています。
-
ソース・データベースがOracle 11.2.0.4以降の場合、DDL取得サポートはデータベース・ログマイニング・サーバーに統合されるため、データベースの
COMPATIBLE
パラメータが11.2.0.4以上に設定されていれば、Oracle GoldenGateのDDLトリガーおよびサポート・オブジェクトを使用する必要はありません。 -
ソース・データベースがOracle 11.2.0.4より前の場合、Extractが統合モードのときは、Oracle GoldenGateのトリガーとDDLサポート・オブジェクトを使用する必要があります。
-
-
クラシック・キャプチャでは、ソース・データベースのOracleのバージョン番号に関係なく、Oracle GoldenGateのDDLトリガーとサポート・オブジェクトを使用する必要があります。
表2-1に、考えられるDDLのアップグレード・パスとガイドラインを示します。
表2-1 Oracle GoldenGateへの有効なアップグレードパスおよびDDLサポートの要件
アップグレード元: | アップグレード先: トリガー・メソッドを使用したクラシック・キャプチャ | アップグレード先: 統合キャプチャ、トリガーなし(1) |
---|---|---|
トリガー・メソッドを使用したクラシック・キャプチャ(11.2.1のすべてのデータベース・バージョン) |
コンテナ・データベースには使用できません。 次のアップグレード手順を使用してOracle GoldenGateをアップグレードします。 |
コンテナ・データベースに使用できます。
|
トリガー・メソッドを使用した統合キャプチャ(11.2.1のすべてのデータベース・バージョン) |
コンテナ・データベースには使用できません。 DDLのアップグレード・パスはありません。 |
コンテナ・データベースに使用できます。
|
脚注 1 データベースを11.2.0.4または12.1へアップグレードすると、パッチ・セット・アップグレードの一環として、データ・ディクショナリのスナップショットがREDOストリームに自動的に取得されます。
Oracle Berkeley DBを含む構成のアップグレード
Oracle GoldenGateリリース12.1.2.1から12.3.0.1へのアップグレード時に、監視が有効化されていてPerformance Metrics Serverによってデータストアが作成されている場合は、アップグレードの実行前にデータストアを消去することがベスト・プラクティスです。データストアは、アップグレード後に再作成されます。データストアの消去方法の詳細は、『Oracle GoldenGate Microservices Architectureの使用』のデータストアの消去方法に関する項を参照してください。
Oracle GoldenGate 12.3.0.1以降、データストアに関連するすべての操作が削除され、Performance Metrics Serverによって管理されます。詳細は、「パフォーマンスの監視」を参照してください。
Oracle DatabaseのためのOracle GoldenGate Classic Architectureのアップグレード
ここでは、最小限のアップグレードを実行するための手順を説明します。
始める前に、次の準備情報を必ず確認しておいてください。
注意:
統合キャプチャを使用し、トリガーベースのDDLキャプチャから新しいネイティブDDLキャプチャにアップグレードする場合、要求されるまでDDLトリガーを削除しないでください。Extractは、REDOのCOMPATIBLE
レベルが11.2.0.4(以上)になるまでDDLをマイニングする必要があります。たとえば、データベースが11.2.0.4にアップグレードされたときにExtractが1週間遅れている場合、ExtractはネイティブDDLキャプチャにすぐには切り替わりません。11.2.0.4より前のREDOの処理がまず行われ、その後、ExtractはネイティブDDLキャプチャに自動的にアップグレードされます。
-
(ソース・システム) Extractを停止した時点で最も古いオープン・トランザクションの最初のレコードがシステムではなくログにある場合、新しいExtractは、バインド・リカバリ・チェックポイントではなく通常のリカバリ・チェックポイントから処理を開始することが必要な場合があります。GGSCIで次のコマンドを使用して、Extractの開始時にリストアが必要になる可能性のある最も古いアーカイブ・ログを判断します。
Recovery Checkpoint
フィールドに、リカバリに必要な最も古いログが表示されます。GGSCI> INFO EXTRACT
group
, SHOWCH
次の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 GoldenGate構成のオブジェクトにDMLとDDLの両方を生成するユーザー・アクティビティをすべて停止します。DMLとDDLを停止したら、次の問合せを実行します。この問合せでは、すべてのトランザクションが確実に処理されるために必要な最小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を停止する必要があります。
-
問合せ結果から現在のSCNを記録します。
-
(ソース・システム。クラシックExtractを現在使用している場合) GGSCIで、取得するREDOデータがこれ以上ないことが示されるまで、
LOGEND
オプションを指定したSEND EXTRACT
コマンドを発行します。(ソース・システム。統合Extractを使用している場合) Extractのリカバリ・チェックポイントが問合せ結果の現在のSCNを過ぎるまで待ちます。ExtractがチェックポイントでそのSCNを過ぎたかどうかを判別するには、Extractレポート・ファイルを表示します。
GGSCI> SEND EXTRACT
group
LOGEND
-
(ソース・システム) GGSCIで、Extractとデータ・ポンプを停止します。
GGSCI> STOP EXTRACT group
-
(ソース・システム。ターゲットをアップグレードしない場合)現時点ではターゲット・システムのReplicatをアップグレードしない場合は、Extractのパラメータ・ファイルに次のパラメータを追加して、ターゲットで実行されるOracle GoldenGateのバージョンを指定します。このパラメータを指定すると、Extractによって、古いバージョンのReplicatと互換性のある証跡のバージョンが書き込まれます。Extractのパラメータ・ファイルに変更を加える前に、ソース上でOracle GoldenGateパラメータ・ファイルのバックアップを作成してください
{EXTTRAIL | RMTTRAIL} file_name FORMAT RELEASE major.minor
-
(ソース・システム。現在、トリガーベースの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で、証跡のすべてのデータの処理が完了したことを示す"
At EOF
"ステータスが表示されるまで、STATUS
オプションを指定したSEND REPLICAT
コマンドを発行します。すべてのReplicatプロセスが"At EOF
"を戻すまで、すべてのターゲット・システムでこれを行う必要があります。GGSCI> SEND REPLICAT group STATUS
-
(ターゲット・システム) GGSCIで、すべてのReplicatプロセスを停止します。
GGSCI> STOP REPLICAT group
-
(ソースおよびターゲット・システム) GGSCIで、ソース・システムとターゲット・システムのManagerを停止します。
GGSCI> STOP MANAGER
-
ターゲット・システムのみを更新する場合、またはソース側の前にターゲット側を更新する場合は、必ず
STOP
を使用して、すべてのデータ・ポンプ、およびそのターゲット上で実行されている、任意のソースについてターゲットに直接書き込むプライマリExtractを停止します。開始されている静的コレクタがあれば、同様に停止する必要があります。server
プロセスが実行されていないことを確認するには、ps
やgrep
などのプロセスをチェックするシェル・コマンドを使用します。 -
(ソースおよびターゲット・システム)ソース・システムとターゲット・システムの現在のOracle GoldenGateインストール・ディレクトリと、クラスタ内の共有ドライブにインストールしたすべての作業ディレクトリ(該当する場合)をバックアップします。このディレクトリ内の証跡ファイルは再作成できるので、
dirdat
フォルダをバックアップする必要はありません。 -
ソースまたはターゲット、あるいは両方のデータベースをアップグレードする場合は、新しいバージョン向けのOracleデータベース・アップグレード手順に従って、この時点で実行します。アップグレード後にデータベースを起動してマウントしますが、Oracle GoldenGate構成内のオブジェクトに対するDMLまたはDDLトランザクションは許可しないでください。
-
(ソースおよびターゲット・システム)11.2.1より前のバージョンのOracle GoldenGateを使用している場合、既存のOracle GoldenGateディレクトリへの書込み権限をインストール・ユーザーに付与します。
たとえば、UNIXまたはLinuxでは、次のコマンドを実行します。
$ chmod -R u+w existing_Oracle_GoldenGate_directory
-
(ソースおよびターゲット・システム) Oracle Universal Installer (OUI)を使用して、ソース・システムとターゲット・システムに既存のOracle GoldenGateディレクトリ内に、Oracle GoldenGate 18c (18.1.0)をインストールします。OUIでのインストール時に、「Start Manager」オプションの選択を解除していることを確認してください。そうしないと、既存のパラメータ・ファイルが上書きされる可能性があります。手順は、『Oracle GoldenGateのインストール』のOracle DatabaseへのOracle GoldenGate Classic Architectureのインストールに関する項を参照してください。
注意:
サイレント・インストールではなく、アップグレード用の対話型OUIオプションを使用してインストールすることをお薦めします。
-
(ターゲット・システム。バージョン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
を省略できます。 -
(ソース・システム)ソース・システムで、
ulg.sql
スクリプトをsysdba
として実行します。このスクリプトは、既存のサプリメンタル・ログ・グループを新しいリリースで必要な新しい形式に変換します。この手順は、トリガーなしの新しいキャプチャ方法を使用する場合でも必要です。スクリプトはエラーなしで実行する必要があります。エラーが発生した場合は、Oracleサポートに連絡してください。 -
(ソースおよびターゲット・システム)証跡バージョン、チェックポイント・ストレージ形式、および統合キャプチャの更新では、次の手順を実行する必要があります。
-
GGSCIで、プライマリExtractプロセスと関連データ・ポンプExtractプロセスを新しい証跡シーケンス番号に変更します。コマンドは
Rollover performed
を返す必要があります。GGSCI> ALTER EXTRACT group ETROLLOVER GGSCI> ALTER EXTRACT primary-extract-group, ETROLLOVER GGSCI> ALTER EXTRACT pump-extract-group, ETROLLOVER
-
GGSCIで、プライマリExtractおよびデータ・ポンプに対して
DETAIL
を指定したINFO EXTRACT
コマンドを発行して、証跡シーケンス番号を確認します。GGSCI> INFO EXTRACT group, DETAIL
-
GGSCIで、開始するデータ・ポンプとReplicatプロセスを新しい証跡シーケンス番号に再配置します。
GGSCI> ALTER EXTRACT pump, EXTSEQNO seqno, EXTRBA RBA GGSCI> ALTER REPLICAT group, EXTSEQNO seqno, EXTRBA RBA
-
-
(ソース・システム)Oracle Databaseに対して新しいトリガーベースのDDLを使用する場合は、次のサブ手順に従ってOracle GoldenGate DDLトリガー環境をクリーンな状態に再構築します。
-
SQL*Plusを実行し、
sysdba
権限を持つユーザーとしてログインします。 -
marker_setup
スクリプトを実行してOracle GoldenGateマーカー・サポート・システムを再インストールし、Oracle GoldenGateスキーマの名前を指定します。 -
ddl_setup
スクリプトを実行してOracle GoldenGate DDLスキーマの名前を指定します。 -
role_setup
スクリプトを実行して、Oracle GoldenGate DDLロールを再作成します。 -
作成したロールを、Oracle GoldenGateプロセス(Extract、Replicat、GGSCIおよびManager)を実行するすべてのOracle GoldenGateユーザーに付与します。プロセスに異なるユーザー名がある場合、複数の付与が必要になることがあります。
-
ddl_enable.sql
スクリプトを実行して、Oracle GoldenGate DDLトリガーを有効にします。
-
-
これで、DDLおよびDMLのアクティビティをソース・データベース上で再起動できます。
-
パラメータ・ファイルのコピーを作成してパラメータを変更する場合は、古いパラメータ・ファイルが格納されていたOracle GoldenGateディレクトリに新しいパラメータ・ファイルを移動し、古いパラメータ・ファイルと同じ名前に変更します。大文字と小文字を区別する場合は、パラメータ・ファイルに
NOUSEANSISQLQUOTES
を追加するか、convprm
ユーティリティを実行し、必要に応じて引用符を変換します。詳細は、「キャラクタ・セット変換を使用している場合のアップグレードの考慮事項」を参照してください。 -
GGSCIで、次の順序に従って、ソース・システムとターゲット・システムのOracle GoldenGateプロセスを開始します。
GGSCI> START MANAGER GGSCI> START EXTRACT group GGSCI> START EXTRACT pump GGSCI> START REPLICAT group
ログ・ファイルをリストアする必要がある場合、Extractはリストアが必要なログを示すエラーで異常終了します。ログをそのログまでリストアし、Extractを再起動します。
Oracle GoldenGate Microservices Architecture 12c (12.3.0.1)から18c (18.1.0)へのアップグレード
Webインタフェースを使用してOracle GoldenGate 12cを18cリリースにアップグレードするには、次に示す手順を実行します。