10 データおよびアプリケーションの移行
様々な方法を使用して、XEデータベースとの間でデータおよびアプリケーションを移行できます。
あるXEインストールから表およびデータをエクスポートして、別のXEインストールにインポートできます。データをエクスポートするには、11gリリース2以上を使用することをお薦めします。
Oracle Database XE 18cからOracle Database Enterprise Edition 18cへの移行は、切断、接続シナリオのみでサポートされます。XE 18cデータベースからPDBを切断し、同じリリースの別のEnterpise Edition 18cデータベースに接続できます。Oracle Database XE 18cから他のOracle Database 18cオファリングへの移行はサポートされていません。
Oracle Database XE 11.2からOracle Database XE 18cへのアップグレードはサポートされていません。
18c XEからPDBを切断し、18c EEに接続する手順
Oracle Database XE 18cで作成されたプラガブル・データベース(PDB)は、別のマルチテナント・コンテナ・データベース(CDB) Enterprise Edition (EE) 18cに移行できます。
標準のプラグ互換性要件が適用されます。 PDB作成の一般的な前提条件の詳細は、Oracle Multitenant管理者ガイドを参照してください。
-
XEデータベースからxepdb1を切断し、次のコマンドを使用して
/tmp/xepdb1.xml
メタデータ・ファイルを作成します。ALTER PLUGGABLE DATABASE xepdb1 UNPLUG INTO '/tmp/xepdb1.xml';
-
EE環境にログインします。xepdb1メタデータ・ファイルは、そのシステムから使用可能である必要があります。
-
DBMS_PDB.CHECK_PLUG_COMPATIBILITYファンクションを実行して、切断されたPDBがCDBと互換性があるかどうかを確認します。
SET SERVEROUTPUT ON DECLARE compatible CONSTANT VARCHAR2(3) := CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY( pdb_descr_file => '/tmp/xepdb1.xml', pdb_name => 'XEPDB1') WHEN TRUE THEN 'YES' ELSE 'NO' END; BEGIN DBMS_OUTPUT.PUT_LINE(compatible); END; /
-
PDBがCDBと互換性がある場合は、次のコマンドを使用してxepdb1を18c EEデータベースに接続できます。この例では、次のように仮定します。
CREATE PLUGGABLE DATABASE NEWXEPDB USING '/tmp/xepdb1.xml' NOCOPY TEMPFILE REUSE;
-
XMLファイルにファイルの現在の場所が正確に記述されています。したがって、SOURCE_FILE_NAME_CONVERTまたはSOURCE_FILE_DIRECTORY句は不要です。
-
ファイルは、正しい場所に存在します。したがって、NOCOPYが含まれています。
-
PDBにはストレージ制限は必要ありません。したがって、STORAGE句は必要ありません。
-
ターゲットの場所に、XMLファイルで指定されている一時ファイルと同じ名前のファイルがあります。したがって、TEMPFILE REUSE句が必要です。
-
-
カタログ、catprocおよびutrlpを、接続されたNEWXEPDBで実行します。
sqlplus / as sysdba
SQL> SHOW PDBS; CON_ID CON_NAME OPEN MODE RESTRICTED ------ ---------------- ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB READ WRITE NO 4 NEWXEPDB READ WRITE YES
SQL> ALTER SESSION SET CONTAINER=newxepdb; SQL> SPOOL catalog.log SQL> @$ORACLE_HOME/rdbms/admin/catalog SQL> SPOOL OFF; SQL> SPOOL catproc.log SQL> @$ORACLE_HOME/rdbms/admin/catproc SQL> SPOOL OFF; SQL> SPOOL utlrp.log SQL> @$ORACLE_HOME/rdbms/admin/utlrp SQL> SPOOL OFF;
SELECT COMP_NAME, STATUS, VERSION FROM DBA_REGISTRY; COMP_NAME STATUS VERSION ----------------------------------- ------------ ------------ Oracle Database Catalog Views VALID 18.0.0.0.0 Oracle Database Packages and Types VALID 18.0.0.0.0 Oracle Real Application Clusters OPTION OFF 18.0.0.0.0 JServer JAVA Virtual Machine VALID 18.0.0.0.0 Oracle XDK VALID 18.0.0.0.0 Oracle Database Java Packages VALID 18.0.0.0.0 OLAP Analytic Workspace VALID 18.0.0.0.0 Oracle XML Database VALID 18.0.0.0.0 Oracle Workspace Manager VALID 18.0.0.0.0 Oracle Text VALID 18.0.0.0.0 Oracle Multimedia VALID 18.0.0.0.0 Spatial VALID 18.0.0.0.0 Oracle OLAP API VALID 18.0.0.0.0 Oracle Label Security VALID 18.0.0.0.0 Oracle Database Vault VALID 18.0.0.0.0
SQL> SELECT OWNER, OBJECT_NAME FROM DBA_INVALID_OBJECTS WHERE STATUS = 'INVALID'; no rows selected