2 Oracle Databaseのアップグレードの準備

Oracle Databaseをアップグレードする前に、新機能を確認し、手順を実行してデータベースをアップグレードに備えます。

ノート:

特に、アップグレード処理をテストし、バックアップ計画を準備することをお薦めします。

AutoUpgradeでのアップグレード前情報チェック

Oracle Databaseをアップグレードする前に完了する必要があるタスクのチェックリストを取得するには、analyzeモードでAutoUpgradeユーティリティ(autoupgrade.jar)を実行します。

Oracleでは、Oracle Databaseをアップグレードする前に、AutoUpgradeの最新リリースをダウンロードして-analyzeモードで実行することをお薦めします。AutoUpgradeでは、アップグレードを開始する前に対処する必要がある問題を識別できます。場合によっては、一部の問題を解決できるスクリプトをAutoUpgradeで生成することもできます。

ヒント:

Mike Dietrichのアップグレード・ブログで、アップグレードの準備に役立つヒントおよび推奨事項について確認することを検討してください。My Oracle Supportでチェックリストを確認することもできますが、必ず最新バージョンのAutoUpgradeツールをダウンロードし、アップグレード用に生成されたチェックリストAutoUpgradeを使用してください。

AutoUpgrade構成ファイルのローカルに変更可能なグローバル・パラメータ

AutoUpgradeの必須構成パラメータは、すべてのアップグレードに対してグローバルに設定することも、ローカルに設定することもできます。

使用上のノート

AutoUpgradeの必須パラメータをローカルに変更可能なグローバル・パラメータとしてグローバルに設定した場合、これらのパラメータは、特定のアップグレードに設定されたローカル・パラメータによってオーバーライドできるため、AutoUpgradeジョブの処理をより適切に制御できます。

ローカルに変更可能なグローバル・パラメータでは、接頭辞globalを使用して、必須パラメータの値をAutoUpgrade構成ファイルのすべてのジョブのグローバル・パラメータとして設定できますが、ローカル・ジョブ接頭辞と同じパラメータを指定して、グローバル値を同じ構成ファイル内の特定のジョブの別の値に再設定できます。ローカルで変更可能なグローバル・パラメータのみを、各AutoUpgradeジョブのローカル・パラメータとして設定することもできます。

ノート:

これらのパラメータは、My Oracle SupportからダウンロードできるAutoUpgradeの最新バージョンで使用できます。

ローカルで変更可能なグローバル・パラメータがグローバル接頭辞とローカル・ジョブ接頭辞の両方で設定されている場合、ローカルに変更されたパラメータ値は、パラメータで使用する接頭辞によって識別されるジョブのグローバル・パラメータ値をオーバーライドします。

たとえば、global.target_homeの場合、使用する構文はglobal.target_home=Global target Oracle homeおよびdatabase.target_home=local target Oracle homeの形式になります。

AutoUpgrade構成ファイルでは、必須パラメータtarget_homeが1つのOracleホーム・パスにグローバルに設定されます。ただし、構成ファイルでは、同じパラメータが別のOracleホーム・パスに対してローカルに設定されます。AutoUpgradeは構成ファイル内のジョブを処理すると、接頭辞upgrade3で定義されたジョブのtarget_homeにローカルに定義されたパスを使用し、グローバル・パラメータ設定をオーバーライドします。

global.target_home=/u01/app/oracle/21.0.0/dbhome01
upgrade3.target_home=/u03/app/oracle3/12.2.0.1/dbhome3

defer_standby_log_shipping

プライマリ・データベースから任意のスタンバイ・データベースへのログ送信を遅延します。すべてのログ・アーカイブの保存先(log_archive_dest_n)が遅延に設定されます。

使用上のノート

デフォルトでは、ログ送信はアップグレードの一部として実行されます。Autoupgradeによりログ送信が遅延すると、ログ送信が遅延され、アップグレードが正常に完了した後にプライマリ・データベースからセカンダリ・データベースへの送信ログを再度有効にする必要があることが通知されます。

ノート:

この構成ファイル・パラメータは、スタンバイ・データベースだけでなく、Oracle Zero Data Loss Recovery Appliance (ZDLRA)リアルタイム・ログ・トランスポート、Oracle GoldenGateダウンストリーム取得など、プライマリ・データベースからREDOを受信するすべての製品またはサービスに影響します。

オプション

