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 条黄金命令
rman target /→ 连接show all;→ 看配置list backup;→ 看备份configure controlfile autobackup on;→ 控制文件自动备份backup database plus archivelog delete all input;→ 全库备份crosscheck backup;→ 检查备份delete obsolete;→ 删除旧备份startup mount;→ 恢复前挂载restore database;→ 还原recover database;→ 恢复
总结
- 备份:
backup - 还原:
restore(把文件拿回来) - 恢复:
recover(应用日志) - 检查:
crosscheck - 删除过期:
delete obsolete
浙公网安备 33010602011771号