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 ONCONTROLFILE AUTOBACKUP ONCOMPRESSED BACKUPSETRECOVERY 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:开库并重置日志(不完全恢复必须)
浙公网安备 33010602011771号