1、RMAN只備份CDB
只備份CDB數據庫需要具有SYSDBA或SYSBACKUP權限用戶連接到CDB的root環境下,執行backup database root命令即可完成對CDB的備份,方法如下:
RMAN> backup database root; Starting backup at 08-JUL-21 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=72 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=00001 name=/u01/app/oracle/oradata/T1/system01.dbf input datafile file number=00003 name=/u01/app/oracle/oradata/T1/sysaux01.dbf input datafile file number=00004 name=/u01/app/oracle/oradata/T1/undotbs01.dbf input datafile file number=00007 name=/u01/app/oracle/oradata/T1/users01.dbf channel ORA_DISK_1: starting piece 1 at 08-JUL-21 channel ORA_DISK_1: finished piece 1 at 08-JUL-21 piece handle=/u01/app/backup/backupset/T1_20210708.bak tag=TAG20210708T150300 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03 Finished backup at 08-JUL-21 Starting Control File and SPFILE Autobackup at 08-JUL-21 piece handle=/u01/app/backup/backupset/c-2888150031-20210708-04.ctl comment=NONE Finished Control File and SPFILE Autobackup at 08-JUL-21
查看備份
RMAN> list backupset;

RMAN> list backupset; List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 7 Full 1.14G DISK 00:00:02 08-JUL-21 BP Key: 7 Status: AVAILABLE Compressed: NO Tag: TAG20210708T150300 Piece Name: /u01/app/backup/backupset/T1_20210708.bak List of Datafiles in backup set 7 File LV Type Ckp SCN Ckp Time Abs Fuz SCN Sparse Name ---- -- ---- ---------- --------- ----------- ------ ---- 1 Full 2147117 08-JUL-21 NO /u01/app/oracle/oradata/T1/system01.dbf 3 Full 2147117 08-JUL-21 NO /u01/app/oracle/oradata/T1/sysaux01.dbf 4 Full 2147117 08-JUL-21 NO /u01/app/oracle/oradata/T1/undotbs01.dbf 7 Full 2147117 08-JUL-21 NO /u01/app/oracle/oradata/T1/users01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 8 Full 17.95M DISK 00:00:00 08-JUL-21 BP Key: 8 Status: AVAILABLE Compressed: NO Tag: TAG20210708T150303 Piece Name: /u01/app/backup/backupset/c-2888150031-20210708-04.ctl SPFILE Included: Modification time: 08-JUL-21 SPFILE db_unique_name: T1 Control File Included: Ckp SCN: 2147126 Ckp time: 08-JUL-21
2、rman備份cdb及所有pdb
備份整個CDB數據庫及其下面的所有PDB類似於非CDB數據庫方法相同,使用具有SYSDBA或SYSBACKUP權限用戶連接到CDB的root環境下面,然后執行backup database命令即可完成整個CDB的備份,方法如下:
RMAN> backup database; Starting backup at 08-JUL-21 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=72 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=00001 name=/u01/app/oracle/oradata/T1/system01.dbf input datafile file number=00003 name=/u01/app/oracle/oradata/T1/sysaux01.dbf input datafile file number=00004 name=/u01/app/oracle/oradata/T1/undotbs01.dbf input datafile file number=00007 name=/u01/app/oracle/oradata/T1/users01.dbf channel ORA_DISK_1: starting piece 1 at 08-JUL-21 channel ORA_DISK_1: finished piece 1 at 08-JUL-21 piece handle=/u01/app/backup/backupset/T1_20210708_1077376375.bak tag=TAG20210708T151255 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:07 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=/u01/app/oracle/oradata/T1/pdb/sysaux01.dbf input datafile file number=00009 name=/u01/app/oracle/oradata/T1/pdb/system01.dbf input datafile file number=00011 name=/u01/app/oracle/oradata/T1/pdb/undotbs01.dbf input datafile file number=00012 name=/u01/app/oracle/oradata/T1/pdb/users01.dbf channel ORA_DISK_1: starting piece 1 at 08-JUL-21 channel ORA_DISK_1: finished piece 1 at 08-JUL-21 piece handle=/u01/app/backup/backupset/T1_20210708_1077376382.bak tag=TAG20210708T151255 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:15 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00006 name=/u01/app/oracle/oradata/T1/pdbseed/sysaux01.dbf input datafile file number=00005 name=/u01/app/oracle/oradata/T1/pdbseed/system01.dbf input datafile file number=00008 name=/u01/app/oracle/oradata/T1/pdbseed/undotbs01.dbf channel ORA_DISK_1: starting piece 1 at 08-JUL-21 channel ORA_DISK_1: finished piece 1 at 08-JUL-21 piece handle=/u01/app/backup/backupset/T1_20210708_1077376398.bak tag=TAG20210708T151255 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:15 Finished backup at 08-JUL-21 Starting Control File and SPFILE Autobackup at 08-JUL-21 piece handle=/u01/app/backup/backupset/c-2888150031-20210708-05.ctl comment=NONE Finished Control File and SPFILE Autobackup at 08-JUL-21
查看備份
RMAN> list backupset;

