PDB插拔操作手册

来源:这里教程网 时间:2026-03-03 18:25:38 作者:

一  环境描述

源端:

数据库版本

数据库架构

操作系统版本   

迁移的 pdb

19.3.0.0.0

单机

RHEL7.5

PDB1

 

数据库版本

数据库架构

操作系统版本   

迁移的 pdb

19.3.0.0.0

单机

RHEL7.5

PDB2

 

目标端:

数据库版本

数据库架构

操作系统版本

迁移后的 pdb

19.3.0.0.0

单机

RHEL7.4

PDBNEW

 

数据库版本

数据库架构

操作系统版本

迁移后的 pdb

19.3.0.0.0

单机

RHEL7.4

PDBNEW2

 

先决条件

1  当前用户必须具有SYSDBA 或SYSOPER 的权限。用户必须使用AS SYSDBA 或AS SYSOPER 连接。

2 PDB 必须至少打开一次。

3 确保当前容器是PDB 的根。

如果将PDB 插入CDB 根目录,则当前容器必须是CDB 根目录。如果PDB 已插入应用程序根目录,则当前容器必须是应用程序根目录。

如果要拔出应用程序容器,则当前容器必须是CDB 根目录,并且该应用程序容器中不得插入任何应用程序PDB 。

 

关闭PDB 。

在Oracle Real Application Clusters (Oracle RAC )环境中,必须在所有实例上关闭PDB 。

 

运行ALTER PLUGGABLE DATABASE 带有UNPLUG INTO 子句的语句,并指定要拔出的PDB 以及PDB 的XML 元数据文件或.pdb 文件的名称和位置。

 

XML 文件

一个XML 文件(扩展名为.xml )包含有关PDB 的数据,在拔出该文件后。该元数据包含使CREATE PLUGGABLE DATABASE 目标CDB 上的语句插入PDB  所需的信息。

.pdb 文件

.pdb 文件包含XML 文件的压缩归档文件,该文件描述了PDB 和PDB 使用的文件(例如数据文件和钱包文件)。.pdb 文件使您可以将单个压缩文件(而不是多个文件)复制到新位置,以将PDB 插入CDB 。

 

信息收集

 

确认要拔出的pdb
show pdbs
 
    CON_ID CON_NAME                OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- -------------------- ----------
         2 PDB$SEED                       READ ONLY    NO
         3 PDB1                           READ WRITE   NO
         4 PDB2                           READ WRITE   NO
 
alter session set container=PDB1;
Session altered.
 
show pdbs
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         3 PDB1                             READ WRITE NO
 
select file_name from dba_data_files;
 
FILE_NAME
-------------------------------------------------------------------
/oracle/app/oradata/ORCL/pdb1/system01.dbf
/oracle/app/oradata/ORCL/pdb1/sysaux01.dbf
/oracle/app/oradata/ORCL/pdb1/undotbs01.dbf
/oracle/app/oradata/ORCL/pdb1/users01.dbf
 
alter pluggable database pdb1 close;
Pluggable database altered.
 
 
Pdb2:
alter session set container=PDB2;
Session altered.
 
show pdbs
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         4 PDB2                           MOUNTED
 
select name from  v$datafile;
NAME
---------------------------------------------------------------------
/oracle/app/oradata/ORCL/pdb2/system01.dbf
/oracle/app/oradata/ORCL/pdb2/sysaux01.dbf
/oracle/app/oradata/ORCL/pdb2/undotbs01.dbf
/oracle/app/oradata/ORCL/pdb2/users01.dbf

 

二  拔出pdb :

方法一:XML 方式

alter pluggable database pdb1 unplug into '/oracle/backup/pdb1.xml';
Pluggable database altered.
 
[oracle@pdbprimary backup]$ pwd
/oracle/backup
[oracle@pdbprimary backup]$ ls -rtl
total 8
-rw-r--r-- 1 oracle oinstall 7556 Jul  9 04:24 pdb1.xml

 

方法二:pdb 方式

alter pluggable database pdb2 unplug into '/oracle/backup/pdb2.pdb';
Pluggable database altered.
 
[oracle@pdbprimary backup]$ pwd
/oracle/backup
[oracle@pdbprimary backup]$ ls -rtl
total 131016
-rw-r--r-- 1 oracle oinstall     7556 Jul  9 04:24 pdb1.xml
-rw-r--r-- 1 oracle oinstall 92856320 Jul  9 04:44 pdb2.pdb
 
 
BACKUP FOR TRANSPORT  PLUGGABLE DATABASE 'PDB1' FORMAT '/oracle/backup/pdb1_%U';
 
Starting backup at 10-JUL-20
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=41 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00010 name=/oracle/app/oradata/ORCL/pdb1/sysaux01.dbf
input datafile file number=00009 name=/oracle/app/oradata/ORCL/pdb1/system01.dbf
input datafile file number=00011 name=/oracle/app/oradata/ORCL/pdb1/undotbs01.dbf
input datafile file number=00012 name=/oracle/app/oradata/ORCL/pdb1/users01.dbf
channel ORA_DISK_1: starting piece 1 at 10-JUL-20
channel ORA_DISK_1: finished piece 1 at 10-JUL-20
piece handle=/oracle/backup/pdb1_0lv4tr76_1_1 tag=TAG20200710T014406 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:45
Finished backup at 10-JUL-20
 
