1. 首页 > Oracle教程 > 正文

Oracle教程FG371-PDB备份恢复

本文档风哥主要介绍Oracle数据库PDB备份恢复相关知识,包括PDB备份恢复的概念、方法、要求、规划、配置、验证等内容,由风哥教程参考Oracle官方文档Multitenant内容编写,适合DBA人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。

Part01-基础概念与理论知识

1.1 PDB备份恢复的概念

Oracle数据库PDB备份恢复是指在多租户容器数据库(CDB)中备份和恢复PDB数据,包括完整备份、增量备份、表空间备份等。PDB备份恢复可以实现数据的安全性和可恢复性,提高数据库的可靠性。PDB备份恢复包括备份策略、恢复策略、备份验证等操作。更多视频教程www.fgedu.net.cn

PDB备份恢复的特点:

  • 支持PDB级别的备份恢复
  • 支持增量备份恢复
  • 支持表空间级别的备份恢复
  • 支持时间点恢复
  • 提高数据安全性和可恢复性

1.2 PDB备份恢复的方法

Oracle数据库PDB备份恢复的方法:

  • RMAN备份:使用RMAN进行PDB备份恢复
  • Data Pump备份:使用Data Pump进行PDB备份恢复
  • 完整备份:备份整个PDB
  • 增量备份:备份增量数据
  • 表空间备份:备份特定表空间

1.3 PDB备份恢复的要求

Oracle数据库PDB备份恢复的要求:

  • CDB架构:必须在CDB架构中进行备份恢复
  • 系统资源:足够的CPU、内存和磁盘空间
  • 权限:需要SYSDBA权限
  • 兼容性:Oracle数据库版本必须支持PDB备份恢复
  • 配置:需要配置适当的参数和选项
风哥提示:PDB备份恢复是Oracle数据库多租户架构的核心功能,通过PDB备份恢复,可以实现数据的安全性和可恢复性,提高数据库的可靠性。

Part02-生产环境规划与建议

2.1 PDB备份恢复规划

Oracle数据库PDB备份恢复规划要点:

# PDB备份恢复规划步骤
1. 分析业务需求
2. 评估系统资源
3. 设计备份恢复方案
4. 规划备份恢复架构
5. 规划备份策略
6. 规划恢复策略
7. 测试和验证

# 适用场景
– 多租户数据库
– 需要PDB级别备份恢复的系统
– 需要增量备份恢复的系统
– 需要时间点恢复的系统
– 需要表空间级别备份恢复的系统

# 不适用场景
– 单租户数据库
– 备份恢复需求简单的系统
– 低备份恢复需求系统

2.2 PDB备份恢复设计

Oracle数据库PDB备份恢复设计建议:

# PDB备份恢复设计原则
– 基于业务需求设计
– 基于资源需求设计
– 最小化备份恢复时间
– 最大化数据安全性
– 合理配置参数

# PDB备份恢复设计策略
– 合理规划备份恢复架构
– 配置适当的备份策略
– 配置适当的恢复策略
– 配置适当的备份验证
– 配置适当的恢复验证

# 设计步骤
1. 分析业务需求
2. 评估系统资源
3. 设计备份恢复方案
4. 规划备份恢复架构
5. 测试备份恢复效果
6. 调整配置

2.3 PDB备份恢复最佳实践

Oracle数据库PDB备份恢复最佳实践:

  • 规划备份恢复架构:根据业务需求规划备份恢复架构,最小化备份恢复时间
  • 配置备份策略:为PDB配置合理的备份策略
  • 监控备份恢复:监控备份恢复情况,及时发现和处理问题
  • 定期测试恢复:定期测试恢复功能,确保数据可恢复
  • 设置备份告警:设置备份告警,及时发现备份失败
  • 定期review:定期review备份恢复配置,优化备份恢复策略
生产环境建议:PDB备份恢复规划应基于业务需求和系统资源,规划备份恢复架构,配置备份策略,监控备份恢复,定期测试恢复,设置备份告警,定期review,确保数据安全。学习交流加群风哥微信: itpux-com

Part03-生产环境项目实施方案

3.1 PDB备份恢复实施

3.1.1 配置RMAN备份

# 查看PDB
SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ——— ———-
2 PDB$SEED READ ONLY
3 SALESPDB READ WRITE
4 HRPDB READ WRITE
5 APP_ROOT READ WRITE
6 APP_PDB1 READ WRITE

# 切换到CDB
SQL> ALTER SESSION SET CONTAINER = cdb$root;

