Oracle AI Database FREEへのOracle Database XEのアップグレード

Oracle AI DatabaseにはXEリリースはありませんが、切断/接続アップグレードを使用してOracle Database XEをOracle AI Databaseにアップグレードできます。

Oracle Database Express Edition (XE)は、Oracle AI Freeに置き換えられました。Oracle Database XEからOracle AI Database Standard Edition (SE)またはEnterprise Edition (EE)への直接アップグレード・オプションはありません。Oracle Data Pumpを使用してデータ・ファイルをOracle AI Databaseにエクスポートする必要があります。詳細は、ご使用のプラットフォームのインストール・ガイドを参照してください。

Oracle Database XEからOracle AI Database Freeへの切断/接続アップグレードを実行できます。

Oracle AI Database Free 26aiへのOracle Database XE 21c PDBのアップグレード

切断/接続アップグレードを使用して、Oracle Database XEをOracle AI Database Freeにアップグレードします。

Oracle Database XEからOracle AI Databaseへのアップグレードには、次の制限があります:

  • Database Upgrade Assistant (DBUA)は、アップグレードの実行には使用できません。
  • Database Configuration Assistant (DBCA)を使用して、Oracle Database XEからOracle AI Databaseへのプラグイン・アップグレードを実行することはできません。
  • Enterprise EditionまたはStandard EditionからOracle AI Database 26ai Freeへの切断/接続アップグレードはサポートされていません。
  • Oracle Database XEまたはOracle AI Database FreeからOracle AI Database Enterprise EditionまたはStandard Editionへの切断/接続アップグレードはサポートされていません。

アップグレードは、次の主要なステップで構成されています:

  1. Oracle Database XE 21cからのPDBの切断
  2. Oracle AI Database 26aiの最新リリースをインストールし、Oracle Database XE 21c PDBをOracle AI Database CDBに接続します。
  3. アップグレードされたPDBに無効なオブジェクトが残っていないことを確認します。

Oracle Database XE 21cからのPDBの切断

  1. Oracle Database XE 21cから、データベースにSYSDBAとして接続します。

    SQL> CONNECT / AS SYSDBA
    SQL> ALTER SESSION SET CONTAINER=CDB$ROOT;

    セッションが変更されます。

  2. アップグレードするPDBをクローズします。

    たとえば、XEPDB1という名前のPDBをクローズするには、次のコマンドを使用します。

    SQL> ALTER PLUGGABLE DATABASE XEPDB1 CLOSE;

    プラガブル・データベースはクローズされています。

  3. 次のSQLコマンドを実行して、Oracle Database XE 21c PDBを切断します:

    SQL> ALTER PLUGGABLE DATABASE XEPDB1 UNPLUG INTO '/home/oracle/XEPDB1.xml';

    この例では、PDB名はXEPDB1で、PDB XMLファイルの場所は/home/oracle/XEPDB1.xmlです。

    コマンドが完了すると、次のレスポンスが表示されます: 「プラガブル・データベースが変更されました。」

  4. クローズしたPDBを削除し、データ・ファイルを保持します。

    SQL> DROP PLUGGABLE DATABASE XEPDB1 KEEP DATAFILES;
  5. /etc/init.d/oracle-xe-21c deleteコマンドを実行して、Oracle Database XE 21cを削除します。

Oracle AI Database 26ai CDBへのOracle Database XE 21c PDBの接続

  1. Oracle AI Database Free 26aiの最新バージョンをインストールします。

    詳細については、以下を参照:

    Oracle Database Freeのインストール

  2. SYSDBAとしてOracle AI Database CDBに接続します。PDBをXE 21c CDBから切断し、次のコマンドを実行してOracle AI Database CDBに接続します。ここで、XEPDB2はアップグレードするPDBです:

    SQL> CONNECT / AS SYSDBA
    SQL> CREATE PLUGGABLE DATABASE XEPDB2 USING '/home/oracle/XEPDB1.xml' NOCOPY TEMPFILE REUSE;

    新しいプラガブル・データベースXEPDB2が作成されます。

  3. PDBをUPGRADEモードでオープンします。

    SQL> ALTER PLUGGABLE DATABASE XEPDB2 OPEN UPGRADE;
  4. パラレル・アップグレード・ユーティリティのコマンドを使用してPDBをアップグレードします。

    $ORACLE_HOME/perl/bin/perl  $ORACLE_HOME/rdbms/admin/catctl.pl -u sys -d $ORACLE_HOME/rdbms/admin -c XEPDB2 -l $ORACLE_BASE -t catupgrd.sql

    アップグレード・サマリー・レポートは、/opt/oracle/upg_summary.logで表示できます。アップグレード後、PDBはMOUNTED状態です。

  5. PDBをオープンしてアップグレード後の修正を実行します。

    SQL> ALTER PLUGGABLE DATABASE XEPDB2 OPEN;
  6. $ORACLE_HOME/rdbms/adminディレクトリから、catcon.plユーティリティを使用してutlrp.sqlを実行します。

    $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -d $ORACLE_HOME/rdbms/admin -n 1 -l /home/oracle/utlrp -e -b utlrp -c 'XEPDB2' utlrp.sql

    このスクリプトにより、データベース内のINVALIDオブジェクトが再コンパイルされます。

アップグレードされたPDBに無効なオブジェクトが残っていないことを確認します

データベースに無効なオブジェクトがないことを確認します。たとえば:

SQL> alter session set container=XEPDB2;
Session altered.

