8 以前のバージョンのOracle Database XEからOracle Database Freeへの移行
この項では、Oracle Database Express Edition XE 21cからデータをエクスポートし、Oracle Database 23ai Freeにインポートする方法について説明します。
エクスポートおよびインポート・プロセスを開始する前に、次の点に注意してください。
- Oracle Database Upgrade Assistant (Oracle DBUA)を使用してアップグレードを実行することはできません。
- Oracle Database Configuration Assistant (Oracle DBCA)を使用して、以前のバージョンのPDBをOracle Database Freeに接続することはできません。
- Oracle Database 18c XEユーザーは、最初に21c XEに移行し(「Oracle Database XEの旧バージョンからXE 21cへの移行」を参照)、21c XEからデータをエクスポートしてOracle Database 23ai Freeにインポートする必要があります。
Oracle Database 21c XEとOracle Database 23ai Freeの間でのデータのエクスポートおよびインポート
Oracle Database 21c Express Edition (XE)とOracle Database 23ai Freeの間でデータをエクスポートおよびインポートする方法について学習します。
データのエクスポート
21c XEデータベースからデータをエクスポートするには:
-
DUMP_DIR
ディレクトリ・オブジェクトのC:\Temp\dump1
ディレクトリを作成します。mkdir C:\Temp\dump1
-
各プラガブル・データベース(PDB)に対して次のステップを実行します。この項のステップは、PDB
xepdb1
の場合を示しています。-
ORACLE_HOMEおよびORACLE_SID環境変数を設定します。
set ORACLE_SID=XE set ORACLE_HOME=C:\oldexpxe\dbhomeXE
-
SYSDBA
権限を使用してユーザーSYS
として21c XEデータベースに接続し、コンテナをxepdb1
に切り替えます。 -
ディレクトリ・オブジェクト
DUMP_DIR
を作成し、DUMP_DIR
ディレクトリに対するREAD
およびWRITE
権限をSYSTEM
ユーザーに付与します。SQL> ALTER SESSION SET CONTAINER=xepdb1; SQL> CREATE DIRECTORY DUMP_DIR6 AS 'C:\TEMP\dump1'; SQL> GRANT read, write ON DIRECTORY DUMP_DIR6 TO SYSTEM;
-
21c XE PDB
xepdb1
からダンプ・フォルダにデータをエクスポートします。%ORACLE_HOME%/bin/expdp system/system_password@dbhost.example.com:1521/xepdb1 full=Y directory=DUMP_DIR6 dumpfile=DB10G.dmp logfile=expdpDB10G.log
OUTPUT:Master table "SYSTEM"."SYS_EXPORT_FULL_01" successfully loaded/unloaded ****************************************************************************** Dump file set for SYSTEM.SYS_EXPORT_FULL_01 is: C:\TEMP\DUMP1\DB10G.DMP Job "SYSTEM"."SYS_EXPORT_FULL_01" successfully completed at .*
ノート:
- ご使用のデータベース・ホスト名で
dbhost.example.com
を置き換えます。必要に応じて、リスナーがリスニングするポート番号で1521
を置き換えます。 - 作成されるデフォルトのPDB名は、21cでは
xepdb1
、23aiではfreepdb1
です。
- ご使用のデータベース・ホスト名で
-
-
Oracle Database 23ai Freeを同じシステムにインストールする場合は、21c XEをアンインストールします。詳細は、Oracle Database XEのアンインストールを参照してください。
-
Oracle Database 23ai Freeをインストールします。
データのインポート
データをOracle Database 23ai Freeにインポートするには、PDBごとに次のステップを実行します。この項のステップは、PDB xepdb1
からfreepdb1
にデータをインポートする場合を示しています。
-
ORACLE_HOMEおよびORACLE_SID環境変数を設定します。
set ORACLE_SID=FREE set ORACLE_HOME=C:\newimpfree\dbhomeFree
-
SYSDBA
権限を使用してユーザーSYS
として23ai Freeデータベースに接続し、コンテナをfreepdb1
に切り替えます。 -
ディレクトリ・オブジェクト
DUMP_DIR
を作成し、DUMP_DIR
ディレクトリに対するREAD
およびWRITE
権限をSYSTEM
ユーザーに付与します。SQL> ALTER SESSION SET CONTAINER=freepdb1; SQL> CREATE DIRECTORY DUMP_DIR6 AS 'C:\Temp\dump1'; SQL> GRANT read, write ON DIRECTORY DUMP_DIR6 TO SYSTEM;
-
エクスポート操作中に作成されたダンプ・フォルダから、23ai Free PDB
freepdb1
にデータをインポートします。%ORACLE_HOME%/bin/impdp system/system_password@dbhost.example.com:1521/freepdb1 full=Y directory=DUMP_DIR6 dumpfile=DB10G.dmp logfile=impdb23ai_freepdb1.log
ノート:
- ご使用のデータベース・ホスト名で
dbhost.example.com
を置き換えます。必要に応じて、リスナーがリスニングするポート番号で1521
を置き換えます。 - 作成されるデフォルトのPDB名は、21cでは
xepdb1
、23aiではfreepdb1
です。
- ご使用のデータベース・ホスト名で
次のエラーは無視してください。
- ORA-31684: オブジェクト型TABLESPACE:"UNDOTBS1"はすでに存在します
- ORA-31684: オブジェクト型TABLESPACE:"TEMP"はすでに存在します
- ORA-31684: オブジェクト型TABLESPACE:"USERS"はすでに存在します
- ORA-39083: オブジェクト型PROC_SYSTEM_GRANTの作成が次のエラーで失敗しました:
- ORA-29393: ユーザーEM_EXPRESS_ALLは存在しないか、またはログオンされていません
Failing sql is:
BEGIN
dbms_resource_manager_privs.grant_system_privilege(grantee_name => '"EM_EXPRESS_ALL"', admin_option => TRUE);COMMIT; END;
ORA-31684: Object type DIRECTORY:"DUMP_DIR6" already exists