Session altered.

# 查看RMAN配置
$ rman target /

Recovery Manager: Release 19.0.0.0.0 – Production on Fri Mar 31 10:00:00 2026
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

connected to target database: ORCLCDB (DBID=1234567890)

RMAN> SHOW ALL;

using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name ORCLCDB are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘%F’; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM ‘AES128’; # default
CONFIGURE COMPRESSION ALGORITHM ‘BASIC’ AS OF RELEASE ‘DEFAULT’ OPTIMIZE FOR LOAD TRUE; # default
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘/oracle/app/oracle/product/19c/dbhome_1/dbs/snapcf_orclcdb.f’; # default

# 配置RMAN
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

new RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
new RMAN configuration parameters are successfully stored

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘/backup/rman/%F’;

new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘/backup/rman/%F’;
new RMAN configuration parameters are successfully stored

# 验证RMAN配置
RMAN> SHOW ALL;

RMAN configuration parameters for database with db_unique_name ORCLCDB are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘/backup/rman/%F’;
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM ‘AES128’; # default
CONFIGURE COMPRESSION ALGORITHM ‘BASIC’ AS OF RELEASE ‘DEFAULT’ OPTIMIZE FOR LOAD TRUE; # default
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘/oracle/app/oracle/product/19c/dbhome_1/dbs/snapcf_orclcdb.f’; # default

# 验证RMAN配置成功

3.1.2 执行PDB备份

# 切换到CDB
SQL> ALTER SESSION SET CONTAINER = cdb$root;

Session altered.

# 使用RMAN备份PDB
$ rman target /

Recovery Manager: Release 19.0.0.0.0 – Production on Fri Mar 31 10:00:00 2026
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

connected to target database: ORCLCDB (DBID=1234567890)

# 备份整个CDB
RMAN> BACKUP DATABASE;

Starting backup at 31-MAR-26
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=123 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=/oracle/app/oracle/oradata/orclcdb/system01.dbf
input datafile file number=00003 name=/oracle/app/oracle/oradata/orclcdb/sysaux01.dbf
input datafile file number=00004 name=/oracle/app/oracle/oradata/orclcdb/undotbs01.dbf
input datafile file number=00007 name=/oracle/app/oracle/oradata/orclcdb/users01.dbf
channel ORA_DISK_1: starting piece 1 at 31-MAR-26
channel ORA_DISK_1: finished piece 1 at 31-MAR-26
piece handle=/backup/rman/ORCLCDB_20260331_100000_1 tag=TAG20260331T100000 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:10:00
Finished backup at 31-MAR-26

# 备份特定PDB
RMAN> BACKUP PLUGGABLE DATABASE fgfgfgsalespdb;

Starting backup at 31-MAR-26
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=123 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=00009 name=/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/system01.dbf
input datafile file number=00010 name=/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/sysaux01.dbf
input datafile file number=00011 name=/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/undotbs01.dbf
input datafile file number=00012 name=/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/users01.dbf
channel ORA_DISK_1: starting piece 1 at 31-MAR-26
channel ORA_DISK_1: finished piece 1 at 31-MAR-26
piece handle=/backup/rman/ORCLCDB_20260331_101000_1 tag=TAG20260331T101000 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:05:00
Finished backup at 31-MAR-26

# 验证PDB备份成功

3.2 PDB备份恢复配置

3.2.1 配置增量备份

# 切换到CDB
SQL> ALTER SESSION SET CONTAINER = cdb$root;

Session altered.

# 使用RMAN配置增量备份
$ rman target /

Recovery Manager: Release 19.0.0.0.0 – Production on Fri Mar 31 10:00:00 2026
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

connected to target database: ORCLCDB (DBID=1234567890)

# 配置增量备份
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;

new RMAN configuration parameters:
CONFIGURE BACKUP OPTIMIZATION ON;
new RMAN configuration parameters are successfully stored

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 2;

new RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters are successfully stored

# 执行增量备份
RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;

Starting backup at 31-MAR-26
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=123 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=124 device type=DISK
channel ORA_DISK_1: starting incremental level 1 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/oracle/app/oracle/oradata/orclcdb/system01.dbf
channel ORA_DISK_1: starting piece 1 at 31-MAR-26
channel ORA_DISK_1: finished piece 1 at 31-MAR-26
piece handle=/backup/rman/ORCLCDB_20260331_102000_1 tag=TAG20260331T102000 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:05:00
Finished backup at 31-MAR-26

# 验证增量备份成功

