Linux生产环境下Oracle RMAN 备份、核查、清理与验证常用命令整理_20260330

RMAN 是 Oracle 官方提供的备份恢复工具。

在实际生产环境里,RMAN 命令很多,但真正天天会碰、最常用的,其实就那么几类:

  • 连接与查看配置

  • 查看备份信息

  • 核查备份状态

  • 清理过期或陈旧备份

  • 调整常用配置

  • 验证备份是否可用

这篇文章不讲"大而全",只整理企业生产环境里最常用的 RMAN 命令


一、先连接 RMAN

以 oracle 用户执行:

复制代码
rman target /

这是进入 RMAN 的基础命令。

后面的所有 RMAN 命令,基本都在这个提示符下执行。


二、最常用的查看类命令

1)查看 RMAN 当前配置

复制代码
show all;

这个命令非常常用。

主要看这些内容:

  • 保留策略

  • 控制文件自动备份

  • 备份优化

  • 默认备份设备类型

  • 归档删除策略

生产环境里,很多判断都要先从 show all; 开始。


2)查看数据库物理结构

复制代码
report schema;

用于查看数据库中有哪些数据文件、表空间等信息。

在做备份、恢复、核查时,经常会先看这个。


3)查看哪些备份已经陈旧

复制代码
report obsolete;

这个命令用来查看哪些备份已经被当前保留策略判定为过时。

注意,它只是报告,不会自动删除。


三、最常用的备份查看命令

1)查看所有备份

复制代码
list backup;

这是最常见的查询命令之一。

用来查看当前数据库有哪些备份集。


2)查看备份摘要

复制代码
list backup summary;

如果只想快速看备份概况,不想看太细的内容,这条很实用。


3)查看数据库备份

复制代码
list backup of database;

主要看数据文件备份是否存在。


4)查看控制文件备份

复制代码
list backup of controlfile;

控制文件备份很关键,恢复时经常会用到。


5)查看 SPFILE 备份

复制代码
list backup of spfile;

参数文件备份是否存在,也建议一起确认。


6)查看归档日志备份

复制代码
list backup of archivelog all;

如果要确认归档日志有没有备份,这条最直接。


7)查看归档日志信息

复制代码
list archivelog all;

这个命令也很常用,主要看归档日志记录情况。


四、最常用的核查命令

1)核查所有备份集

复制代码
crosscheck backup;

用来核对 RMAN 记录里的备份是否真实存在。

如果备份文件被手工删除了,但 RMAN 里还有记录,就要靠这个命令同步状态。


2)核查所有归档日志

复制代码
crosscheck archivelog all;

这条在生产里也非常常见。

归档日志多、变化快,定期核查很有必要。


五、最常用的清理命令

1)删除陈旧备份

复制代码
delete obsolete;

这条命令是按 RMAN 保留策略 删除已经陈旧的备份。

比如你配置的是:保留策略只负责判断,不会自动删除。

复制代码
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;

那么超出保留范围的旧备份,就会被认定为 obsolete。

注意两点:

  • 只配置保留策略,不会自动删除

  • 真正执行删除,还得靠 delete obsolete;

超出保留范围的旧备份,就会被认定为 obsolete。


2)删除过期备份记录

复制代码
delete expired backup;

这个命令删除的是已经失效的备份记录。

一般会配合下面这句一起使用:

复制代码
crosscheck backup;

先核查,再清理,思路更稳。


3)删除过期映像副本

复制代码
delete expired copy;

如果环境里有用到映像副本,这条也会用到。

但相较于备份集,这条在日常里没有前两条高频。


六、最常用的配置命令

1)设置保留策略为冗余度

复制代码
configure retention policy to redundancy 2;

表示保留 2 份可用备份。


2)设置保留策略为恢复窗口

复制代码
configure retention policy to recovery window of 7 days;

表示备份至少要满足"可以恢复到过去 7 天内任意时间点"的要求。

生产环境里,更常见也更推荐这种方式。

一般常见值是:

  • 普通生产库:7 天

  • 重要生产库:14 天


3)恢复默认保留策略

复制代码
configure retention policy clear;

恢复后,默认是:

复制代码
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;

4)开启备份优化

复制代码
configure backup optimization on;

对于归档日志、只读表空间这类变化不大的对象,可以减少重复备份。


5)开启控制文件自动备份

复制代码
configure controlfile autobackup on;

这条在生产环境中很常用,也很建议开启。

控制文件和 SPFILE 的自动备份,很多时候就是救命绳。


七、最常用的验证命令

1)验证数据库备份是否可还原

复制代码
restore validate database;

这条命令不会真正恢复数据库,

只是验证当前备份是否可用于恢复。


2)验证控制文件备份

复制代码
restore validate controlfile;

3)验证 SPFILE 备份

复制代码
restore validate spfile;

这两条也不会真恢复,只是做校验。

正式生产环境里可以执行,但建议放在业务低峰期,因为会读取备份片,带来一定 I/O。


八、生产环境里最常见的一套组合

如果只记最常用的一套,通常就是下面这些:

1)先看配置

复制代码
show all;

2)看有没有备份

复制代码
list backup summary;
list backup of database;
list backup of controlfile;
list backup of spfile;
list backup of archivelog all;

3)核查记录是否真实有效

复制代码
crosscheck backup;
crosscheck archivelog all;

4)看是否有陈旧备份

复制代码
report obsolete;

5)按策略清理旧备份

复制代码
delete obsolete;
delete expired backup;

6)验证备份是否可用

复制代码
restore validate database;
restore validate controlfile;
restore validate spfile;

九、几个生产环境里的实用提醒

1)show all; 一定要会看

尤其是:

  • CONFIGURE RETENTION POLICY

  • CONFIGURE CONTROLFILE AUTOBACKUP

  • CONFIGURE ARCHIVELOG DELETION POLICY


2)delete obsolete; 不会自己跑

保留策略只是判定规则,不是自动删除开关。

要不要删,还是得你自己执行命令。


3)restore validate 不是真恢复

它只是校验,不会把生产库真的恢复回去。

但会读备份片,所以别在高峰期乱跑全库验证。


十、总结

RMAN 命令很多,但在 Linux 生产环境里,真正最常用的命令,核心就是这几类:

  • show all;

  • list backup ...

  • crosscheck backup;

  • crosscheck archivelog all;

  • report obsolete;

  • delete obsolete;

  • delete expired backup;

  • configure retention policy ...

  • configure controlfile autobackup on;

  • restore validate database;

  • restore validate controlfile;

  • restore validate spfile;

不用一上来把 RMAN 命令大全全背下来。
先把最常用的这几条用熟,生产里的大多数日常备份巡检和核查工作,基本就够用了。

相关推荐
橙子家2 小时前
关于列式存储(Column-base Storage)的几个要点解读
数据库
网硕互联的小客服2 小时前
CentOS系统如何卸载桌面并以shell 字符界面启动?
运维·服务器·网络·安全
A.A呐2 小时前
【Linux第二十二章】https
linux·https
٩( 'ω' )و2602 小时前
MySQL基础
数据库·mysql
生命不息战斗不止(王子晗)2 小时前
mysql基础语法面试题
java·数据库·mysql
知识分享小能手3 小时前
MongoDB入门学习教程,从入门到精通,MongoDB应用程序设计知识点梳理(9)
数据库·学习·mongodb
齐齐大魔王3 小时前
linux-线程编程
java·linux·服务器
一直都在5723 小时前
Redis (一)
数据库·redis·缓存
字符串str3 小时前
sql的基本技术栈
数据库·sql·oracle