8 以前のバージョンのOracle Database XEからOracle Database Freeへの移行
このトピックでは、Oracle Database 21c Express Edition (XE)とOracle Database 23c Freeの間でデータをエクスポートおよびインポートする方法について説明します。
- Oracle Database 21c XEとOracle Database 23c Freeの間でのデータのエクスポートおよびインポート
- Oracle Database 23c (23.2) FreeとOracle Database 23c (23.3) 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 23c Freeにインポートする必要があります。
Oracle Database 21c XEとOracle Database 23c Freeの間でのデータのエクスポートおよびインポート
Oracle Database 21c Express Edition (XE)とOracle Database 23c Freeの間でデータをエクスポートおよびインポートする方法について学習します。
データのエクスポート
21c XEデータベースからデータをエクスポートするには:
-
root
ユーザーとして、DUMP_DIR
ディレクトリ・オブジェクトのローカル・ファイル・システムに/opt/dump
ディレクトリを作成します。mkdir /opt/dump chown -R oracle:oinstall /opt/dump chmod -R 760 /opt/dump
-
各プラガブル・データベース(PDB)に対して次のステップを実行します。この項のステップは、PDB
xepdb1
の場合を示しています。-
ORACLE_HOMEおよびORACLE_SID環境変数を設定します。
export ORACLE_SID=XE export ORACLE_HOME=/opt/oracle/product/21c/dbhomeXE
-
oracle
ユーザーとしてSYSDBA
権限を使用して、ユーザーSYS
として21c XEデータベースに接続し、コンテナをxepdb1
に切り替えます。 -
ディレクトリ・オブジェクト
DUMP_DIR
を作成し、DUMP_DIR
ディレクトリに対するREAD
およびWRITE
権限をSYSTEM
ユーザーに付与します。/opt/oracle/product/21c/dbhomeXE/bin/sqlplus / AS SYSDBA SQL> ALTER SESSION SET CONTAINER=xepdb1; SQL> CREATE DIRECTORY DUMP_DIR AS '/opt/dump'; SQL> GRANT READ, WRITE ON DIRECTORY DUMP_DIR TO SYSTEM;
-
21c XE PDB
xepdb1
からダンプ・フォルダにデータをエクスポートします。/opt/oracle/product/21c/dbhomeXE/bin/expdp system/system_password@dbhost.example.com:1521/xepdb1 full=Y directory=DUMP_DIR dumpfile=expdb21c_xepdb1.dmp logfile=expdb21c_xepdb1.log
ノート:
- ご使用のデータベース・ホスト名で
dbhost.example.com
を置き換えます。必要に応じて、リスナーがリスニングするポート番号で1521
を置き換えます。 - 作成されるデフォルトのPDB名は、21cでは
xepdb1
、23cではfreepdb1
です。
- ご使用のデータベース・ホスト名で
-
-
Oracle Database 21c XEと同じシステムに23c Freeをインストールする場合は、21c XEをアンインストールします。詳細は、Oracle Database XEのアンインストールを参照してください
-
Oracle Database 23c Freeをインストールします。
データのインポート
データをOracle Database 23c Freeにインポートするには、PDBごとに次のステップを実行します。この項のステップは、PDB xepdb1
からfreepdb1
にデータをインポートする場合を示しています。
-
ORACLE_HOMEおよびORACLE_SID環境変数を設定します。
export ORACLE_SID=FREE export ORACLE_HOME=/opt/oracle/product/23c/dbhomeFree
-
oracle
ユーザーとしてSYSDBA
権限を使用して、ユーザーSYS
として23c Freeデータベースに接続し、コンテナをfreepdb1
に切り替えます。 -
ディレクトリ・オブジェクト
DUMP_DIR
を作成し、DUMP_DIR
ディレクトリに対するREAD
およびWRITE
権限をSYSTEM
ユーザーに付与します。/opt/oracle/product/23c/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;
-
エクスポート操作中に作成されたダンプ・フォルダから、23c Free PDB
freepdb1
にデータをインポートします。/opt/oracle/product/23c/dbhomeFree/bin/impdp system/system_password@dbhost.example.com:1521/freepdb1 full=Y directory=DUMP_DIR dumpfile=expdb21c_xepdb1.dmp logfile=impdb23c_freepdb1.log
ノート:
- ご使用のデータベース・ホスト名で
dbhost.example.com
を置き換えます。必要に応じて、リスナーがリスニングするポート番号で1521
を置き換えます。 - 作成されるデフォルトのPDB名は、21cでは
xepdb1
、23cではfreepdb1
です。
- ご使用のデータベース・ホスト名で
次のエラーは無視してください。
- ORA-31684: オブジェクト型TABLESPACE:"UNDOTBS1"はすでに存在します
- ORA-31684: オブジェクト型TABLESPACE:"TEMP"はすでに存在します
- ORA-31684: オブジェクト型TABLESPACE:"USERS"はすでに存在します
- ORA-31684: オブジェクト型USER:"PDBADMIN"はすでに存在します
- ORA-39083: オブジェクト型PROC_SYSTEM_GRANTの作成が次のエラーで失敗しました:
- ORA-29393: ユーザーEM_EXPRESS_ALLは存在しないか、またはログオンされていません
- ORA-39083: オブジェクト型NETWORK_ACL:TABLE:NACL$_ACE_EXPの作成が次のエラーで失敗しました:
- ORA-01007: 変数への参照がSELECT句にありません。
- ORA-39342: Data PumpはNETWORK_ACLの依存オブジェクトをインポートしませんでした。前のエラーが原因です
- ORA-01007: 変数への参照がSELECT句にありません。
Oracle Database 23c (23.2) FreeとOracle Database 23c (23.3) Freeの間でのデータのエクスポートおよびインポート
Oracle Database 23c (23.2) FreeとOracle Database 23c (23.3) Freeの間でデータをエクスポートおよびインポートする方法について学習します。
データのエクスポート
Oracle Database 23.2 Freeからデータをエクスポートするには:
-
root
ユーザーとして、DUMP_DIR
ディレクトリ・オブジェクトのローカル・ファイル・システムに/opt/dump
ディレクトリを作成します。mkdir /opt/dump chown -R oracle:oinstall /opt/dump chmod -R 760 /opt/dump
-
各プラガブル・データベース(PDB)に対して次のステップを実行します。この項のステップは、PDB
freepdb1
の場合を示しています。-
ORACLE_HOMEおよびORACLE_SID環境変数を設定します。
export ORACLE_SID=FREE export ORACLE_HOME=/opt/oracle/product/23c/dbhomeFree
-
oracle
ユーザーでSYSDBA
権限を使用して、ユーザーSYS
として23.2 Freeデータベースに接続し、コンテナをfreepdb1
に切り替えます。 -
ディレクトリ・オブジェクト
DUMP_DIR
を作成し、DUMP_DIR
ディレクトリに対するREAD
およびWRITE
権限をSYSTEM
ユーザーに付与します。/opt/oracle/product/23c/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;
-
23.2 FreeのPDB
freepdb1
からdumpフォルダにデータをエクスポートします。/opt/oracle/product/23c/dbhomeFree/bin/expdp system/system_password@dbhost.example.com:1521/freepdb1 full=Y directory=DUMP_DIR dumpfile=expdb23c_freepdb1.dmp logfile=expdb23c_freepdb1.log
ノート:
- ご使用のデータベース・ホスト名で
dbhost.example.com
を置き換えます。必要に応じて、リスナーがリスニングするポート番号で1521
を置き換えます。 - 作成されるPDBのデフォルト名は、23.2 Freeと23.3 Freeで
freepdb1
になります。
- ご使用のデータベース・ホスト名で
-
-
Oracle Database 23.3 Freeを同じシステムにインストールする場合は、23.2 Freeをアンインストールします。詳細は、Oracle Database Freeのアンインストールを参照してください
-
Oracle Database 23c (23.3) Freeをインストールします。
データのインポート
データをOracle Database 23c (23.3) Freeにインポートするには、PDBごとに次のステップを実行します。この項のステップは、23.2 FreeのPDB freepdb1
からデータをインポートして、23.3 Freeの同じPDB freepdb1
を上書きするためのものです。
-
ORACLE_HOMEおよびORACLE_SID環境変数を設定します。
export ORACLE_SID=FREE export ORACLE_HOME=/opt/oracle/product/23c/dbhomeFree
-
oracle
ユーザーでSYSDBA
権限を使用して、ユーザーSYS
として23.3 Freeデータベースに接続し、コンテナをfreepdb1
に切り替えます。 -
ディレクトリ・オブジェクト
DUMP_DIR
を作成し、DUMP_DIR
ディレクトリに対するREAD
およびWRITE
権限をSYSTEM
ユーザーに付与します。/opt/oracle/product/23c/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;
-
エクスポート操作中に作成したdumpフォルダから、23.3 FreeのPDB
freepdb1
にデータをインポートします。$ /opt/oracle/product/23c/dbhomeFree/bin/impdp system/system_password@dbhost.example.com:1521/freepdb1 full=Y directory=DUMP_DIR dumpfile=expdb23c_freepdb1.dmp logfile=impdb23c_freepdb1.log
ノート:
- ご使用のデータベース・ホスト名で
dbhost.example.com
を置き換えます。必要に応じて、リスナーがリスニングするポート番号で1521
を置き換えます。 - 作成されるPDBのデフォルト名は、23.2 Freeと23.3 Freeで
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"はすでに存在します