3.2.2 配置表空间备份

# 切换到PDB
SQL> ALTER SESSION SET CONTAINER = fgfgfgsalespdb;

Session altered.

# 查看表空间
SQL> SELECT tablespace_name, status, contents
FROM dba_tablespaces
ORDER BY tablespace_name;

TABLESPACE_NAME STATUS CONTENTS
—————————— ——— ———
SALES_DATA ONLINE PERMANENT
SALES_INDEX ONLINE PERMANENT
SYSAUX ONLINE PERMANENT
SYSTEM ONLINE PERMANENT
TEMP ONLINE TEMPORARY
UNDOTBS1 ONLINE UNDO
USERS ONLINE PERMANENT

# 使用RMAN备份表空间
$ rman target /

Recovery Manager: Release 19.0.0.0.0 – Production on Fri Mar 31 10:00:00 2026
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

connected to target database: ORCLCDB (DBID=1234567890)

# 备份表空间
RMAN> BACKUP TABLESPACE fgfgfgsalespdb:fgfgfgsales_data, fgfgfgsalespdb:fgfgfgsales_index;

Starting backup at 31-MAR-26
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=123 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=00013 name=/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/fgfgfgsales_data01.dbf
input datafile file number=00014 name=/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/fgfgfgsales_index01.dbf
channel ORA_DISK_1: starting piece 1 at 31-MAR-26
channel ORA_DISK_1: finished piece 1 at 31-MAR-26
piece handle=/backup/rman/ORCLCDB_20260331_103000_1 tag=TAG20260331T103000 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:03:00
Finished backup at 31-MAR-26

# 验证表空间备份成功

3.3 PDB备份恢复验证

3.3.1 验证PDB备份

# 切换到CDB
SQL> ALTER SESSION SET CONTAINER = cdb$root;

Session altered.

# 查看备份
$ rman target /

Recovery Manager: Release 19.0.0.0.0 – Production on Fri Mar 31 10:00:00 2026
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

connected to target database: ORCLCDB (DBID=1234567890)

# 列出备份
RMAN> LIST BACKUP;

List of Backup Sets
===================

BS Key Type LV Size Device Type Elapsed Time Completion Time
——- —- — ———- ———– ———— —————
1 Full 1.00G DISK 00:10:00 31-MAR-26
BP Key: 1 Status: AVAILABLE Compressed: NO Tag: TAG20260331T100000
Piece Name: /backup/rman/ORCLCDB_20260331_100000_1
List of Datafiles in backup set 1
File LV Type Ckp SCN Ckp Time Name
—- — —- ———- ——— —-
1 Full 1234567 31-MAR-26 /oracle/app/oracle/oradata/orclcdb/system01.dbf
3 Full 1234567 31-MAR-26 /oracle/app/oracle/oradata/orclcdb/sysaux01.dbf
4 Full 1234567 31-MAR-26 /oracle/app/oracle/oradata/orclcdb/undotbs01.dbf
7 Full 1234567 31-MAR-26 /oracle/app/oracle/oradata/orclcdb/users01.dbf

BS Key Type LV Size Device Type Elapsed Time Completion Time
——- —- — ———- ———– ———— —————
2 Full 500.00M DISK 00:05:00 31-MAR-26
BP Key: 2 Status: AVAILABLE Compressed: NO Tag: TAG20260331T101000
Piece Name: /backup/rman/ORCLCDB_20260331_101000_1
List of Datafiles in backup set 2
File LV Type Ckp SCN Ckp Time Name
—- — —- ———- ——— —-
9 Full 1234568 31-MAR-26 /oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/system01.dbf
10 Full 1234568 31-MAR-26 /oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/sysaux01.dbf
11 Full 1234568 31-MAR-26 /oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/undotbs01.dbf
12 Full 1234568 31-MAR-26 /oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/users01.dbf

# 验证备份
RMAN> VALIDATE BACKUPSET 2;

using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=123 device type=DISK
channel ORA_DISK_1: starting validation of datafile backup set
channel ORA_DISK_1: reading from backup piece /backup/rman/ORCLCDB_20260331_101000_1
channel ORA_DISK_1: piece handle=/backup/rman/ORCLCDB_20260331_101000_1 tag=TAG20260331T101000
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: validation complete, elapsed time: 00:02:00
List of Datafiles
=================
File Status Marked Corrupt Empty Blocks Blocks Examined High Water Mark
—- ——- ————– ———— ————— —————
9 OK 0 0 100000 100000
10 OK 0 0 150000 150000
11 OK 0 0 50000 50000
12 OK 0 0 50000 50000

