rman 备份恢复

我给你整理一份最常用、最实用、直接能背下来的 RMAN 命令大全,覆盖连接、备份、恢复、检查、维护,DBA 日常 99% 都用这些!


一、连接 RMAN(最常用)

# 本地直接连接(最常用)
rman target /

# 远程连接
rman target sys/password@orcl

# 连接 + 恢复目录
rman target / catalog rman/rman@rcat

二、查看信息命令

# 查看所有配置
show all;

# 查看数据库模式(归档/非归档)
sql "select log_mode from v$database";

# 查看所有备份
list backup;

# 查看数据文件备份
list backup of database;

# 查看控制文件备份
list backup of controlfile;

# 查看归档日志
list archivelog all;

# 查看镜像副本
list copy;

三、配置命令(一次配置永久生效)

# 开启控制文件自动备份(非常重要)
configure controlfile autobackup on;

# 保留策略:保留 1 份备份
configure retention policy to redundancy 1;

# 保留策略:保留 7 天内可恢复
configure retention policy to recovery window of 7 days;

# 并行通道 2
configure device type disk parallelism 2;

# 备份路径格式
configure channel device type disk format '/backup/rman_%U.bak';

# 清空配置
configure controlfile autobackup clear;

四、备份命令(生产最常用)

1. 全库备份(归档模式)

# 全库 + 归档 + 删除已备份归档
backup database plus archivelog delete all input;

# 压缩全库备份
backup as compressed backupset database;

2. 增量备份

# 0 级增量 = 全备(基准)
backup incremental level 0 database;

# 1 级增量(差异)
backup incremental level 1 database;

# 1 级累积增量
backup incremental level 1 cumulative database;

3. 备份表空间 / 数据文件

backup tablespace users;
backup datafile 4;

4. 备份控制文件 / spfile

backup current controlfile;
backup spfile;

5. 只备份归档日志

backup archivelog all;
backup archivelog all delete all input;

五、检查与校验命令

# 检查备份是否存在(核对磁盘)
crosscheck backup;
crosscheck archivelog all;

# 验证备份是否损坏(不还原)
restore database validate;
backup validate database;

# 报告过期/失效备份
report obsolete;

六、删除命令

# 删除过期备份(crosscheck 后用)
delete expired backup;
delete expired archivelog all;

# 删除超过保留策略的旧备份
delete obsolete;

# 强制删除所有备份(慎用)
delete backup;

七、恢复命令(最核心)

1. 全库恢复(完全恢复)

startup mount;
restore database;
recover database;
alter database open;

2. 时间点恢复(PITR)

run{
set until time "to_date('2026-04-14 15:00:00','yyyy-mm-dd hh24:mi:ss')";
restore database;
recover database;
alter database open resetlogs;
}

3. 表空间 / 数据文件恢复

sql "alter tablespace users offline immediate";
restore tablespace users;
recover tablespace users;
sql "alter tablespace users online";

4. 控制文件恢复

startup nomount;
restore controlfile from autobackup;
alter database mount;

5. 坏块修复

recover datafile 4 block 123,456;

八、最常用的一套完整备份脚本(直接用)

run{
allocate channel ch1 device type disk;
backup as compressed backupset database plus archivelog delete all input;
backup current controlfile;
delete noprompt obsolete;
release channel ch1;
}
run {
allocate channel ch1 device type disk;
backup incremental level 1 as compressed backupset
for recover of copy with tag 'INC_UPDATE' database;

recover copy of database with tag 'INC_UPDATE';

delete noprompt obsolete;
}

九、你必须背下来的 10 条黄金命令

  1. rman target / → 连接
  2. show all; → 看配置
  3. list backup; → 看备份
  4. configure controlfile autobackup on; → 控制文件自动备份
  5. backup database plus archivelog delete all input; → 全库备份
  6. crosscheck backup; → 检查备份
  7. delete obsolete; → 删除旧备份
  8. startup mount; → 恢复前挂载
  9. restore database; → 还原
  10. recover database; → 恢复

总结

  • 备份backup
  • 还原restore(把文件拿回来)
  • 恢复recover(应用日志)
  • 检查crosscheck
  • 删除过期delete obsolete
posted @ 2026-04-14 18:00  wuyingchun1987  阅读(13)  评论(0)    收藏  举报