8 以前のバージョンのOracle Database XEからOracle Database Freeへの移行
このトピックでは、Oracle Database 21c Express Edition (XE)とOracle Database 23ai Freeの間でデータをエクスポートおよびインポートする方法について説明します。
- Oracle Database 21c XEとOracle Database 23ai Freeの間でのデータのエクスポートおよびインポート
- Oracle Database 23.x Freeと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データベースからデータをエクスポートするには:
-
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
、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環境変数を設定します。
export ORACLE_SID=FREE export ORACLE_HOME=/opt/oracle/product/23ai/dbhomeFree
-
oracle
ユーザーとしてSYSDBA
権限を使用して、ユーザーSYS
として23ai Freeデータベースに接続し、コンテナをfreepdb1
に切り替えます。 -
ディレクトリ・オブジェクト
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;
-
エクスポート操作中に作成されたダンプ・フォルダから、23ai Free PDB
freepdb1
にデータをインポートします。/opt/oracle/product/23ai/dbhomeFree/bin/impdp system/system_password@dbhost.example.com:1521/freepdb1 full=Y directory=DUMP_DIR dumpfile=expdb21c_xepdb1.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-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 23.x FreeとOracle Database 23ai Freeの間でのデータのエクスポートおよびインポート
Oracle Database 23.x FreeとOracle Database 23ai Freeの間でデータをエクスポートおよびインポートする方法について学習します。
ノート:
Oracle Database 23.x Freeはリリース23.2または23.3を表します。データのエクスポート
Oracle Database 23.x 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.x 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.x FreeのPDB
freepdb1
からダンプ・フォルダにデータをエクスポートします。/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.xでは
freepdb1
になります。
- ご使用のデータベース・ホスト名で
-
-
Oracle Database 23ai Freeを同じシステムにインストールする場合は、23.x Freeを削除します。詳細は、Oracle Database Freeのアンインストールを参照してください
-
Oracle Database 23ai Freeをインストールします。
データのインポート
データをOracle Database 23ai Freeにインポートするには、PDBごとに次のステップを実行します。この項のステップは、23.x Free PDB freepdb1
からデータをインポートして、23ai Freeの同じPDB freepdb1
を上書きするためのものです。
-
ORACLE_HOMEおよびORACLE_SID環境変数を設定します。
export ORACLE_SID=FREE export ORACLE_HOME=/opt/oracle/product/23ai/dbhomeFree
-
oracle
ユーザーとしてSYSDBA
権限を使用して、ユーザーSYS
として23ai Freeデータベースに接続し、コンテナをfreepdb1
に切り替えます。 -
ディレクトリ・オブジェクト
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;
-
エクスポート操作中に作成されたダンプ・フォルダから、23ai Free PDB
freepdb1
にデータをインポートします。/opt/oracle/product/23ai/dbhomeFree/bin/impdp system/system_password@dbhost.example.com:1521/freepdb1 full=Y directory=DUMP_DIR dumpfile=expdb23c_freepdb1.dmp logfile=impdb23ai_freepdb1.log
ノート:
- ご使用のデータベース・ホスト名で
dbhost.example.com
を置き換えます。必要に応じて、リスナーがリスニングするポート番号で1521
を置き換えます。 - 作成されるPDBのデフォルト名は、23.xでは
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"はすでに存在します