RMAN> list backup; List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 9 Full 1.14G DISK 00:00:04 08-JUL-21 BP Key: 9 Status: AVAILABLE Compressed: NO Tag: TAG20210708T151255 Piece Name: /u01/app/backup/backupset/T1_20210708_1077376375.bak List of Datafiles in backup set 9 File LV Type Ckp SCN Ckp Time Abs Fuz SCN Sparse Name ---- -- ---- ---------- --------- ----------- ------ ---- 1 Full 2163200 08-JUL-21 NO /u01/app/oracle/oradata/T1/system01.dbf 3 Full 2163200 08-JUL-21 NO /u01/app/oracle/oradata/T1/sysaux01.dbf 4 Full 2163200 08-JUL-21 NO /u01/app/oracle/oradata/T1/undotbs01.dbf 7 Full 2163200 08-JUL-21 NO /u01/app/oracle/oradata/T1/users01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 10 Full 496.66M DISK 00:00:09 08-JUL-21 BP Key: 10 Status: AVAILABLE Compressed: NO Tag: TAG20210708T151255 Piece Name: /u01/app/backup/backupset/T1_20210708_1077376382.bak List of Datafiles in backup set 10 Container ID: 3, PDB Name: PDB File LV Type Ckp SCN Ckp Time Abs Fuz SCN Sparse Name ---- -- ---- ---------- --------- ----------- ------ ---- 9 Full 2164523 08-JUL-21 2165833 NO /u01/app/oracle/oradata/T1/pdb/system01.dbf 10 Full 2164523 08-JUL-21 2166235 NO /u01/app/oracle/oradata/T1/pdb/sysaux01.dbf 11 Full 2164523 08-JUL-21 2165014 NO /u01/app/oracle/oradata/T1/pdb/undotbs01.dbf 12 Full 2164523 08-JUL-21 NO /u01/app/oracle/oradata/T1/pdb/users01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 11 Full 556.83M DISK 00:00:10 08-JUL-21 BP Key: 11 Status: AVAILABLE Compressed: NO Tag: TAG20210708T151255 Piece Name: /u01/app/backup/backupset/T1_20210708_1077376398.bak List of Datafiles in backup set 11 Container ID: 2, PDB Name: PDB$SEED File LV Type Ckp SCN Ckp Time Abs Fuz SCN Sparse Name ---- -- ---- ---------- --------- ----------- ------ ---- 5 Full 2131222 08-JUL-21 NO /u01/app/oracle/oradata/T1/pdbseed/system01.dbf 6 Full 2131222 08-JUL-21 NO /u01/app/oracle/oradata/T1/pdbseed/sysaux01.dbf 8 Full 2131222 08-JUL-21 NO /u01/app/oracle/oradata/T1/pdbseed/undotbs01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 12 Full 17.95M DISK 00:00:01 08-JUL-21 BP Key: 12 Status: AVAILABLE Compressed: NO Tag: TAG20210708T151333 Piece Name: /u01/app/backup/backupset/c-2888150031-20210708-05.ctl SPFILE Included: Modification time: 08-JUL-21 SPFILE db_unique_name: T1 Control File Included: Ckp SCN: 2173421 Ckp time: 08-JUL-21
3、備份單個或多個pdb
- 在CDB根(root)使用BACKUP PLUGGABLE DATABASE命令備份一個或多個PDB數據庫。
RMAN> backup pluggable database pdb; Starting backup at 08-JUL-21 using channel ORA_DISK_1 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=/u01/app/oracle/oradata/T1/pdb/sysaux01.dbf input datafile file number=00009 name=/u01/app/oracle/oradata/T1/pdb/system01.dbf input datafile file number=00011 name=/u01/app/oracle/oradata/T1/pdb/undotbs01.dbf input datafile file number=00012 name=/u01/app/oracle/oradata/T1/pdb/users01.dbf channel ORA_DISK_1: starting piece 1 at 08-JUL-21 channel ORA_DISK_1: finished piece 1 at 08-JUL-21 piece handle=/u01/app/backup/backupset/T1_20210708_1077376824.bak tag=TAG20210708T152024 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03 Finished backup at 08-JUL-21 Starting Control File and SPFILE Autobackup at 08-JUL-21 piece handle=/u01/app/backup/backupset/c-2888150031-20210708-06.ctl comment=NONE Finished Control File and SPFILE Autobackup at 08-JUL-21
查看備份

BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 13 Full 521.05M DISK 00:00:02 08-JUL-21 BP Key: 13 Status: AVAILABLE Compressed: NO Tag: TAG20210708T152024 Piece Name: /u01/app/backup/backupset/T1_20210708_1077376824.bak List of Datafiles in backup set 13 Container ID: 3, PDB Name: PDB File LV Type Ckp SCN Ckp Time Abs Fuz SCN Sparse Name ---- -- ---- ---------- --------- ----------- ------ ---- 9 Full 2182713 08-JUL-21 NO /u01/app/oracle/oradata/T1/pdb/system01.dbf 10 Full 2182713 08-JUL-21 NO /u01/app/oracle/oradata/T1/pdb/sysaux01.dbf 11 Full 2182713 08-JUL-21 NO /u01/app/oracle/oradata/T1/pdb/undotbs01.dbf 12 Full 2182713 08-JUL-21 NO /u01/app/oracle/oradata/T1/pdb/users01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 14 Full 17.95M DISK 00:00:00 08-JUL-21 BP Key: 14 Status: AVAILABLE Compressed: NO Tag: TAG20210708T152027 Piece Name: /u01/app/backup/backupset/c-2888150031-20210708-06.ctl SPFILE Included: Modification time: 08-JUL-21 SPFILE db_unique_name: T1 Control File Included: Ckp SCN: 2182722 Ckp time: 08-JUL-21
- 在PDB中使用BACKUP DATABASE備份當前連接的PDB數據庫,前提條件是需要配置好TNSNAMES.ORA文件。
[oracle@T1 network]$ rman target sys/oracle@pdb Recovery Manager: Release 19.0.0.0.0 - Production on Thu Jul 8 15:26:21 2021 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. connected to target database: T1:PDB (DBID=172092073) RMAN> backup database; Starting backup at 08-JUL-21 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=72 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=/u01/app/oracle/oradata/T1/pdb/sysaux01.dbf input datafile file number=00009 name=/u01/app/oracle/oradata/T1/pdb/system01.dbf input datafile file number=00011 name=/u01/app/oracle/oradata/T1/pdb/undotbs01.dbf input datafile file number=00012 name=/u01/app/oracle/oradata/T1/pdb/users01.dbf channel ORA_DISK_1: starting piece 1 at 08-JUL-21 channel ORA_DISK_1: finished piece 1 at 08-JUL-21 piece handle=/u01/app/backup/backupset/T1_20210708_1077377200.bak tag=TAG20210708T152639 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03 Finished backup at 08-JUL-21
恢復
1、整體數據庫恢復(cdb和所有pdb)
19c數據庫加強了RMAN恢復的功能,恢復的方式基本同以前的模式一樣,如果是在一個全新的異地進行恢復
操作步驟:
- 首先准備同版本系統和數據庫軟件,僅安裝數據庫軟件;
- 備份完將所有備份介質傳到異地服務器B(如果兩台機器是內連網絡,可以考慮結合NFS服務從一開始就備份到服務器B上)。
- 通過RMAN命令或者拷貝原始庫的控制文件到新庫上,修改參數文件、創建數據文件路徑等,啟動CDB數據庫到mount狀態,聲明恢復目錄
- restore還原數據文件
- recover恢復到故障時間點
- 其他調整
2、單個pdb數據庫恢復
恢復單個PDB的前提是CDB已經能夠正常啟動,在CDB啟動的情況下在RMAN中采用restore pluggable database pdb名稱指定單個PDB數據庫進行恢復,如下:
RMAN>restore pluggable database pdb; ... RMAN>recover pluggable database pdb; ... 最后,使用restlogs方式打開數據庫 SQL>alter pluggable database pdb pdb resetlogs;
3、恢復pdb數據文件
數據庫在open的時候,會對當前的數據的所有數據文件進行檢查。如果數據文件出現異常,則從報錯中獲取數據文件id,到rman下進行還原和恢復后方能正常啟動數據庫。(還原的前提是你有數據庫的rman備份數據,包括:數據文件備份、歸檔日志備份、還可能用到redo文件)
當CDB在打開的時候,數據庫不會檢查pdb中的數據文件。
RMAN>restore datafile datafile_id; ... RMAN>recover datafile datafile_id; ... 最后,再次打開數據庫 SQL>alter database open;