[yes | no]

デフォルト値はnoです

デフォルトはnoです(ログ出送信は遅延されません)。デフォルトをYesに変更するとログ送信は遅延され、アップグレード後はこれを手動で再度有効化する必要があります。

defer_standby_log_shipping=yes

dictionary_stats_after

(オプション)アップグレードの完了後に、AutoUpgradeがターゲット・データベースのデータ・ディクショナリ統計を収集するように指定します。

使用上のノート

データ・ディクショナリ表はアップグレード中に変更され、作成されるため、データベースのアップグレードの前後でディクショナリ統計を収集することをお薦めします。yesを指定すると、AutoUpgradeはアップグレードの完了後にディクショナリ統計を収集します。

オプション

[yes | no]

デフォルト値はYesです。

global.dictionary_stats_after=yes
sales.dictionary_stats_after=yes

dictionary_stats_before

(オプション)アップグレードを開始する前に、AutoUpgradeがソース・データベースのデータ・ディクショナリ統計を収集するように指定します。

使用上のノート

データ・ディクショナリ表はアップグレード中に変更され、作成されるため、データベースのアップグレードの前後でディクショナリ統計を収集することをお薦めします。yesを指定すると、AutoUpgradeはアップグレードを開始する前にディクショナリ統計を収集します。

オプション

[yes | no]

デフォルト値はYesです。

global.dictionary_stats_before=yes
sales.dictionary_stats_before=yes

drop_grp_after_upgrade

データベースのアップグレード後に、保証付きリストア・ポイント(GRP)を削除します。

使用上のノート

このオプションを選択した場合、アップグレードが正常に完了した後にGRPが削除されます。

オプション

[yes | no]

デフォルト値はnoです。

global.drop_grp_after_upgrade=yes
sales.drop_grp_after_upgrade=yes

enable_local_undo

CDBのアップグレードの場合、CDB$ROOTのアップグレード前にLOCAL UNDOを有効にする必要があるかどうかを指定します。

使用上のノート

このオプションを選択した場合、AutoUpgradeはアップグレード前に次の文を実行します: ALTER DATABASE LOCAL UNDO ON;

ローカルUNDOを最初に有効にすると、PDB$SEED内のUNDO表領域のサイズは、CDB$ROOT内のUNDO表領域のサイズの係数として決定されます。デフォルトは、UNDO表領域サイズの30%です。CDB内の他のすべてのPDBは、PDB$SEEDからこのプロパティを継承します。新しいUNDO表領域を割り当てるのに十分な領域があることを確認します。

オプション

[yes | no]

デフォルト値はnoです。

enable_local_undo=yes

fixed_stats_before

(オプション)アップグレードを開始する前に、AutoUpgradeがソース・データベースの固定オブジェクトの統計を収集するように指定します。

使用上のノート

アップグレードの前に、固定オブジェクトの統計を再収集することをお薦めします。

固定オブジェクトは、X$表とその索引です。V$パフォーマンス・ビューは、X$表を通じて定義されます。固定オブジェクトの統計の収集は、データベース・パフォーマンスにとって有益で(それらの統計はオプティマイザが適切な実行計画を生成する際に役立つため)、データベース・パフォーマンスが向上する可能性があります。代表的な統計を取得しないと、実行計画が最適ではなくなる可能性があり、深刻なパフォーマンス問題が発生する場合があります。

オプション

[yes | no]

デフォルト値はYesです。

global.fixed_stats_before=yes
sales.fixed_stats_before=yes

manage_network_files

アップグレード中にネットワーク・ファイルを処理するかどうかを指定します。

使用上のノート

このオプションを選択すると、AutoUpgradeは、指定したオプションに応じてネットワーク・ファイルを処理します。

oranfstabldap.oratnsnames.orasqlnet.oraおよびlistener.oraの各ネットワーク・ファイルが処理されます。

オプション

[FULL|SKIP|IGNORE_READ_ONLY]

  • FULL: (デフォルト)ネットワーク・ファイルのターゲットOracleホームへのコピーおよびマージ中に発生したすべての例外を呼び出します。
  • SKIP: アップグレード後にネットワーク・ファイルを処理しません。
  • IGNORE_READ_ONLY: ネットワーク・ファイルをコピーおよびマージしようとしましたが、ターゲット・ファイルが読取り専用の場合、アップグレード中に例外は発生しません。

