How to Move a PDB Back to a Non-CDB Using TRANSPORTABLE=ALWAYS (Doc ID 2027352.1)
APPLIES TO:
Oracle Database - Enterprise Edition - Version 12.1.0.1 and later
Oracle Database Cloud Schema Service - Version N/A and later
Oracle Database Exadata Cloud Machine - Version N/A and later
Oracle Cloud Infrastructure - Database Service - Version N/A and later
Oracle Database Cloud Exadata Service - Version N/A and later
Information in this document applies to any platform.
GOAL
You want to move a PDB back to a non-CDB. Probably the easiest way is to use the FULLY TRANSPORTABLE feature of expdp to accomplish this (FULL=Y TRANSPORTABLE=ALWAYS).
您想将PDB移回non-CDB。可能最简单的方法是使用expdp的 FULLY TRANSPORTABLE 功能来完成此操作 (FULL=Y TRANSPORTABLE=ALWAYS)。
SOLUTION
The requirements/limitations are the same when you use TRANSPORTABLE=ALWAYS to move back to a non-CDB from a PDB, as they are when moving between non-CDBs, such as same characterset, same RDBMS version and patches, etc. (See note "Transportable Tablespace (TTS) Restrictions and Limitations: Details, Reference, and Version Where Applicable (Doc ID 1454872.1).")
当您使用 TRANSPORTABLE = ALWAYS 从PDB移回到non-CDB时,要求/限制是相同的,就像在non-CDB之间移动时(例如相同的字符集,相同的RDBMS版本和补丁程序等)一样。(See note "Transportable Tablespace (TTS) Restrictions and Limitations: Details, Reference, and Version Where Applicable (Doc ID 1454872.1).")
The overall steps are basically the same as exporting from a non-CDB, but need some modifications, per steps 2,3,4, 10.
总体步骤与从non-CDB导出的步骤基本相同,但是每个步骤2、3、4、10都需要进行一些修改。
1. Target - Create a new, empty, non-CDB database, using the same 12c binaries (same RDBMS version and patches). 使用相同的12c二进制文件(相同的RDBMS版本和补丁程序)创建一个新的空non-CDB数据库。
2. Source - Put the PDB‘s user-defined tablespace(s) in read-only mode. 将PDB的用户定义表空间置于只读模式
3. Source - From the PDB, create a directory for where the metadata dumpfile will be created (named TC_DIR in the example; note: you cannot modify DATA_PUMP_DIR for use in a PDB.) 在PDB中,创建用于创建元数据转储文件的目录(在示例中名为TC_DIR;注意:您不能修改DATA_PUMP_DIR以便在PDB中使用。)
4. Source - Run the export from the CDB. Example: 从CDB运行导出
host expdp system/<password>@<pdbname> directory=TC_DIR dumpfile=fullexp.dmp logfile=fullexp.log full=y transportable=always;
5. Copy the fullexp.dmp file from the target directory to the source directory. 将 fullexp.dmp 文件从目标目录复制到源目录
6. The export log will list the datafiles that need to be copied to the target. Example: export log将列出需要复制到目标的数据文件
****************************************************************************** Datafiles required for transportable tablespace USERS: <DIRECTORY>/pdb1/users01.dbf <------- Job "SYSTEM"."SYS_EXPORT_FULL_01" successfully completed at Mon Jun 29 18:38:28 2015 elapsed 0 00:04:52
7. Copy (and endian convert, if necessary) the datafiles to the desired location on the target. 将数据文件复制(并在需要时进行字节序转换)到目标上的所需位置。
8. Target - Create the directory pointing to the location of the metadata dumpfile (named TC_DIR in the example). 创建指向元数据转储文件位置的目录(在示例中名为TC_DIR)
9. Target - Import as normal for a regular TTS import, but add the full=y parameter. Example: TTS导入添加full = y参数
host impdp system/<password> directory=TC_DIR dumpfile=fullexp.dmp logfile=fullimp.log full=y transport_datafiles=‘<new_path_on_target>/users01.dbf‘
10. Source - If you want to keep the PDB, you are done. If you do not want the PDB, unplug it and then drop it (you will have to manually drop the datafiles if you do not unplug the PDB first). Example:
如果您要保留PDB,请完成。 如果您不希望使用PDB,请先将其拔出再删除(如果您不首先拔出PDB,则必须手动删除数据文件)
ALTER PLUGGABLE DATABASE <pdb_name> UNPLUG INTO ‘<path_name>/<pdb_name>.xml‘; DROP PLUGGABLE DATABASE <pdb_name> INCLUDING DATAFILES;
To move from 12c PDB to 11g NON-CDB: 要将12c PDB移至11g NON-CDB,请执行以下操作:
1,It is required to first move from 12c PDB to 12c Non-CDB 必须先从12c PDB移至12c Non-CDB
2,Then move the 12c Non-CDB to 11g 然后将12 Non-CDB移到11g
Check:
Transportable Tablespace (TTS) Restrictions and Limitations: Details, Reference, and Version Where Applicable (Doc ID 1454872.1)
REFERENCES
NOTE:1166564.1 - Master Note for Transportable Tablespaces (TTS) -- Common Questions and Issues