次の手順は、Oracle Database用Oracle GoldenGateをバージョン12cにアップグレードするためのものです。
この章の内容は次のとおりです。
このアップグレード手順では、統合されたReplicat、更新されたグローバリゼーション・サポート、新しいSQL-92のデフォルト、セキュリティ機能の拡張など、12.1.2の主要な新機能をこの時点では実装せずに、更新されたコア機能のみをデプロイする最小限のアップグレードを実行します。問題が発生した場合に簡単にトラブルシューティングできるように、最初は最小限のアップグレードを実行することをお薦めします。環境が正常にアップグレードされたことを確認したら、新機能を実装できます。
このアップグレード手順では、Oracle GoldenGateのアップグレード時に、ソースまたはターゲットのデータベースを同時にアップグレードする場合に実行する手順も考慮されています。次に示すアップグレード前要件が組み込まれています。
Oracle GoldenGateプロセスが、Oracle GoldenGate証跡にある現在のDMLおよびDDLデータすべての処理を完了できるようにします。
DDLトリガーを無効化します。
Oracle GoldenGateのアップグレード前に、データベースをアップグレードします。
この項では、現在のOracle GoldenGate環境で、DDLサポートがアクティブ化されている場合に実行する必要のある考慮事項と手順を説明します。Oracle GoldenGate v12におけるDDLサポートには、次の2つのオプションがあります。
Oracle GoldenGateバージョン12cの統合モードでは、DDLのキャプチャ方法が2つサポートされています。
ソース・データベースが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 考えられる12cへのアップグレード・パスとDDLサポートの要件
アップグレード元: | アップグレード先: トリガー・メソッドを使用した12cのクラシック・キャプチャ | アップグレード先: トリガーなしの12cの統合キャプチャ脚注 1 |
---|---|---|
トリガー・メソッドを使用したクラシック・キャプチャ(11.2.1のすべてのデータベース・バージョン) |
コンテナ・データベースには使用できません。 次のアップグレード手順を使用してOracle GoldenGateをアップグレードします。 |
コンテナ・データベースに使用できます。
|
トリガー・メソッドを使用した統合キャプチャ(11.2.1のすべてのデータベース・バージョン) |
コンテナ・データベースには使用できません。 DDLのアップグレード・パスはありません。 |
コンテナ・データベースに使用できます。
|
脚注 1 データベースを11.2.0.4または12.1へアップグレードすると、パッチ・セット・アップグレードの一環として、データ・ディクショナリのスナップショットがREDOストリームに自動的に取得されます。
アップグレードを実行する前に、ExtractおよびReplicatのアップグレードに関して、次の情報を確認してください。ExtractとReplicatの両方ではなく、どちらか1つのみをアップグレードする場合でも、アップグレードにはすべてのプロセスが関係します。どのコンポーネントをアップグレードするかに関係なく、すべてのプロセスをアップグレードの適切な順序で停止し、空になるまで証跡を処理する必要があります。
この手順のほとんどは、アップグレードのExtractの部分に関係します。トリガーベースのDDLサポートを使用している場合は、統合キャプチャのトリガーなしの新しいDDLサポートを使用する予定でも、DDLオブジェクトを再構築する必要があります。アップグレード後、Oracle GoldenGateを再度正常に実行したら、このドキュメントの手順に従って、トリガーとDDLオブジェクトを削除してください。DDLのアップグレードに関する考慮事項は、2.2項「DDLサポートを含む構成のアップグレード」を参照してください。
統合構成(多数のソースと1つのターゲット)で動作する複数のExtractプロセスをアップグレードする場合は、完全にこれらの手順に従い、一度に1つのExtractをアップグレードします。
統合キャプチャを使用している場合は、アップグレード手順の適切な時点で、ローカルとリモートの証跡をロールオーバーする必要があります。11.2.1の統合Extract (バージョン1)では、TIMESTAMP WITH LOCAL TIME ZONE
データがUTCとして取得されますが、12.1.2の統合Extract (バージョン2)では、データベース・タイム・ゾーンのローカル時間として取得されます。
すべてのReplicatインストールを同時にアップグレードする必要があります。全ターゲット・システムのすべてのReplicatグループにつながる証跡すべてを、アップグレード手順に従って、空になるまで処理することが重要です。
注意: Replicatプロセス間でデータをパーティション化するための@RANGE関数で使用されるハッシュ計算が変更されました。この変更は透過的であるため、アップグレードが指示に従って行われるかぎり、パラメータ・ファイルの行を再度パーティション化する必要はありません。データの継続性を保証するには、Replicatプロセスを停止する前に、全システムのすべてのReplicatプロセスで、アップグレード手順に従って、証跡の全データの処理が完了されるようにする必要があります。Replicatプロセスがすべて同時にアップグレードされない場合、またはアップグレード前に証跡が空にならない場合は、新しいハッシュ・メソッドの結果として行のパーティションが移動し、コリジョン・エラーが発生する可能性があります。 |
Oracle GoldenGate構成に含まれる各システムに適したOracle GoldenGateのビルドをダウンロードします。
注意: まだOracle GoldenGateリリース12.1.2.1.0以上にアップグレードしていない場合は、次の手順を使用してアップグレードする必要があります。正常にアップグレードできたら、同じ手順を使用して任意のOPatchを適用します。 |
ブラウザを使用して、http://support.oracle.com
に移動します。
Oracle IDとパスワードでログインします。
パッチとアップグレード・タブを選択します。
「検索」タブで、「製品またはファミリ」をクリックします。
「製品」
フィールドに、Oracle GoldenGateと入力します。
「リリース」ドロップダウン・リストから、ダウンロードするリリースのバージョンを選択します。
「プラットフォーム」がデフォルトとして次のフィールドに表示されることを確認し、プラットフォームをドロップダウンリストから選択します。
最後のフィールドは空のままにします。
「検索」をクリックします。
「パッチの詳細検索結果」リストで、検索基準に最も合うパッチを選択します。選択するOracle GoldenGateのパッチが、使用するデータベースのバージョンに対応していることを確認してください。
ビルドを選択すると、ビルドの説明の下にダイアログ・ボックスがポップアップし、ダウンロード・ページに進みます。
ダウンロードする各パッチのパッチ・ファイル名のリンクをクリックします。ファイルのダウンロード・ダイアログ・ボックスが表示されます。
「開く」または「保存」のいずれかを選択します。
処理 | 選択 |
---|---|
パッチをただちに抽出 | 「開く」を選択し、ファイル抽出ユーティリティを選択して、ファイル・システム上の場所へファイルを抽出します。 |
パッチを保存し、後で抽出 | 「保存」を選択し、ファイル・システム上のディレクトリに保存します。 |
パッチをダウンロードしたら、インストールする前に環境を整える必要があります(アンインストールの前にもこれらの前提条件を満たす必要があります)。これを行うには、システムが次の要件を満たしていることを確認します。
パッチのインストール先またはパッチのロールバック元のOracle GoldenGateのバージョンが、Oracle用のOracle GoldenGateリリース12.1.2であることを確認します。
最新バージョンのOPatchを使用します。最新バージョンがない場合は、次の場所のMy Oracle Supportのノート224346.1に示された手順に従ってください。
ORACLE_HOME
環境変数をOracle GoldenGateのインストール・ディレクトリに設定します(以後、ORACLE_HOME
と呼びます)。
解凍した実行可能ファイルの場所、Oracle GoldenGateホームにあるORACLE_HOME
ディレクトリおよびORACLE_HOME/OPatch
ディレクトリが含まれるようPATH
環境変数を設定します。
パッチをインストールする際にOPatchがアクセスするOracle Inventoryを確認します。インベントリを確認するには、次のコマンドを実行します。
$ opatch lsinventory
コマンドでエラーが表示される場合は、Oracleサポートに連絡し、問題を解決してください。
パッチをインストールするには、次の手順を使用します。
パッチのZIPファイルの中身を格納するための場所を準備します。以後、このドキュメントでは、この場所(絶対パス)をPATCH_TOP_DIR
と呼びます。
パッチのZIPファイルの中身を、手順1で作成した場所に抽出します。
次に例を示します。
$ PATCH_TOP_DIR p14309369_112101_Solaris86-64.zip
次のようにして、Oracle GoldenGateを停止します。
GGSCIを実行します。
コマンドを実行して、Managerを停止します。
STOP MANAGER
コマンドを実行して、すべてのOracle GoldenGateプロセスを停止します。
STOP ER *
PATCH_TOP_DIR
/Patch_numberディレクトリに移動します。
$ cd PATCH_TOP_DIR/Patch_number
次のコマンドを実行してパッチをインストールします。
$ opatch apply
注意: OPatchが起動されると、パッチが検証され、Oracle GoldenGateリリースのORACLE_HOME にすでにインストールされているソフトウェアと競合しないことが確認されます。OPatchでは、競合は次のタイプに分けられます。
|
パッチに新しいパラメータが含まれている場合、各パラメータ・ファイルを編集します。
ORACLE_HOME
をOracleデータベース・ホーム・ディレクトリに設定しなおします。
次のようにして、Oracle GoldenGateホームからプロセスを起動します。
GGSCIが実行されていることを確認します。
次のコマンドを実行して、Managerを起動します。
START MANAGER
次のコマンドを実行して、すべてのOracle GoldenGateプロセスを起動します。
START ER *
ここでは、最小限のアップグレードを実行するための手順を説明します。
始める前に、このマニュアルに記載されている、次の準備情報を確認してください。
注意: 統合キャプチャを使用し、トリガーベースの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 EXTRACTgroup
, {SKIPTRANS | FORCETRANS}transaction_ID
[THREADn
] [FORCE]
長時間実行されているトランザクションのクリーンアップが終了したら、バインド・リカバリ・チェックポイントを強制します。
GGSCI> SEND EXTRACT
group
, BR BRCHECKPOINT IMMEDIATE
注意: スキップまたは強制されたトランザクションはバインド・リカバリ・チェックポイントからクリーンアップされず、SHOWTRANS が再度発行された場合に表示されるため、強制されたチェックポイントが必要です。これは既知の問題です。SEND EXTRACT の詳細は、Oracle GoldenGate for Windows and UNIXリファレンスを参照してください。 |
(ソース・システム) Oracle GoldenGate構成のオブジェクトにDDLとDMLの両方を生成するユーザー・アクティビティを停止します。
DDLとDMLを停止したら、次の問合せを実行します。問合せ結果から現在のSCNを記録します。
select current_scn from v$database;
注意: Oracle GoldenGateのアップグレードを行う際、DML操作は停止しなくてもかまいませんが、手順7、17および19で指定されているようなDDLやその他のアップグレードSQLスクリプトなどのSQLを実行する必要がある場合、DMLを停止する必要があります。 |
問合せ結果から現在のSCNを記録します。
(ソース・システム。クラシック・キャプチャを使用している場合)ソース・システムのGGSCIで、取得するREDOデータがこれ以上ないことが示されるまで、LOGEND
オプションを指定したSEND 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
バージョン
はOracle GoldenGateリリースのバージョンを指定し、major
はメジャー・バージョン番号、.minor
はマイナー・バージョン番号です。たとえば、11.2または12.1です。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バージョン12.1.2.0をインストールします。OUIでのインストール時、「Start Manager」オプションの選択を解除していることを確認してください。そうしないと、既存のパラメータ・ファイルが上書きされる可能性があります。手順は、Oracle GoldenGate for Oracle Databaseのインストールおよび構成を参照してください。
注意: サイレント・インストールではなく、アップグレード用の対話オプションを使用してインストールすることをお薦めします。 |
(ターゲット・システム。バージョン11.2.1.0.0以前からReplicatをアップグレードする場合)各ターゲット・システムにおいてGGSCIで次のコマンドを発行し、そのシステムのReplicatチェックポイント表をアップグレードします。この手順によって表定義が更新され、12c (12.1.2)リリースをサポートする列が追加されます。
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で、プライマリ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 EXTRACTgroup
GGSCI> START EXTRACTpump
GGSCI> START REPLICATgroup
ログ・ファイルをリストアする必要がある場合、Extractはリストアが必要なログを示すエラーで異常終了します。ログをそのログまでリストアし、Extractを再起動します。