Oracle Restartのダウングレード

この手順は、Oracle Restartの構成を解除してダウングレードする場合や、Oracle Restartのインストール・エラーをトラブルシューティングする場合に使用してください。

  1. oracleユーザーとして、23ai Oracleホームから19c OracleホームまでのPFILEへのSPFILEのバックアップを作成します。
    $ CREATE PFILE='/u01/app/oracle/product/19.0.0/dbhome_1/dbs/SIDinit.ora' FROM SPFILE
    
    このPFILEは、データベースのダウングレード・プロセス中に使用できます。
  2. サーバー上のすべてのOracleデータベースをバージョン、データベースの一意の名前およびOracleホームの情報とともにリストします。
    $ srvctl config database -home
  3. Oracle Databaseをダウングレードします。ダウングレード前、ダウングレード時およびダウングレード後に必要なタスクの詳細と互換性の情報は、『Oracle Databaseアップグレード・ガイド』を参照してください。

    ノート:

    Oracle Databaseのダウングレードは、Oracle RestartをダウングレードしたときのOracle RestartのバージョンよりもOracle Databaseのバージョンが新しい場合にのみ実行してください。
  4. oracleユーザーとして、Oracle Databaseに対応するOracle Restartのリソースをダウングレードします(Oracle Databaseをダウングレードした場合のみ)。
    $ srvctl downgrade database -d db_unique_name -oraclehome $ORACLE_HOME -t to_version
  5. データベース、サービスおよびリスナーのそれぞれについてOracle Restartの構成を調べます。
    $ srvctl config database -db db_unique_name
    $ srvctl config service -db db_unique_name
    $ srvctl config listener -listener listener_name
    この構成情報ノートにとっておきます。この情報は、Oracle Restartにコンポーネントを追加しなおすときに使用します。
  6. 実行中のすべてのデータベースおよびリスナーを停止してから、Oracle Restartをダウングレードします。
    $ srvctl stop database -db db_unique_name
    $ srvctl stop listener [-listener listener_name]
  7. 既存のOracle Automatic Storage Management (Oracle ASM)ディスク・グループは保持したまま、Oracle Restartをアンインストールします。
    $ cd /u01/app/oracle/product/23.0.0/dbhome_1/deinstall
    $ ./deinstall
    If you want to retain the existing diskgroups and associated ASM filter driver labels 
    or if any of the information detected is incorrect, you can modify by entering 'y'. 
    Do you want to modify above information  (y|n) [n]: y
    Specify the ASM Diagnostic Destination [ASM_diagnostic_destination]: 
    Specify the diskstring [AFD_diskstring]: 
    Specify the diskgroups that are managed by this ASM instance [+DATA]:
    De-configuring ASM will drop the diskgroups and clear the AFD labels at cleanup time. 
    Do you want deconfig tool to drop the diskgroups and  all AFD labels (y|n) [y]: n
  8. gridユーザーとして、Oracle Grid Infrastructure 19cのイメージ・ファイルをダウンロードし、そのファイルをGridホームに展開します。
    $ mkdir -p /u01/app/grid/product/19.0.0/grid
    $ chown grid:oinstall /u01/app/grid/product/19.0.0/grid
    $ cd /u01/app/grid/product/19.0.0/grid
    $ unzip -q download_location/grid_home.zip

    download_location/grid_home.zipは、ダウンロードされたOracle Grid Infrastructureイメージ・ファイルのパスです。

    ノート:

    このイメージ・ソフトウェアは、新しいGridホームを配置するディレクトリに展開する必要があります。
  9. Oracle Grid Infrastructureインストール・ウィザードを起動します。
    $ /u01/app/grid/product/19.0.0/grid/gridSetup.sh
  10. 「構成オプション」で「ソフトウェアのみの設定」を選択し、プロンプトに従ってインストール・オプションを選択します。
  11. gridユーザーとして、Oracle中央インベントリ(oraInventory)を更新します。
    $ /u01/app/oracle/product/19.0.0/grid/oui/bin/runInstaller -updateNodeList ORACLE_HOME=downgraded_Grid_home CRS=TRUE
  12. rootユーザーとして、roothas.shを実行し、Oracle ASMなしでOracle Restartを構成します。
    # /u01/app/oracle/product/19.0.0/grid/crs/install/roothas.sh
  13. gridユーザーとして、Oracle ASM Configuration Assistant (Oracle ASMCA)を起動します。
    $ /u01/app/oracle/product/19.0.0/bin/asmca
  14. 新しい一時Oracle ASMユーザー・グループを作成します。

    ノート:

    新しいディスク・グループを使用するようにOracle ASMを構成し、Oracle ASMで新しいディスクを検出できるようにディスク文字列として/.../.*を指定します。
  15. 既存のOracle ASMディスク・グループをマウントし、「終了」をクリックしてOracle ASMCAを閉じます。
  16. 一時ディスク・グループから既存のディスク・グループにパスワード・ファイルを移動します。
    $ /u01/app/oracle/product/19.0.0/bin/asmcmd
    ASMCMD> pwmove --asm new_diskgroup/orapwasm existing_diskgroup/orapwasm -f
  17. 既存のOracle ASMディスク・グループからSPFILEを削除します。
    ASMCMD> rm existing_diskgroup/ASM/ASMPARAMETERFILE/REGISTRY.253.1075263285
  18. 新しいOracle ASMディスク・グループから既存のディスク・グループにSPFILEをコピーします。
    ASMCMD> spcopy -u +new_diskgroup/asm/ASMPARAMETERFILE/registry.253.722601213 +existing_diskgroup/spfile
    ASMCMD> exit
  19. 高可用性スタックを再起動して、Oracle ASMが既存のディスク・グループのSPFILEを使用して起動することを確認します。
  20. Oracle ASMCAを起動し、新しい一時ディスク・グループを削除します。
  21. oracleユーザーとして、これまでのステップでメモしたのと同じ属性でコンポーネントをOracle Restartに追加し直します。
    1. Oracle Restart構成にOracle Databaseを追加します。
      $ srvctl add database -db db_unique_name -oraclehome Oracle_home -spfile spfile_name
      -spfileパラメータには、ステップ5でメモしたSPFILEを指定します。
    2. Oracle Restart構成にリスナーを追加します。
      $ srvctl add listener -listener listener_name -oraclehome Oracle_home
      -oraclehomeパラメータには、ダウングレード前のリスナーの実行元となるOracleホームを指定します。
    3. srvctl add serviceコマンドを使用して、各サービスをデータベースに追加します。
      $ srvctl add service -db db_unique_name -service service_name_list
  22. Oracle Restartに追加し直したコンポーネントを起動します。
    1. Oracleデータベースを起動します。
      $ srvctl start database -db db_unique_name
    2. リスナーを起動します。
      $ srvctl start listener -listener listener_name
    3. srvctl start serviceコマンドを使用して、各サービスを開始します。
  23. Oracle Databaseに接続し、プラガブル・データベース(PDB)を起動します。
    $ sqlplus / as sysdba
    SQL> ALTER PLUGGABLE DATABASE pdb_name OPEN;
    SQL> exit
  24. ダウングレード後にOracle Restartリソースが実行されていることを確認します。
    $ /u01/app/oracle/product/19.0.0/bin/crsctl stat res -t