rman 配置,备份,还原

RMAN(Recovery Manager) 是 Oracle 官方的备份与恢复工具,集成于数据库内核,支持在线备份、增量备份、压缩加密、块恢复等核心能力,是生产环境标准方案。
下面从 核心架构 → 配置 → 备份 → 恢复 → 常用命令 完整详解。


一、RMAN 核心架构

  • Target DB(目标库):被备份/恢复的数据库
  • Recovery Catalog(恢复目录,可选):独立库,存储多库备份元数据(生产推荐)
  • Channel(通道):RMAN 与存储(磁盘/磁带)的通信桥梁(可并行)
  • Control File(控制文件):存储备份元数据(无 Catalog 时用)
  • MML(介质管理层):对接磁带库(如 IBM Tivoli、Oracle Secure Backup)

连接方式

# 本地无 Catalog
rman target /

# 远程无 Catalog
rman target sys/pass@orcl

# 带 Catalog
rman target sys/pass@orcl catalog rcat_user/rcat_pass@rcat_db

二、RMAN 基础配置(必做)

1. 查看当前配置

SHOW ALL;

2. 关键 CONFIGURE 配置(生产标准)

-- 1. 保留策略(二选一)
-- 恢复窗口:保证可恢复到最近7天内任意时间
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
-- 冗余策略:保留最近2份完整备份
-- CONFIGURE RETENTION POLICY TO REDUNDANCY 2;

-- 2. 默认设备(磁盘/磁带)
CONFIGURE DEFAULT DEVICE TYPE TO DISK;

-- 3. 通道与备份路径(关键)
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/rman/full_%d_%T_%U.bkp';

-- 4. 控制文件自动备份(强烈建议开启)
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/rman/cf_%F.bkp';

-- 5. 并行度(根据CPU/IO)
CONFIGURE DEVICE TYPE DISK PARALLELISM 2;

-- 6. 备份优化(跳过未变更文件)
CONFIGURE BACKUP OPTIMIZATION ON;

-- 7. 压缩(建议开启)
CONFIGURE COMPRESS ALGORITHM MEDIUM; -- 12c+

3. 常用格式变量

  • %U:唯一文件名(推荐)
  • %d:DB_NAME
  • %T:YYYYMMDD
  • %F:控制文件专用(c-DBID-YYYYMMDD-QQ)

三、RMAN 备份(全量/增量/归档/控制文件)

1. 备份类型

  • 全备(Full Backup):备份所有已使用数据块
  • 增量备份(Incremental)
    • Level 0:基础全备(增量起点)
    • Level 1 差异:自上次任何级别备份以来变化
    • Level 1 累积:自上次 Level 0 以来变化

2. 常用备份命令

(1)全库备份(含归档)

-- 简单全备
BACKUP DATABASE PLUS ARCHIVELOG;

-- 压缩全备
BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;

-- 带标签
BACKUP DATABASE TAG 'weekly_full';

(2)增量备份(常用策略)

-- 周日:Level 0 基础全备
BACKUP INCREMENTAL LEVEL 0 DATABASE PLUS ARCHIVELOG;

-- 周一至六:Level 1 差异增量
BACKUP INCREMENTAL LEVEL 1 DATABASE PLUS ARCHIVELOG;

-- 累积增量(恢复更快)
BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;

(3)表空间 / 数据文件备份

BACKUP TABLESPACE users, system;
BACKUP DATAFILE 1, 4;

(4)归档日志备份

-- 备份所有归档并删除已备份
BACKUP ARCHIVELOG ALL DELETE INPUT;

-- 备份最近24小时归档
BACKUP ARCHIVELOG FROM TIME 'SYSDATE-1';

(5)控制文件 / spfile

BACKUP CURRENT CONTROLFILE;
BACKUP SPFILE;

3. 备份管理

-- 查看备份
LIST BACKUP;
LIST BACKUP OF DATABASE;

-- 校验备份(磁盘存在性)
CROSSCHECK BACKUP;

-- 删除过期/废弃
DELETE OBSOLETE;
DELETE EXPIRED BACKUP;

四、RMAN 恢复(RESTORE + RECOVER)

核心概念

  • RESTORE(还原):从备份集把文件拷回原路径
  • RECOVER(恢复):应用归档/联机日志,使数据一致

场景 1:全库恢复(灾难恢复)

前提:数据文件/控制文件丢失,数据库无法启动

-- 1. 启动到 nomount
STARTUP NOMOUNT;

-- 2. 恢复控制文件(从自动备份)
SET DBID=123456789; -- 从备份文件名获取
RESTORE CONTROLFILE FROM AUTOBACKUP;

-- 3. 挂载数据库
ALTER DATABASE MOUNT;

-- 4. 还原数据文件
RESTORE DATABASE;

-- 5. 应用日志恢复(到最新)
RECOVER DATABASE;

-- 6. 打开并重置日志(不完全恢复必须)
ALTER DATABASE OPEN RESETLOGS;

场景 2:表空间 / 数据文件恢复(在线)

-- 1. 离线损坏表空间
SQL> ALTER TABLESPACE users OFFLINE;

-- 2. RMAN 还原
RESTORE TABLESPACE users;

-- 3. 恢复
RECOVER TABLESPACE users;

-- 4. 在线
SQL> ALTER TABLESPACE users ONLINE;

场景 3:不完全恢复(误删除/误操作)

STARTUP MOUNT;
RUN {
  SET UNTIL TIME "TO_DATE('2026-04-13 10:00:00','YYYY-MM-DD HH24:MI:SS')";
  RESTORE DATABASE;
  RECOVER DATABASE;
  ALTER DATABASE OPEN RESETLOGS;
}

场景 4:块修复(少量坏块)

RECOVER DATAFILE 4 BLOCK 123;

五、RMAN 常用脚本模板

1. 每日增量备份脚本

RUN {
  ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
  ALLOCATE CHANNEL c2 DEVICE TYPE DISK;
  
  BACKUP INCREMENTAL LEVEL 1 DATABASE PLUS ARCHIVELOG
    FORMAT '/backup/rman/incr_%d_%T_%U.bkp'
    AS COMPRESSED BACKUPSET;
  
  DELETE OBSOLETE;
  RELEASE CHANNEL c1;
  RELEASE CHANNEL c2;
}

2. 全库备份脚本(每周)

RUN {
  ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
  BACKUP DATABASE PLUS ARCHIVELOG
    TAG 'weekly_full'
    FORMAT '/backup/rman/full_%d_%T_%U.bkp'
    AS COMPRESSED BACKUPSET;
  DELETE OBSOLETE;
}

六、关键注意事项

  1. 必须开启归档模式
    ARCHIVE LOG LIST; -- 查看
    ALTER DATABASE ARCHIVELOG;
    
  2. 控制文件自动备份必须 ON(丢失后可恢复)
  3. 备份要校验CROSSCHECK+RESTORE ... VALIDATE
  4. 保留策略:生产用 RECOVERY WINDOW 更稳妥
  5. 压缩:建议启用,节省 50%–80% 空间
  6. Catalog:多库环境建议独立 Catalog

七、速查清单

  • 配置CONFIGURE/SHOW ALL
  • 备份BACKUP DATABASE/TABLESPACE/ARCHIVELOG
  • 还原RESTORE DATABASE/TABLESPACE/CONTROLFILE
  • 恢复RECOVER DATABASE/TABLESPACE
  • 管理LIST/CROSSCHECK/DELETE OBSOLETE

posted @ 2026-04-13 11:50  wuyingchun1987  阅读(22)  评论(0)    收藏  举报