# 验证PDB备份成功

3.3.2 验证PDB恢复

# 切换到CDB
SQL> ALTER SESSION SET CONTAINER = cdb$root;

Session altered.

# 查看PDB
SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ——— ———-
2 PDB$SEED READ ONLY
3 SALESPDB READ WRITE
4 HRPDB READ WRITE
5 APP_ROOT READ WRITE
6 APP_PDB1 READ WRITE

# 关闭PDB
SQL> ALTER PLUGGABLE DATABASE fgfgfgsalespdb CLOSE;

Pluggable database altered.

SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ——— ———-
2 PDB$SEED READ ONLY
3 SALESPDB MOUNTED
4 HRPDB READ WRITE
5 APP_ROOT READ WRITE
6 APP_PDB1 READ WRITE

# 使用RMAN恢复PDB
$ rman target /

Recovery Manager: Release 19.0.0.0.0 – Production on Fri Mar 31 10:00:00 2026
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

connected to target database: ORCLCDB (DBID=1234567890)

# 恢复PDB
RMAN> RESTORE PLUGGABLE DATABASE fgfgfgsalespdb;

Starting restore at 31-MAR-26
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=123 device type=DISK

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00009 to /oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/system01.dbf
channel ORA_DISK_1: restoring datafile 00010 to /oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/sysaux01.dbf
channel ORA_DISK_1: restoring datafile 00011 to /oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/undotbs01.dbf
channel ORA_DISK_1: restoring datafile 00012 to /oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/users01.dbf
channel ORA_DISK_1: reading from backup piece /backup/rman/ORCLCDB_20260331_101000_1
channel ORA_DISK_1: piece handle=/backup/rman/ORCLCDB_20260331_101000_1 tag=TAG20260331T101000
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:05:00
Finished restore at 31-MAR-26

# 恢复PDB数据
RMAN> RECOVER PLUGGABLE DATABASE fgfgfgsalespdb;

Starting recover at 31-MAR-26
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=123 device type=DISK

starting media recovery
media recovery complete, elapsed time: 00:01:00
Finished recover at 31-MAR-26

# 打开PDB
SQL> ALTER PLUGGABLE DATABASE fgfgfgsalespdb OPEN;

Pluggable database altered.

SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ——— ———-
2 PDB$SEED READ ONLY
3 SALESPDB READ WRITE
4 HRPDB READ WRITE
5 APP_ROOT READ WRITE
6 APP_PDB1 READ WRITE

# 验证PDB恢复成功

风哥提示:验证PDB备份恢复是否成功,需要检查备份状态、恢复状态、数据完整性、功能等,确保数据库运行正常。学习交流加群风哥QQ113257174

Part04-生产案例与实战讲解

4.1 PDB备份恢复案例

在某企业的生产环境中,需要为PDB配置备份恢复。

# 案例背景
– 数据库版本:Oracle 19c
– 系统规模:中等规模,日交易量100万
– 需求:为PDB配置备份恢复

# 实施方案
1. 查看PDB
SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ——— ———-
2 PDB$SEED READ ONLY
3 SALESPDB READ WRITE
4 HRPDB READ WRITE
5 APP_ROOT READ WRITE
6 APP_PDB1 READ WRITE

2. 配置RMAN
$ rman target /

Recovery Manager: Release 19.0.0.0.0 – Production on Fri Mar 31 10:00:00 2026
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

connected to target database: ORCLCDB (DBID=1234567890)

RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

new RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
new RMAN configuration parameters are successfully stored

3. 执行PDB备份
RMAN> BACKUP PLUGGABLE DATABASE fgfgfgsalespdb;

Starting backup at 31-MAR-26
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=123 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=00009 name=/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/system01.dbf
input datafile file number=00010 name=/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/sysaux01.dbf
input datafile file number=00011 name=/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/undotbs01.dbf
input datafile file number=00012 name=/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/users01.dbf
channel ORA_DISK_1: starting piece 1 at 31-MAR-26
channel ORA_DISK_1: finished piece 1 at 31-MAR-26
piece handle=/backup/rman/ORCLCDB_20260331_100000_1 tag=TAG20260331T100000 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:05:00
Finished backup at 31-MAR-26

4. 验证备份
RMAN> VALIDATE BACKUPSET 1;

