签到成功

知道了

CNDBA社区CNDBA社区

Oracle 19c RMAN 备份 与 恢复(全库 / CDB / PDB) 说明

2025-07-04 13:04 3 0 原创 Oracle 19c
作者: dave

1 备份

1.1 全库备份(所有PDB + CDB)

备份脚本参考:

http://www.cndba.cn/dave/article/131679

RMAN 备份 shell 脚本
https://www.cndba.cn/dave/article/131676

脚本里相关环境变量和备份策略需要根据实际情况修改一下。 http://www.cndba.cn/dave/article/131679

注意需要先启用归档模式:

http://www.cndba.cn/dave/article/131679

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模式才能进行下面的恢复。

查看备份集:http://www.cndba.cn/dave/article/131679http://www.cndba.cn/dave/article/131679

http://www.cndba.cn/dave/article/131679

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 状态:http://www.cndba.cn/dave/article/131679http://www.cndba.cn/dave/article/131679

SQL> shutdown immediate
SQL> startup mount;

执行恢复:http://www.cndba.cn/dave/article/131679

[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 备份中恢复出来,這恢复的默认目录是配置的归档路径。http://www.cndba.cn/dave/article/131679

查看备份的归档:
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>

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2283
    原创
  • 3
    翻译
  • 579
    转载
  • 196
    评论
  • 访问:8167798次
  • 积分:4428
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