SQL> show con_name;
CON_NAME
------------------------------
XEPDB2
SQL> select count(*) , ' Invalid Objects' from all_objects where status = 'INVALID';
  COUNT(*) 'INVALIDOBJECTS'
---------- ----------------
         0  Invalid Objects

ノート:

APEXをアップグレードするには、『Oracle APEXインストレーション・ガイド』の説明に従ってAPEXインストールを完了する必要もあります。

Oracle AI Database 26ai Freeの様々なバージョン間でのデータのエクスポートおよびインポート

Oracle AI Database 26ai Freeの様々なバージョン間でデータをエクスポートおよびインポートする方法について学習します。

ノート:

Oracle Database 23.x Freeはリリース23.2以降を表します。

データのエクスポート

Oracle Database 23.x Freeからデータをエクスポートするには:

  1. rootユーザーとして、DUMP_DIRディレクトリ・オブジェクトのローカル・ファイル・システムに/opt/dumpディレクトリを作成します。

    mkdir /opt/dump
    chown -R oracle:oinstall /opt/dump
    chmod -R 760 /opt/dump
    
  2. 各プラガブル・データベース(PDB)に対して次のステップを実行します。この項のステップは、PDB freepdb1の場合を示しています。

    1. ORACLE_HOMEおよびORACLE_SID環境変数を設定します。

      export ORACLE_SID=FREE
      export ORACLE_HOME=/opt/oracle/product/23ai/dbhomeFree
    2. oracleユーザーとしてSYSDBA権限を使用して、ユーザーSYSとして23.x Freeデータベースに接続し、コンテナをfreepdb1に切り替えます。

    3. ディレクトリ・オブジェクトDUMP_DIRを作成し、DUMP_DIRディレクトリに対するREADおよびWRITE権限をSYSTEMユーザーに付与します。

      /opt/oracle/product/23ai/dbhomeFree/bin/sqlplus / AS SYSDBA
      SQL> ALTER SESSION SET CONTAINER=freepdb1;
      SQL> CREATE DIRECTORY DUMP_DIR AS '/opt/dump';
      SQL> GRANT READ, WRITE ON DIRECTORY DUMP_DIR TO SYSTEM;
      
    4. 23.x FreeのPDB freepdb1からダンプ・フォルダにデータをエクスポートします。たとえば:

      /opt/oracle/product/23ai/dbhomeFree/bin/expdp system/system_password@dbhost.example.com:1521/freepdb1 full=Y directory=DUMP_DIR dumpfile=expdb23ai_freepdb1.dmp logfile=expdb23ai_freepdb1.log

      ノート:

      • ご使用のデータベース・ホスト名でdbhost.example.comを置き換えます。必要に応じて、リスナーがリスニングするポート番号で1521を置き換えます。
      • 作成されるPDBのデフォルト名は、26aiではfreepdb1になります。
  3. Oracle Database 26ai Freeを同じシステムにインストールする場合は、23.x Freeを削除します。

  4. Oracle AI Database 26ai Freeをインストールします。

データのインポート

データをOracle AI Database 26ai Freeにインポートするには、PDBごとに次のステップを実行します。この項のステップは、23.x Free PDB freepdb1からデータをインポートして、26ai Freeの同じPDB freepdb1を上書きするためのものです。

  1. ORACLE_HOMEおよびORACLE_SID環境変数を設定します。

    export ORACLE_SID=FREE
    export ORACLE_HOME=/opt/oracle/product/26ai/dbhomeFree
  2. oracleユーザーとしてSYSDBA権限を使用して、ユーザーSYSとして26ai Freeデータベースに接続し、コンテナをfreepdb1に切り替えます。

  3. ディレクトリ・オブジェクトDUMP_DIRを作成し、DUMP_DIRディレクトリに対するREADおよびWRITE権限をSYSTEMユーザーに付与します。

    /opt/oracle/product/26ai/dbhomeFree/bin/sqlplus / AS SYSDBA
    SQL> ALTER SESSION SET CONTAINER=freepdb1;
    SQL> CREATE DIRECTORY DUMP_DIR AS '/opt/dump';
    SQL> GRANT READ, WRITE ON DIRECTORY DUMP_DIR TO SYSTEM;
    
  4. エクスポート操作中に作成されたダンプ・フォルダから、26ai Free PDB freepdb1にデータをインポートします。たとえば:

    /opt/oracle/product/26ai/dbhomeFree/bin/impdp system/system_password@dbhost.example.com:1521/freepdb1 full=Y directory=DUMP_DIR dumpfile=expdb23ai_freepdb1.dmp logfile=impdb26ai_freepdb1.log

    ノート:

    • ご使用のデータベース・ホスト名でdbhost.example.comを置き換えます。必要に応じて、リスナーがリスニングするポート番号で1521を置き換えます。
    • 作成されるPDBのデフォルト名は、26aiではfreepdb1になります。

次のエラーは無視してください。

  • ORA-39342: Data PumpはNETWORK_ACLの依存オブジェクトをインポートしませんでした。前のエラーが原因です
  • ORA-31684: オブジェクト型TABLESPACE:"UNDOTBS1"はすでに存在します
  • ORA-31684: オブジェクト型TABLESPACE:"TEMP"はすでに存在します
  • ORA-31684: オブジェクト型TABLESPACE:"USERS"はすでに存在します
  • ORA-31684: オブジェクト型USER:"PDBADMIN"はすでに存在します
  • ORA-31684: オブジェクト型DIRECTORY:"DUMP_DIR"はすでに存在します