[oracle@pdbprimary pdb1]$ scp system01.dbf ora19c@192.168.238.14:/ora19c/app/oracle/oradata/ORA19C/pdbnew
[oracle@pdbprimary pdb1]$ scp sysaux01.dbf ora19c@192.168.238.14:/ora19c/app/oracle/oradata/ORA19C/pdbnew
[oracle@pdbprimary pdb1]$ scp undotbs01.dbf ora19c@192.168.238.14:/ora19c/app/oracle/oradata/ORA19C/pdbnew
[oracle@pdbprimary pdb1]$ scp users01.dbf ora19c@192.168.238.14:/ora19c/app/oracle/oradata/ORA19C/pdbnew
 
 
 
 
[oracle@pdbprimary backup]$ scp pdb1.xml ora19c@192.168.238.14:/ora19c
[oracle@pdbprimary backup]$ scp pdb2.pdb ora19c@192.168.238.14:/ora19c

 

三  插入pdb

兼容性确认

确认/ora19c/pdb1.xml 文件描述的PDB 是否与当前CDB 是否兼容

SET SERVEROUTPUT ON
DECLARE
  compatible CONSTANT VARCHAR2(3) := 
    CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
           pdb_descr_file => '/ora19c/pdb1.xml',
           pdb_name       => 'PDBNEW')
    WHEN TRUE THEN 'YES'
    ELSE 'NO'
END;
BEGIN
  DBMS_OUTPUT.PUT_LINE(compatible);
END;
/

 

方法一:XML 方式

create pluggable database pdbnew using '/ora19c/pdb1.xml' source_file_name_convert=('/oracle/app/oradata/ORCL/pdb1/', '/ora19c/app/oracle/oradata/ORA19C/pdbnew/');
Pluggable database created.
 
 
show pdbs
 
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO
         5 PDBNEW                         MOUNTED
 
alter pluggable database pdbnew open;
Pluggable database altered.
 
 
 
select con_id, dbid, guid, name , open_mode from v$pdbs;
    CON_ID       DBID GUID                             NAME                 OPEN_MODE
---------- ---------- -------------------------------- -------------------- ----------
         2 3860893708 A598EE1CD2A21C73E0530EEEA8C0108A PDB$SEED             READ ONLY
         3 1945262453 A59931254B643126E0530EEEA8C05005 PDB1                 READ WRITE
         5 238100001 A8964753BA696B12E05388EEA8C052C2 PDBNEW               READ WRITE
 
alter session set container=PDBNEW;
Session altered.
 
select name from v$datafile;
 
NAME
-------------------------------------------------------------------------------------------------------------------------------
/ora19c/app/oracle/oradata/ORA19C/ORA19C/A8964753BA696B12E05388EEA8C052C2/datafile/o1_mf_system_hjj9y93p_.dbf
/ora19c/app/oracle/oradata/ORA19C/ORA19C/A8964753BA696B12E05388EEA8C052C2/datafile/o1_mf_sysaux_hjj9y940_.dbf
/ora19c/app/oracle/oradata/ORA19C/ORA19C/A8964753BA696B12E05388EEA8C052C2/datafile/o1_mf_undotbs1_hjj9y94b_.dbf
/ora19c/app/oracle/oradata/ORA19C/ORA19C/A8964753BA696B12E05388EEA8C052C2/datafile/o1_mf_users_hjj9y94h_.dbf

 

 

方法二:pdb 方式

CREATE PLUGGABLE DATABASE PDBNEW2 USING '/ora19c/pdb2.pdb'  STORAGE (MAXSIZE 5G);
Pluggable database created.
 
alter pluggable database PDBNEW2 open;  
Pluggable database altered.
 
select con_id, dbid, guid, name , open_mode from v$pdbs;
 
CON_ID       DBID GUID                             NAME                    OPEN_MODE
---------- ---------- -------------------------------- ------------------------------------ 
         2 3860893708 A598EE1CD2A21C73E0530EEEA8C0108A PDB$SEED                READ ONLY
         3 1945262453 A59931254B643126E0530EEEA8C05005 PDB1                    MOUNTED
         4 1185232805 A8964D946BE26C58E05388EEA8C0D806 PDBNEW2                 READ WRITE
         5  238100001 A8964753BA696B12E05388EEA8C052C2 PDBNEW                  MOUNTED
         6 3758621293 AA61E583B5EF3661E0530EEEA8C0EB84 TESTPDB                 MOUNTED
 
alter session set container=PDBNEW2;                   
Session altered.
 
select name from v$datafile; 
 
NAME
--------------------------------------------------------------------------------------------------------------------------
/ora19c/app/oracle/oradata/ORA19C/ORA19C/A8964D946BE26C58E05388EEA8C0D806/datafile/o1_mf_system_hjzxdo86_.dbf
/ora19c/app/oracle/oradata/ORA19C/ORA19C/A8964D946BE26C58E05388EEA8C0D806/datafile/o1_mf_sysaux_hjzxdo9f_.dbf
/ora19c/app/oracle/oradata/ORA19C/ORA19C/A8964D946BE26C58E05388EEA8C0D806/datafile/o1_mf_undotbs1_hjzxdo9j_.dbf
/ora19c/app/oracle/oradata/ORA19C/ORA19C/A8964D946BE26C58E05388EEA8C0D806/datafile/o1_mf_users_hjzxdo9r_.dbf

相关推荐