How to rename a pluggable database in Oracle

Renaming the PDB database in Oracle

Rename the PD1 database to PDB2 in the following example. Following are the steps involved for PDB1 to PDB2 rename:

1. Check the PDB present in Container database.

select name from v$pdbs;

2. Open the database in Restricted Mode.

alter pluggable database PDB1 close;
alter pluggable database PDB1 open restricted;


3. Check database in restricted Mode.

select con_id, name, open_mode,restricted from v$containers;

CON_ID  NAME       OPEN_MODE  RES
------  ---------  ---------- ----------
1       CDB$ROOT   READ WRITE NO
2       PDB$SEED   READ ONLY  NO
3       PDB1       READ WRITE YES

show pdbs

CON_ID CON_NAME     OPEN MODE  RESTRICTED
------ ------------ ---------- ----------
2     PDB$SEED     READ ONLY  NO
3      PDB1         READ WRITE YES

4. Rename the PDB1 database by connecting it.

alter session set container=PDB1;
alter pluggable database rename global_name to PDB2;

Note: Database name is rename but for naming convention you can move all datafiles to PDB2 folder for better understanding.

5. Make a new directory with name PDB2 in Oradata folder and check datafiles path
Note: ORCL is our CDB database

mkdir C:\oracle\oradata\orcl\pdb2

SQL> show con_name
CON_NAME
---------
PDB2

select file_name from dba_data_files;
FILE_NAME
----------------------------------------
C:\ORACLE\ORADATA\ORCL\PDB1\EXAMPLE01.DBF
C:\ORACLE\ORADATA\ORCL\PDB1\SAMPLE_SCHEMA_USERS01.DBF
C:\ORACLE\ORADATA\ORCL\PDB1\SYSAUX01.DBF
C:\ORACLE\ORADATA\ORCL\PDB1\SYSTEM01.DBF

6. Move the datafile from PDB1 folder to PDB2 folder.

alter database move datafile 'C:\ORACLE\ORADATA\ORCL\PDB1\EXAMPLE01.DBF' to 'C:\ORACLE\ORADATA\ORCL\PDB2\EXAMPLE01.DBF';
alter database move datafile 'C:\ORACLE\ORADATA\ORCL\PDB1\SAMPLE_SCHEMA_USERS01.DBF' to 'C:\ORACLE\ORADATA\ORCL\PDB2\SAMPLE_SCHEMA_USERS01.DBF';
alter database move datafile 'C:\ORACLE\ORADATA\ORCL\PDB1\SYSAUX01.DBF' to 'C:\ORACLE\ORADATA\ORCL\PDB2\SYSAUX01.DBF';
alter database move datafile 'C:\ORACLE\ORADATA\ORCL\PDB1\SYSTEM01.DBF' to 'C:\ORACLE\ORADATA\ORCL\PDB2\SYSTEM01.DBF';

7. Check Create and Drop the temp file.

SQL> select file_name from dba_Temp_files;
FILE_NAME
---------------------------------------------
C:\ORACLE\ORADATA\ORCL\PDB1\PDB1_TEMP01.DBF

alter tablespace TEMP add tempfile 'C:\ORACLE\ORADATA\ORCL\PDB2\PDB2_TEMP01.DBF' size 20M reuse;

alter database tempfile 'C:\ORACLE\ORADATA\ORCL\PDB1\PDB1_TEMP01.DBF' drop including datafiles;

8. Check the PDB database.

select name, open_mode from v$pdbs;

NAME OPEN_MODE
------------------ ----------
PDB2 READ WRITE

9. Close the PDB2 database and open in normal mode.

alter pluggable database pdb2 close;
alter pluggable database pdb2 open;
-- to save the state in UPPER VERSION 12.1.0.2
alter pluggable database pdb2 save state;




Leave a Reply