using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=123 device type=DISK
channel ORA_DISK_1: starting validation of datafile backup set
channel ORA_DISK_1: reading from backup piece /backup/rman/ORCLCDB_20260331_100000_1
channel ORA_DISK_1: piece handle=/backup/rman/ORCLCDB_20260331_100000_1 tag=TAG20260331T100000
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: validation complete, elapsed time: 00:02:00
List of Datafiles
=================
File Status Marked Corrupt Empty Blocks Blocks Examined High Water Mark
—- ——- ————– ———— ————— —————
9 OK 0 0 100000 100000
10 OK 0 0 150000 150000
11 OK 0 0 50000 50000
12 OK 0 0 50000 50000

# 实施效果
– 成功配置PDB备份恢复
– 备份验证成功
– 数据安全性提高
– 可恢复性提高

4.2 PDB备份恢复优化案例

在某金融机构的生产环境中,需要优化PDB备份恢复,提高备份恢复效率。

# 案例背景
– 数据库版本:Oracle 19c
– 系统规模:大规模,日交易量1000万
– 问题:PDB备份恢复需要优化

# 优化方案
1. 查看备份配置
$ rman target /

Recovery Manager: Release 19.0.0.0.0 – Production on Fri Mar 31 10:00:00 2026
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

connected to target database: ORCLCDB (DBID=1234567890)

RMAN> SHOW ALL;

RMAN configuration parameters for database with db_unique_name ORCLCDB are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘/backup/rman/%F’;
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM ‘AES128’; # default
CONFIGURE COMPRESSION ALGORITHM ‘BASIC’ AS OF RELEASE ‘DEFAULT’ OPTIMIZE FOR LOAD TRUE; # default
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘/oracle/app/oracle/product/19c/dbhome_1/dbs/snapcf_orclcdb.f’; # default

2. 优化备份配置
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;

new RMAN configuration parameters:
CONFIGURE BACKUP OPTIMIZATION ON;
new RMAN configuration parameters are successfully stored

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 4;

new RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters are successfully stored

RMAN> CONFIGURE COMPRESSION ALGORITHM ‘MEDIUM’;

new RMAN configuration parameters:
CONFIGURE COMPRESSION ALGORITHM ‘MEDIUM’ AS OF RELEASE ‘DEFAULT’ OPTIMIZE FOR LOAD TRUE;
new RMAN configuration parameters are successfully stored

3. 执行优化后的备份
RMAN> BACKUP AS COMPRESSED BACKUPSET PLUGGABLE DATABASE fgfgfgsalespdb;

Starting backup at 31-MAR-26
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=123 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=124 device type=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: SID=125 device type=DISK
allocated channel: ORA_DISK_4
channel ORA_DISK_4: SID=126 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=00009 name=/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/system01.dbf
channel ORA_DISK_1: starting piece 1 at 31-MAR-26
channel ORA_DISK_1: finished piece 1 at 31-MAR-26
piece handle=/backup/rman/ORCLCDB_20260331_110000_1 tag=TAG20260331T110000 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:02:30
Finished backup at 31-MAR-26

4. 验证优化效果
RMAN> LIST BACKUP;

List of Backup Sets
===================

BS Key Type LV Size Device Type Elapsed Time Completion Time
——- —- — ———- ———– ———— —————
3 Full 250.00M DISK 00:02:30 31-MAR-26
BP Key: 3 Status: AVAILABLE Compressed: YES Tag: TAG20260331T110000
Piece Name: /backup/rman/ORCLCDB_20260331_110000_1
List of Datafiles in backup set 3
File LV Type Ckp SCN Ckp Time Name
—- — —- ———- ——— —-
9 Full 1234569 31-MAR-26 /oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/system01.dbf
10 Full 1234569 31-MAR-26 /oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/sysaux01.dbf
11 Full 1234569 31-MAR-26 /oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/undotbs01.dbf
12 Full 1234569 31-MAR-26 /oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/users01.dbf

# 优化效果
– 备份配置优化
– 备份时间缩短
– 备份大小减少
– 备份效率提高

4.3 PDB备份恢复问题处理

在某电商网站的生产环境中,PDB备份恢复出现问题,需要处理。

# 问题现象
– 备份失败
– 恢复失败
– 数据丢失

# 分析步骤
1. 查看备份日志
$ tail -100 /backup/rman/rman.log

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 03/31/2026 10:00:00
ORA-19502: write error on file /backup/rman/ORCLCDB_20260331_100000_1, blockno 1000 (blocksize=512)
ORA-27072: File I/O error
Linux-x86_64 Error: 28: No space left on device
Additional information: 1000

