Oracle 19c RMAN如何设置不备份特定类型数据文件?

作者:技术拾光时间:2026-07-14 08:30:12浏览:475

OracleRMAN中,使用BACKUPDATABASESKIPTABLESPACE可临时跳过指定表空间,但必需表空间不可跳过;CONFIGUREEXCLUDEFORTABLESPACE设置长期排除策略,影响所有全库备份;SKIPOFFLINE仅跳过离线数据文件;临时文件默认不备份。这些跳过选项适用于不同场景,合理选择可优化备份策略,增强灵活性。

在 Oracle RMAN 备份中,最常用的临时排除手段是 BACKUP DATABASE SKIP TABLESPACE。直接在命令中指定要跳过的表空间名(例如 temp、users),无需修改任何全局配置,执行后立即生效,风险完全可控。但需注意:SYSTEM、SYSAUX、UNDO 等必需表空间无法跳过,否则会报错 RMAN-06149: cannot BACKUP DATABASE with SKIP for mandatory tablespace。

Oracle 19c RMAN如何设置不备份特定类型数据文件?

  • BACKUP DATABASE SKIP TABLESPACE temp, users; —— 一次跳过多个表空间,注意名称大小写必须与 DBA_TABLESPACES.TABLESPACE_NAME 完全一致。
  • 被跳过的表空间不会出现在备份集中,LIST BACKUP 也无法查到其数据文件,恢复时自然也不会还原。
  • 若后续需要单独备份这些表空间,可使用 BACKUP TABLESPACE temp; 或添加 NOEXCLUDE:BACKUP DATABASE NOEXCLUDE;。

CONFIGURE EXCLUDE FOR TABLESPACE 适合长期固定的排除策略

如果某些表空间(例如 cwmlite、example)永远不打算参与全库备份,使用 CONFIGURE 设置一次更为省事。但需注意:该配置是持久化的,会影响之后所有 BACKUP DATABASE 命令,一旦忘记清理,恢复时可能造成严重问题。

  • 设置:CONFIGURE EXCLUDE FOR TABLESPACE cwmlite;、CONFIGURE EXCLUDE FOR TABLESPACE example;。
  • 验证是否生效:SHOW EXCLUDE;,会列出当前所有被排除的表空间。
  • 清除某项:CONFIGURE EXCLUDE FOR TABLESPACE cwmlite CLEAR;。
  • 该配置对 BACKUP TABLESPACE 无效,它仅作用于 BACKUP DATABASE。
  • 误配后恢复麻烦:如果忘记 CLEAR,又未添加 NOEXCLUDE,全库恢复时可能缺失关键对象,需由 DBA 手动补全。

SKIP OFFLINE 只用于跳过离线状态的数据文件,并非按“类型”过滤

很多人误以为 SKIP OFFLINE 能跳过某种“类型”的文件(如临时文件或只读文件),实际上它只响应控制文件中状态为 OFFLINE 的数据文件,与文件用途无关。

  • 正确用法:BACKUP DATABASE SKIP OFFLINE; —— 遇到 offline 文件不报错,直接跳过 I/O。
  • 它不会跳过 READ ONLY 表空间中的文件,也不会跳过 TEMPFILE(临时文件根本不在控制文件的数据文件列表中)。
  • offline 文件仍计入 backupset 元信息:LIST BACKUP 中可看到它,但 size 为 0,实际未读取磁盘。
  • 执行 RESTORE VALIDATE 时必须同时带上 SKIP OFFLINE,否则验证会卡在 offline 文件上。
  • Oracle 10gR2 起支持该参数,但 9i 不识别,会报错 RMAN-00571。

没有“按文件类型”跳过的原生语法,临时文件天然不备

RMAN 从不备份临时文件(TEMPFILE),因为它们不存储用户数据,重启后自动重建。你不需要也不能用任何 SKIP 参数去“排除”它们——它们根本不在备份扫描范围内。

  • 验证方法:SELECT NAME, FILE_TYPE FROM V$DATABASE_FILE;,TEMPFILE 类型不会出现在 BACKUP DATABASE 的扫描列表中。
  • 不要试图用 SKIP DATAFILE 跳过临时文件编号,RMAN 会报错 RMAN-06004: ORA-19624: operation failed,因为它根本找不到该文件号。
  • 真正需要控制的是数据文件本身的状态:如果是只读表空间,RMAN 默认会备份它;若想跳过,只能依靠 SKIP TABLESPACE 或 EXCLUDE 配置。
  • 唯一例外是归档日志——它不属于“数据文件”,必须显式使用 PLUS ARCHIVELOG 才能纳入备份,否则永远遗漏。
实际操作中最容易忽略的一点:**SKIP TABLESPACE 和 CONFIGURE EXCLUDE 都不会检查表空间内容是否真的可丢弃**。例如跳过了 USERS,但其中存有应用账号或配置表,恢复后服务可能无法启动。这需要事前通过业务确认,RMAN 本身不负责此检查。