In multitenant architecture, there are two databases involved, container
database and pluggable database.
To manage RMAN backups of these databases, we need to consider different
scenarios,
- Backup of a container database (CDB+PDB)
- Backup of pluggable database
- Backup of the root container
Case 1: RMAN Backup of container (CDB) plus pluggable database (PDB)
SQL>
show parameter db_name
NAME
TYPE VALUE
---------------------
----------- --------------------------
db_name
string FREE
SQL>
SQL>
show pdbs
CON_ID
CON_NAME
OPEN MODE RESTRICTED
---------
----------------------- ---------- ----------
2
PDB$SEED
READ ONLY NO
3
FREEPDB1
READ WRITE NO
SQL>
The container database name is FREE while Pluggable database name is
FREEPDB1,
now we will take a backup of the pluggable and container databases
together
Create one directory to take backup of the databases
[oracle@localhost oracle]$ mkdir -p /opt/oracle/db_backup
[oracle@localhost
oracle]$ cd /opt/oracle/db_backup
[oracle@localhost
db_backup]$
Prepare a script to take backup of the database (CDB+PDB)
run
{
allocate
channel disk1 type disk format
'/opt/oracle/db_backup/full_backup_free_%t_%s_%p_%U.bck';
BACKUP
DATABASE plus ARCHIVELOG;
release
channel disk1;
}
Output of backup script
[oracle@localhost db_backup]$ rman target /
Recovery Manager: Release 23.0.0.0.0 - Developer-Release on Sun Mar 17 10:07:55 2024
Version
23.2.0.0.0
Copyright (c) 1982, 2023, Oracle and/or its affiliates. All rights reserved.
connected to target database: FREE (DBID=1408182090)
RMAN> run
{
allocate
channel disk1 type disk format
'/opt/oracle/db_backup/full_backup_free_%t_%s_%p_%U.bck';
BACKUP
DATABASE plus ARCHIVELOG;
release
channel disk1;
}run
2> {
3>
allocate channel disk1 type disk format
'/opt/oracle/db_backup/full_backup_free_%t_%s_%p_%U.bck';
4>
BACKUP DATABASE plus ARCHIVELOG;
5>
release channel disk1;
6>
}
using
target database control file instead of recovery catalog
allocated
channel: disk1
channel
disk1: SID=56 device type=DISK
Starting backup at 17-MAR-24
current log
archived
channel
disk1: starting archived log backup set
channel
disk1: specifying archived log(s) in backup set
input
archived log thread=1 sequence=9 RECID=1 STAMP=1163844377
input
archived log thread=1 sequence=10 RECID=2 STAMP=1163844465
input
archived log thread=1 sequence=11 RECID=3 STAMP=1163844483
channel
disk1: starting piece 1 at 17-MAR-24
channel
disk1: finished piece 1 at 17-MAR-24
piece
handle=/opt/oracle/db_backup/full_backup_free_1163844483_152_1_4o2ltms3_152_1_1.bck
tag=TAG20240317T100803 comment=NONE
channel
disk1: backup set complete, elapsed time: 00:00:01
Finished
backup at 17-MAR-24
Starting
backup at 17-MAR-24
channel
disk1: starting full datafile backup set
channel
disk1: specifying datafile(s) in backup set
input
datafile file number=00016 name=/opt/oracle/oradata/FREE/undotbs2.dbf
input
datafile file number=00001 name=/opt/oracle/oradata/FREE/system01.dbf
input
datafile file number=00003 name=/opt/oracle/oradata/FREE/sysaux01.dbf
input
datafile file number=00007 name=/opt/oracle/oradata/FREE/users01.dbf
channel
disk1: starting piece 1 at 17-MAR-24
channel
disk1: finished piece 1 at 17-MAR-24
piece
handle=/opt/oracle/db_backup/full_backup_free_1163844486_153_1_4p2ltms6_153_1_1.bck
tag=TAG20240317T100805 comment=NONE
channel
disk1: backup set complete, elapsed time: 00:00:36
channel
disk1: starting full datafile backup set
channel
disk1: specifying datafile(s) in backup set
input
datafile file number=00013 name=/opt/oracle/oradata/FREE/FREEPDB1/sysaux01.dbf
input
datafile file number=00012 name=/opt/oracle/oradata/FREE/FREEPDB1/system01.dbf
input
datafile file number=00015 name=/opt/oracle/oradata/FREE/FREEPDB1/users01.dbf
input
datafile file number=00014 name=/opt/oracle/oradata/FREE/FREEPDB1/undotbs01.dbf
channel
disk1: starting piece 1 at 17-MAR-24
channel
disk1: finished piece 1 at 17-MAR-24
piece
handle=/opt/oracle/db_backup/full_backup_free_1163844522_154_1_4q2ltmta_154_1_1.bck
tag=TAG20240317T100805 comment=NONE
channel
disk1: backup set complete, elapsed time: 00:00:15
channel
disk1: starting full datafile backup set
channel
disk1: specifying datafile(s) in backup set
input
datafile file number=00004 name=/opt/oracle/oradata/FREE/pdbseed/sysaux01.dbf
input
datafile file number=00002 name=/opt/oracle/oradata/FREE/pdbseed/system01.dbf
input
datafile file number=00009 name=/opt/oracle/oradata/FREE/pdbseed/undotbs01.dbf
channel
disk1: starting piece 1 at 17-MAR-24
channel
disk1: finished piece 1 at 17-MAR-24
piece
handle=/opt/oracle/db_backup/full_backup_free_1163844537_155_1_4r2ltmtp_155_1_1.bck
tag=TAG20240317T100805 comment=NONE
channel
disk1: backup set complete, elapsed time: 00:00:07
Finished
backup at 17-MAR-24
Starting
backup at 17-MAR-24
current log
archived
channel
disk1: starting archived log backup set
channel
disk1: specifying archived log(s) in backup set
input
archived log thread=1 sequence=12 RECID=4 STAMP=1163844545
channel
disk1: starting piece 1 at 17-MAR-24
channel
disk1: finished piece 1 at 17-MAR-24
piece
handle=/opt/oracle/db_backup/full_backup_free_1163844545_156_1_4s2ltmu1_156_1_1.bck
tag=TAG20240317T100905 comment=NONE
channel
disk1: backup set complete, elapsed time: 00:00:01
Finished
backup at 17-MAR-24
Starting
Control File and SPFILE Autobackup at 17-MAR-24
piece
handle=/opt/oracle/product/23c/dbhomeFree/dbs/c-1408182090-20240317-01
comment=NONE
Finished
Control File and SPFILE Autobackup at 17-MAR-24
released channel: disk1
RMAN>
Case 2 : RMAN Backup of Root Container
[oracle@localhost db_backup]$ rman target /
Recovery Manager: Release 23.0.0.0.0 - Developer-Release on Sun Mar 17 10:10:08 2024
Version
23.2.0.0.0
Copyright (c) 1982, 2023, Oracle and/or its affiliates. All rights reserved.
connected to target database: FREE (DBID=1408182090)
RMAN> run
{
allocate
channel disk1 type disk format
'/opt/oracle/db_backup/full_backup_ROOT_%t_%s_%p_%U.bck';
BACKUP
DATABASE ROOT;
release
channel disk1;
}run
2> {
3>
allocate channel disk1 type disk format
'/opt/oracle/db_backup/full_backup_ROOT_%t_%s_%p_%U.bck';
4>
BACKUP DATABASE ROOT;
5>
release channel disk1;
6>
}
using
target database control file instead of recovery catalog
allocated
channel: disk1
channel
disk1: SID=60 device type=DISK
Starting backup at 17-MAR-24
channel
disk1: starting full datafile backup set
channel
disk1: specifying datafile(s) in backup set
input
datafile file number=00016 name=/opt/oracle/oradata/FREE/undotbs2.dbf
input
datafile file number=00001 name=/opt/oracle/oradata/FREE/system01.dbf
input
datafile file number=00003 name=/opt/oracle/oradata/FREE/sysaux01.dbf
input
datafile file number=00007 name=/opt/oracle/oradata/FREE/users01.dbf
channel
disk1: starting piece 1 at 17-MAR-24
channel
disk1: finished piece 1 at 17-MAR-24
piece
handle=/opt/oracle/db_backup/full_backup_ROOT_1163844660_158_1_4u2ltn1k_158_1_1.bck
tag=TAG20240317T101059 comment=NONE
channel
disk1: backup set complete, elapsed time: 00:00:35
Finished
backup at 17-MAR-24
Starting
Control File and SPFILE Autobackup at 17-MAR-24
piece
handle=/opt/oracle/product/23c/dbhomeFree/dbs/c-1408182090-20240317-02
comment=NONE
Finished
Control File and SPFILE Autobackup at 17-MAR-24
released channel: disk1
RMAN>
Case 3: RMAN Backup of Pluggable Database
[oracle@localhost db_backup]$ rman target /
Recovery Manager: Release 23.0.0.0.0 - Developer-Release on Sun Mar 17 10:17:26 2024
Version
23.2.0.0.0
Copyright
(c) 1982, 2023, Oracle and/or its affiliates. All rights reserved.
connected
to target database: FREE (DBID=1408182090)
RMAN>
run
{
allocate
channel disk1 type disk format
'/opt/oracle/db_backup/full_backup_freepdb1_%t_%s_%p_%U.bck';
BACKUP
PLUGGABLE DATABASE freepdb1;
release
channel disk1;
}run
2> {
3>
allocate channel disk1 type disk format
'/opt/oracle/db_backup/full_backup_freepdb1_%t_%s_%p_%U.bck';
4>
BACKUP PLUGGABLE DATABASE freepdb1;
5>
release channel disk1;
6>
}
using
target database control file instead of recovery catalog
allocated
channel: disk1
channel
disk1: SID=294 device type=DISK
Starting
backup at 17-MAR-24
channel
disk1: starting full datafile backup set
channel
disk1: specifying datafile(s) in backup set
input
datafile file number=00013 name=/opt/oracle/oradata/FREE/FREEPDB1/sysaux01.dbf
input
datafile file number=00012 name=/opt/oracle/oradata/FREE/FREEPDB1/system01.dbf
input
datafile file number=00015 name=/opt/oracle/oradata/FREE/FREEPDB1/users01.dbf
input
datafile file number=00014 name=/opt/oracle/oradata/FREE/FREEPDB1/undotbs01.dbf
channel
disk1: starting piece 1 at 17-MAR-24
channel
disk1: finished piece 1 at 17-MAR-24
piece
handle=/opt/oracle/db_backup/full_backup_freepdb1_1163845061_160_1_502ltne5_160_1_1.bck
tag=TAG20240317T101740 comment=NONE
channel
disk1: backup set complete, elapsed time: 00:00:15
Finished
backup at 17-MAR-24
Starting Control File and SPFILE Autobackup at 17-MAR-24
piece
handle=/opt/oracle/product/23c/dbhomeFree/dbs/c-1408182090-20240317-03
comment=NONE
Finished
Control File and SPFILE Autobackup at 17-MAR-24
released channel: disk1
RMAN>