1 备份
1.1 全库备份(所有PDB + CDB)
备份脚本参考:
RMAN 备份 shell 脚本
https://www.cndba.cn/dave/article/131676
脚本里相关环境变量和备份策略需要根据实际情况修改一下。
注意需要先启用归档模式:
SQL> alter system set log_archive_dest_1='location=/u01/archivelog' scope=both;
SQL> alter system set log_archive_format = "arch_%t_%s_%r.arc" scope=spfile;
SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 20G SCOPE=BOTH;
SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '/u01/archivelog' SCOPE=BOTH;
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database open;
SQL> archive log list;
CDB备份全库:
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 DAVE READ WRITE NO
4 ORCL READ WRITE NO
SQL>
[dave@cndba.cn u03]$ sh rman.sh
查看日志:
[dave@cndba.cn u03]$ tail dg1.rman.sh.out
32 B 0 A DISK 2025:07:0411:18:55 1 1 NO CD_LEV0
35 B F A DISK 2025:07:0411:19:01 1 1 NO TAG20250704T111901
RMAN> RMAN>
Recovery Manager complete.
Script rman.sh
==== CNDBA Database backup successfully on 2025/07/04-11:19:11 ====
[dave@cndba.cn u03]$
1.2 备份CDB
只备份CDB$ROOT和PDB$SEED:
RMAN> backup pluggable database "CDB$ROOT","PDB$SEED" format '/u03/backup/test_%U_%T.bak';
如下命令也是备份CDB$ROOT:
RMAN> backup database root;
查看备份:
RMAN> list backup of database "PDB$SEED";
RMAN> list backup of database root;
1.3 备份PDB
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 DAVE READ WRITE NO
4 ORCL READ WRITE NO
RMAN> backup as backupset incremental level=0 pluggable database dave,orcl;
查看备份:
RMAN> list backup of pluggable database dave;
2 恢复
2.1 全库恢复
数据库需要处于MOUNT模式才能进行下面的恢复。
查看备份集:
RMAN> list backupset;
RMAN> list backup summary;
List of Backups
===============
Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
------- -- -- - ----------- ------------------ ------- ------- ---------- ---
18 B 0 A DISK 2025:07:0411:18:31 1 1 NO CD_LEV0
19 B 0 A DISK 2025:07:0411:18:46 1 1 NO CD_LEV0
20 B 0 A DISK 2025:07:0411:18:46 1 1 NO CD_LEV0
21 B 0 A DISK 2025:07:0411:18:46 1 1 NO CD_LEV0
22 B 0 A DISK 2025:07:0411:18:46 1 1 NO CD_LEV0
23 B 0 A DISK 2025:07:0411:18:47 1 1 NO CD_LEV0
24 B 0 A DISK 2025:07:0411:18:47 1 1 NO CD_LEV0
25 B 0 A DISK 2025:07:0411:18:49 1 1 NO CD_LEV0
26 B 0 A DISK 2025:07:0411:18:49 1 1 NO CD_LEV0
27 B 0 A DISK 2025:07:0411:18:49 1 1 NO CD_LEV0
28 B 0 A DISK 2025:07:0411:18:50 1 1 NO CD_LEV0
29 B 0 A DISK 2025:07:0411:18:50 1 1 NO CD_LEV0
30 B 0 A DISK 2025:07:0411:18:51 1 1 NO CD_LEV0
31 B 0 A DISK 2025:07:0411:18:51 1 1 NO CD_LEV0
32 B 0 A DISK 2025:07:0411:18:55 1 1 NO CD_LEV0
35 B F A DISK 2025:07:0411:19:01 1 1 NO TAG20250704T111901
RMAN>
启动数据库到mount 状态:
SQL> shutdown immediate
SQL> startup mount;
执行恢复:
[dave@cndba.cn archivelog]$ rman target /
Recovery Manager: Release 19.0.0.0.0 - Production on Fri Jul 4 11:43:13 2025
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database: CNDBA (DBID=469831111, not open)
RMAN> restore database;
RMAN> recover database;
2.2 恢复参数文件
查看备份的参数文件:
RMAN> list backup of spfile;
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ------------------
35 Full 17.95M DISK 00:00:00 2025:07:0411:19:01
BP Key: 35 Status: AVAILABLE Compressed: NO Tag: TAG20250704T111901
Piece Name: /u03/app/oracle/product/19.3.0/dbhome_1/dbs/c-469831111-20250704-01
SPFILE Included: Modification time: 2025:07:0411:16:34
SPFILE db_unique_name: CNDBA
恢复参数文件:
RMAN> restore spfile to '/u03/cndba.ora' from '/u03/app/oracle/product/19.3.0/dbhome_1/dbs/c-469831111-20250704-01';
2.3 恢复控制文件
查看备份的控制文件:
RMAN> list backup of controlfile;
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ------------------
35 Full 17.95M DISK 00:00:00 2025:07:0411:19:01
BP Key: 35 Status: AVAILABLE Compressed: NO Tag: TAG20250704T111901
Piece Name: /u03/app/oracle/product/19.3.0/dbhome_1/dbs/c-469831111-20250704-01
Control File Included: Ckp SCN: 2510070 Ckp time: 2025:07:0411:19:01
恢复控制文件:
RMAN> restore controlfile to '/u03/cndba.ctl' from '/u03/app/oracle/product/19.3.0/dbhome_1/dbs/c-469831111-20250704-01';
2.4 恢复归档文件
当归档被删除,然后恢复又需要时,可以直接从rman 备份中恢复出来,這恢复的默认目录是配置的归档路径。
查看备份的归档:
RMAN> list backup of archivelog all ;
恢复归档:
RMAN>restore archivelog all;
RMAN> restore ARCHIVELOG SEQUENCE BETWEEN 33 AND 38;
RAC环境下需要加上Thread Number,不加默认是Thread 1
RMAN> restore ARCHIVELOG SEQUENCE BETWEEN 40202 AND 40203 thread 1;
RMAN> restore archivelog from sequence 112 thread 2;
2.5 恢复 CDB
恢复CDB 的时候,库要先启动到mount 状态:
SQL> shutdown immediate
SQL> startup mount
连接RMAN 恢复:
[dave@cndba.cn u03]$ rman target /
Recovery Manager: Release 19.0.0.0.0 - Production on Fri Jul 4 12:39:36 2025
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database: CNDBA (DBID=469831111, not open)
RMAN> restore database root;
RMAN> recover database root;
2.6 恢复 PDB
PDB 在恢复之前需要先关闭:
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 DAVE READ WRITE NO
4 ORCL READ WRITE NO
SQL> alter pluggable database dave close;
Pluggable database altered.
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 DAVE MOUNTED
4 ORCL READ WRITE NO
SQL>
连接RMAN 恢复,注意我们这里RMAN 是连接到CDB的,也可以直接连接到PDB操作,那就小加pluggable 参数了:
[dave@cndba.cn archivelog]$ rman target /
Recovery Manager: Release 19.0.0.0.0 - Production on Fri Jul 4 12:41:59 2025
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database: CNDBA (DBID=469831111)
RMAN> restore pluggable database dave;
RMAN> recover pluggable database dave;
SQL> alter pluggable database dave open;
Pluggable database altered.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 DAVE READ WRITE NO
4 ORCL READ WRITE NO
SQL>
版权声明:本文为博主原创文章,未经博主允许不得转载。