rman 备份


一、先登录 RMAN(带 catalog)

rman target / catalog rman_cat/password@catalog_db

二、直接复制执行的完整配置

# 1. 备份优化:跳过相同已备份文件
CONFIGURE BACKUP OPTIMIZATION ON;

# 2. 控制文件自动备份(必开)
CONFIGURE CONTROLFILE AUTOBACKUP ON;

# 3. 控制文件自动备份格式(可改路径)
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/rman/cf_%F.bkp';

# 4. 默认备份到磁盘
CONFIGURE DEFAULT DEVICE TYPE TO DISK;

# 5. 启用压缩备份(企业版)
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET;

# 6. 并行通道(根据CPU核数调整,2~8)
CONFIGURE DEVICE TYPE DISK PARALLELISM 2;

# 7. 备份文件路径格式
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/rman/full_%d_%T_%U.bkp';

# 8. 保留策略:可恢复最近7天(可改为14/30天)
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

# 9. 归档删除策略:备份成功后才允许删
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO DEVICE TYPE DISK;

三、查看配置是否生效

SHOW ALL;

看到下面这些就算配置完成:

  • BACKUP OPTIMIZATION ON
  • CONTROLFILE AUTOBACKUP ON
  • COMPRESSED BACKUPSET
  • RECOVERY WINDOW OF 7 DAYS

四、简单说明

  • 备份优化:相同文件只备份一次,节省空间和时间
  • 控制文件自动备份:结构变化(加表空间、删数据文件)自动备份,恢复救命用
  • 压缩:备份集体积小 50%~70%
  • 恢复窗口 7 天:保证能恢复到最近 7 天任意时间点
  • 归档删除策略:防止归档没备份就被删,避免断恢复链

五、如果你用Data Guard 备库

备库上建议再加一条:

CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY;

我给你一套生产最常用、最实用的 RMAN 备份 + 恢复命令详解,
结构清晰、直接能用,不搞花里胡哨的。


一、备份命令(最常用)

1. 全库备份(含归档 + 删除过期)

run {
  crosscheck archivelog all;
  delete noprompt expired archivelog all;

  backup as compressed backupset
  database
  plus archivelog
  delete all input;

  backup current controlfile;
  backup spfile;

  delete noprompt obsolete;
}

含义:

  • compressed:压缩备份
  • database:备份全库
  • plus archivelog:备份归档
  • delete all input:备份完归档就删掉(节省空间)
  • delete obsolete:按保留策略删除旧备份

2. 只备份归档日志

backup archivelog all delete all input;

3. 增量备份

级别0(基础全备)

backup incremental level 0 database;

级别1(差异增量,常用)

backup incremental level 1 database;

4. 备份控制文件、SPFILE

backup current controlfile;
backup spfile;

二、日常维护命令

crosscheck backup;        # 核对备份是否存在
crosscheck archivelog all;

delete expired backup;    # 删除失效备份
delete expired archivelog all;

delete obsolete;          # 删除过期备份(按保留策略)

list backup;              # 查看备份
list archivelog all;      # 查看归档

report schema;           # 查看数据库结构
report obsolete;         # 查看哪些备份该删

三、恢复命令(核心)

1. 典型恢复流程(非归档 / 归档都适用)

startup mount;

restore database;
recover database;

alter database open resetlogs;

2. 恢复到指定时间点(不完全恢复)

startup mount;

run {
  set until time "to_date('2025-04-09 10:00:00','yyyy-mm-dd hh24:mi:ss')";
  restore database;
  recover database;
}

alter database open resetlogs;

3. 恢复到 SCN

set until scn 1234567;
restore database;
recover database;

4. 恢复到日志序列

set until sequence 100 thread 1;
restore database;
recover database;

四、只恢复控制文件

startup nomount;
restore controlfile from '/backup/rman/cfg_xxx.bkp';
alter database mount;

五、只恢复 SPFILE

startup nomount;
restore spfile from '/backup/xxx.bkp';

六、表空间 / 数据文件恢复

恢复表空间

sql 'alter tablespace users offline';
restore tablespace users;
recover tablespace users;
sql 'alter tablespace users online';

恢复单个数据文件

sql 'alter database datafile 4 offline';
restore datafile 4;
recover datafile 4;
sql 'alter database datafile 4 online';

七、DG 备库常用备份/恢复

备库备份(不影响主库)

backup database plus archivelog delete all input;

备库恢复

restore database;
recover database;

备库归档删除策略(生产必配)

configure archivelog deletion policy to applied on standby;

八、最关键的理解(一句话版)

  • backup:把文件拷出来 = 备份
  • restore:把备份拷回数据库 = 还原
  • recover:用归档/redo 同步到最新 = 恢复
  • resetlogs:开库并重置日志(不完全恢复必须)

posted @ 2026-04-09 22:59  wuyingchun1987  阅读(2)  评论(0)    收藏  举报