2. 查看磁盘空间
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 30G 20G 60% /
/dev/sda2 200G 200G 0G 100% /backup

# 问题原因
– 备份目录空间不足
– 备份失败

# 解决方案
1. 清理旧备份
$ rman target /

Recovery Manager: Release 19.0.0.0.0 – Production on Fri Mar 31 10:00:00 2026
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

connected to target database: ORCLCDB (DBID=1234567890)

RMAN> DELETE OBSOLETE;

using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=123 device type=DISK

List of Backup Pieces
BP Key BS Key Pc# Cp# Status Device Type Piece Name
——- ——- — — ———- ———– ——————–
1 1 1 1 EXPIRED DISK /backup/rman/ORCLCDB_20260330_100000_1
2 2 1 1 EXPIRED DISK /backup/rman/ORCLCDB_20260330_101000_1

deleted backup piece
backup piece handle=/backup/rman/ORCLCDB_20260330_100000_1 RECID=1 STAMP=1234567890
deleted backup piece
backup piece handle=/backup/rman/ORCLCDB_20260330_101000_1 RECID=2 STAMP=1234567891

Deleted 2 objects

2. 验证磁盘空间
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 30G 20G 60% /
/dev/sda2 200G 150G 50G 75% /backup

3. 重新执行备份
RMAN> BACKUP PLUGGABLE DATABASE fgfgfgsalespdb;

Starting backup at 31-MAR-26
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=123 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=00009 name=/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/system01.dbf
input datafile file number=00010 name=/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/sysaux01.dbf
input datafile file number=00011 name=/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/undotbs01.dbf
input datafile file number=00012 name=/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/users01.dbf
channel ORA_DISK_1: starting piece 1 at 31-MAR-26
channel ORA_DISK_1: finished piece 1 at 31-MAR-26
piece handle=/backup/rman/ORCLCDB_20260331_120000_1 tag=TAG20260331T120000 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:05:00
Finished backup at 31-MAR-26

# 解决效果
– 备份目录空间充足
– 备份成功
– 数据安全性提高

生产环境建议:配置PDB备份恢复前,需要分析业务需求和系统资源,确保备份恢复配置合理。更多学习教程公众号风哥教程itpux_com

Part05-风哥经验总结与分享

5.1 PDB备份恢复经验

Oracle数据库PDB备份恢复经验:

  • 规划备份恢复架构:根据业务需求规划备份恢复架构,最小化备份恢复时间
  • 配置备份策略:为PDB配置合理的备份策略
  • 监控备份恢复:监控备份恢复情况,及时发现和处理问题
  • 定期测试恢复:定期测试恢复功能,确保数据可恢复
  • 设置备份告警:设置备份告警,及时发现备份失败
  • 定期review:定期review备份恢复配置,优化备份恢复策略
风哥提示:PDB备份恢复是Oracle数据库多租户架构的核心功能,通过规划备份恢复架构,配置备份策略,监控备份恢复,定期测试恢复,设置备份告警,定期review,可以显著提高数据安全性和可恢复性。from oracle:www.itpux.com

5.2 PDB备份恢复检查清单

# PDB备份恢复检查清单
– [ ] 检查系统资源
– [ ] 检查CDB架构
– [ ] 检查PDB备份需求
– [ ] 检查磁盘空间
– [ ] 检查RMAN配置
– [ ] 检查备份策略
– [ ] 规划备份恢复架构
– [ ] 配置RMAN
– [ ] 执行备份
– [ ] 验证备份恢复功能

# PDB备份恢复问题处理流程
1. 检查系统资源
2. 检查CDB架构
3. 检查PDB备份需求
4. 规划备份恢复架构
5. 配置RMAN
6. 执行备份
7. 验证备份恢复功能
8. 处理备份恢复问题
9. 优化配置
10. 监控备份恢复情况

5.3 PDB备份恢复工具

Oracle数据库PDB备份恢复常用工具:

  • RMAN:恢复管理器,用于备份和恢复数据库
  • Data Pump:数据泵,用于导入导出数据
  • SQL*Plus:SQL命令行工具,用于执行SQL命令
  • Oracle Enterprise Manager:图形化管理工具,用于监控和管理数据库
  • SQL Developer:SQL开发工具,用于开发和调试SQL
  • DBCA:数据库配置助手,用于创建和管理数据库
持续改进:PDB备份恢复是一个持续的过程,需要定期review和优化。建议建立PDB备份恢复的规范和流程,不断改进数据安全性和可恢复性。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息