manage_network_files=ignore_read_only

remove_underscore_parameters

構成ファイル内のすべてのOracle Databaseについて、アップグレード時およびアップグレード後にPFILEファイルからアンダースコア(非表示)パラメータを削除します。

使用上のノート

アンダースコアのパラメータは、Oracleサポートの指示がある場合のみ使用できます。

オプション

[yes | no]

デフォルト値はnoです。

global.remove_underscore_parameters=yes

restoration

(Enterprise Editionでのみ使用可能)データベース・リストアの保証付きリストア・ポイント(GRP)を生成します。

使用上のノート

このオプションは、データベース・バックアップおよびデータベースのリストアをDBAによって手動で実行する必要があるかどうかを決定します。

Standard Editionはフラッシュバック・データベースをサポートしていないため、このオプションはStandard Editionでは使用できません。データベースがStandard EditionのOracle Databaseの場合、別個のフォールバック・メカニズムを持つようにする必要があります。

オプション

[yes | no]

デフォルト値はyes

global.restoration=no

target_base

ターゲットOracleホームのターゲットORACLE_BASEパスを指定します。

global.target_base=/u01/app/oracle
sales4.target_base=/u04/app/oracle4

target_home

(ターゲット・ホームがシステム上にない場合で、アップグレード・モードおよびデプロイ・モードの場合は必須です。分析および修正モードの場合はオプションです。 )ターゲットOracleホーム(ORACLE_HOME)パスを指定します。

使用上のノート

AutoUpgradeでは、このパラメータで指定したリリース・バージョン情報を使用して、アップグレード対象のターゲットのOracle Databaseリリースに対して正しいチェックおよび修正が使用されるようにします。このパラメータの形式は、有効なOracleバージョンのピリオド区切りの値です。

このオプションは、ターゲット・ホームがシステムに存在しないか、ターゲット・ホームが12.2リリースの場合のみ必要です。それ以外の場合、AutoUpgradeはターゲット・リリース値を導出できます。

オプション

有効な値

  • 12.2
  • 18
  • 19
  • 21

global.target_version=19
employees.target_version=12.2

target_version

(ターゲットOracleホームがシステム上にないか、リリース12.2の場合は必須) AutoUpgradeでアップグレードを実行するターゲット・リリース・バージョンを指定します。

使用上のノート

AutoUpgradeでは、このパラメータで指定したリリース・バージョン情報を使用して、アップグレード対象のターゲットのOracle Databaseリリースに対して正しいチェックおよび修正が使用されるようにします。このパラメータの形式は、有効なOracleバージョンのピリオド区切りの値です。

このオプションは、ターゲット・ホームがシステムに存在しないか、ターゲット・ホームが12.2リリースの場合のみ必要です。それ以外の場合、AutoUpgradeはターゲット・リリース値を導出できます。

オプション

有効な値

  • 12.2
  • 18
  • 19
  • 21

global.target_version=19
employees.target_version=12.2

AutoUpgradeを使用した切断/接続アップグレードの理解

AutoUpgradeでは、以前のリリースのソース・コンテナ・データベース(CDB)からプラガブル・データベース(PDB)を切断し、新しいリリースのターゲットCDBに接続して、PDBをターゲットCDBリリースにアップグレードするために必要なすべてのステップを完了できます。

アップグレードの構成方法に応じて、AutoUpgradeを使用した切断/接続PDBアップグレードには2つのワークフローがあります。

  • 1つ以上のプラガブル・データベースを1つのソースCDBから切断し、新しいリリースのターゲットCDBに接続します。
  • 異なるソースCDBから複数のプラガブル・データベースを切断し、新しいリリースのターゲットCDBに接続します。

アップグレード後、PDBごとに、データベース・リスナーおよびローカル・ネーミング・パラメータ(tnsnames.oraファイル)を構成する必要があります。

注意:

データベースに対するその他の変更と同様に、AutoUpgradeを実行して変換およびアップグレードを完了する前に、予期しないデータ損失を防ぐために信頼性のあるバックアップ計画を実装することをお薦めします。AutoUpgradeがこの手順を開始した後、切断/接続PDBアップグレードをロールバックするオプションはありません。フラッシュバック・データベースもPDB変換では機能せず、元に戻せません。バックアップが唯一のフォールバック計画です。AutoUpgradeでは、透過的データ暗号化(TDE)を使用するPDBまたは暗号化された表領域を含むPDBの切断/接続アップグレードはサポートされていません。

