単一のプラガブルOracle Database (PDB)のダウングレード

Oracle Databaseをダウングレードする場合、CDB全体をダウングレードせずに1つのPDBをダウングレードできます。

個々のPDBをダウングレードできます。たとえば、アップグレードしたCDBからPDBを切断し、PDBをダウングレードした後、これを以前のリリースのCDBに接続するか、そのPDBデータベースをスタンドアロン・データベースに変換することができます。

PDBのダウングレード

この手順の例では、PDBをリリース19cにダウングレードします。

  1. PDBをDOWNGRADEモードで起動します。これを行うとき、CDBは標準モードになります。

    SQL> alter pluggable database CDB1_PDB1 open downgrade;
    
  2. dbdowngradeユーティリティを使用するか、catcon.plを使用してcatdwgrdを手動で実行して、PDBをダウングレードします。

    これらの各オプションでは、ダウングレードするPDBはPDB1です。

    • dbdowngradeユーティリティを使用してダウングレードします。

      次のようにdbdowngradeスクリプトを使用してPDBをダウングレードします。

      cd $ORACLE_HOME/bin
      ./dbdowngrade -c 'PDB1'
    • catdwgrdcatcon.plを使用して手動でダウングレードします。

      次のようにcatdwgrdを実行します。output-directoryは出力ディレクトリ、catdwgrdはログ・ファイル・ベースです。

      $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -d
       $ORACLE_HOME/rdbms/admin -n 1 -l output-directory -e -b catdwgrd -c 'PDB1'
       catdwgrd.sql
      

      例では、catdwgrdcatcon.plとともに実行されます。-dパラメータは、catcon.plcatdwgrdの入手先を指定します。-lパラメータは、ログ・ファイルの出力ディレクトリを指定します(rdbms/adminディレクトリに書き込むかわりとなります)。2つのスクリプトを同時に一緒に実行するには、-rパラメータを使用する必要があります。

      ダウングレードのログ・ファイルは、Oracleベース・ホーム(コマンドorabasehomeまたはorabaseで識別されるOracleベースか、コマンドoracle_homeで識別されるOracleホーム)にこの順番で配置されます。

  3. PDBをクローズします

PDBのCDBからの切断

このステップでは、ダウングレードしたPDBをOracle Database 23ai CDBから切断します。

  1. アップグレードしたCDBに接続します。

  2. 切断するPDBをクローズします。

    SQL> alter pluggable database PDB1 close;
    
  3. ダウングレードした19cのPDBを切断し、変数pathをシステムのパスに置き換えます。

    SQL> alter pluggable database PDB1 unplug into 'path/pdb1.xml';
    

    切断が完了すると、次のレスポンスが表示されます。

    Pluggable database altered

ダウングレードされた19cのPDBの接続

このステップでは、ダウングレードされた19cのPDBを19cのCDBに接続します。これを行うには、このCDBでPDBを作成する必要があります。次の例は、PDB1というプラガブル・データベースの作成方法を示しています。

  1. 19cのCDBに接続します。

  2. 19cのPDBを接続します。

    SQL> create pluggable database PDB1 using 'path/pdb1.xml';
    

    このコマンドを実行すると、「プラガブル・データベースが作成されました。」が返されます。

  3. PDBをアップグレード・モードで開きます。

    SQL> alter pluggable database PDB1 open upgrade;
    
  4. PDBに接続します。

    SQL> alter session set container=PDB1;
    
  5. PDBでcatrelodを実行します。

    SQL> @$ORACLE_HOME/rdbms/admin/catrelod.sql
    

    catrelod.sqlスクリプトによって、ダウングレードしたデータベース内の各データベース・コンポーネントに該当するバージョンが再ロードされます。

  6. PDBでutlrpを実行します。

    SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
    

    utlrp.sqlスクリプトは、以前INVALID状態だったパッケージ、プロシージャ、型などのすべての既存のPL/SQLモジュールを、再コンパイルします。