次の図は、この単一PDBの場合の切断/接続操作を示しています。

  1. ソースOracle Databaseが1つとターゲット・リリースのOracle Databaseが1つあります。この段階で、構成ファイルを作成し、AutoUpgradeを分析モード(autoupgrade.jar -mode analyze)で実行してアップグレードの準備状況を確認し、レポートされた問題を修正します。
  2. AutoUpgradeをデプロイ・モード(autoupgrade.jar -mode deploy)で実行します。AutoUpgradeは、構成ファイルに指定された情報を使用してPDBをターゲット・リリースに移動し、PDBを接続します。
  3. AutoUpgradeは、事前修正を実行した後、PDBをターゲット・リリースにアップグレードします。

図2-1 ソースからターゲットへの切断/接続アップグレード

図2-1の説明が続く
図2-1「ソースからターゲットへの切断/接続アップグレード」の説明

ソースCDBとターゲットCDBの要件

切断/接続アップグレードを実行するには、ソースCDBとターゲットCDBが次の条件を満たしている必要があります。

  • 切断/接続アップグレードを開始する前に、ターゲット・リリースCDBを作成し、CDBをオープンしていること。
  • ソースCDBとターゲットCDBのエンディアン形式が同じであること。
  • ターゲット・リリースCDB用に構成されたOracle Databaseコンポーネントのセットに、ソースCDBで使用可能なすべてのコンポーネントが含まれていること。
  • ソースCDBとターゲットCDBに、互換性のある文字セットと各国語文字セットがあること。
  • ターゲットCDBリリースへの直接のアップグレードでは、ソースCDBリリースがサポートされている必要があります。
  • ソースCDBおよびターゲットCDBに対して外部認証(オペレーティング・システム認証)が有効になっていること
  • ソースCDBのOracle Application Expressインストール・タイプは、ターゲットCDBのインストール・タイプと一致する必要があります。
  • CDBに接続する非CDB Oracle Databaseには、既存の保証付きリストア・ポイント(GRP)を含めないでください。

ノート:

最新バージョンのAutoUpgradeでは、AutoUpgradeを使用してOracle Data Guard構成に接続できるようになりました。AutoUpgradeは、STANDBYS=NONE句を使用してPDBを作成します。アップグレード後、データ・ファイルをスタンバイ・データベースにリカバリすることでスタンバイを再確立できます。

切断/接続アップグレードの機能

切断/接続アップグレードを選択すると、AutoUpgrade構成ファイルの構成方法に応じて、AutoUpgradeを使用してアップグレード時に次のオプションを実行できます。

  • ソースCDBにあるPDB名を保持するか、PDB名を変更できます。
  • 古いファイルをすべて保持しながら、データ・ファイルのコピーをターゲットCDBに作成できます。
  • データファイルをターゲットの場所にコピーしてから、ソースCDBで古いファイルを削除できます。
  • 1つのPDBを処理することも、包含リストにリンクして多数のPDBを1つのアップグレード手順で処理することもできます。処理できるPDBの数の制限は、サーバー制限とCDB上のPDBの制限のみです。

例2-1 切断/接続アップグレード用のAutoUpgrade構成ファイル

切断/接続PDBアップグレード・オプションを使用するには、AutoUpgrade構成ファイルで次の値を識別する必要があります。

  • ソースCDBのシステム識別子パラメータ(パラメータsid)。
  • ターゲットCDB (パラメータtarget_cdb)。
  • ソースCDB内のPDBの名前、および変換する場合はターゲット変換名。

たとえば、ソースCDBがCDB122、ターゲットCDBがcdb21x、ソースCDBのPDBの名前がpdb2、ターゲットCDBに必要なPDBの変換名がdepsalesの場合を次に示します。


global.autoupg log_dir=/home/oracle/autoupg
upg1.sid=CDB122
upg1.source_home=/u01/app/oracle/product/12.2.0/dbhome_1
upg1.target_home=/u01/app/oracle/product/21.1.0/dbhome_1
upg1.target_cdb=cdb21x
upg1.pdbs=pdb_2
upg1.target_pdb_name.pdb_2=depsales
upg1.target_pdb_copy_option.pdb_2=file_name_convert=('pdb_2','depsales')