1.如何设计一个TB级数据库的RMAN备份策略
1.1 TB以下
- 用ORACLE即可实现(保存在磁盘上,5TB),也可以选择第三方备份软件 集中管理:
1)RMAN全备:每周,每天;开归档模式 2)逻辑全导出:每周 3)归档备份(第三方管理)
1.2 TB以下
- 用ORACLE+结合第三方软件(集中管理,带库,虚拟带库,大的备份存储,10TB):
1)RMAN全备:每周,开归档模式 2)归档备份:每天 3)逻辑导出:一个月只导一次结构就行了,或每天导一些重要的表。
1.3 2TB以上(集中管理,虚拟带库,第三方备份介质,几十TB,压缩功能,重复删除):
1)RMAN全备:每周,开归档模式;每个月一次加每周增量。 2)归档备份:每天 3)逻辑导出:一个月只导一次结构就行了,或每天导一些重要的表。
1.4 备份案列
- 环境
ORACLE RMAN+存储备份(1TB) 数据库1TB,每天的归档量50GB
- 备份策略
每周5,20:00全备,保留2份。5TB 归档保留10天。 1TB 恢复,全备+归档。 逻辑全导出:每周 2TB
备份脚本 rman_full_orcl.sh
rman target / catalog rman/rman@rman msglog '/u01/backup/logs/rman_full_itpux.log' << EOF run { CONFIGURE RETENTION POLICY TO REDUNDANCY 2; allocate channel d1 type disk; allocate channel d2 type disk; setlimit channel d1 kbytes 102428750 maxopenfiles 32 readrate 200; setlimit channel d2 kbytes 102428750 maxopenfiles 32 readrate 200; sql 'alter system archive log current'; backup incremental level 0 skip inaccessible tag itpux_level0 filesperset 3 format '/u01//backup/datafile/orcl_rman_full_%s_%p_%t' (database); release channel d1; release channel d2; ALLOCATE CHANNEL d3 TYPE disk; BACKUP # recommended format FORMAT '/u01//backup/orcl_rman_cntrl_%s_%p_%t' CURRENT CONTROLFILE; RELEASE CHANNEL d3; ALLOCATE CHANNEL d4 TYPE DISK; copy current controlfile to '/u01//backup/datafile/control_itpux.bak'; RELEASE CHANNEL d4; } ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK; run { report obsolete; DELETE noprompt EXPIRED BACKUP; DELETE noprompt EXPIRED COPY; delete noprompt obsolete device type disk; } exit EOF
删除归档 rman_delarch_orcl.sh
rman target / catalog rman/rman@rman msglog '/u01/backup/logs/rman_delarch_itpux.log' <<EOF run{ crosscheck archivelog all; delete noprompt archivelog until time "sysdate-7"; delete noprompt expired archivelog all; } exit
设置crontab
00 5 * * * su - oracle -c /u01/backup/scripts/rman_delarch_orcl.sh 00 18 * * 5 su - oracle -c /u01/backup/scripts/rman_full_orcl.sh
2.在非归档模式的RMAN备份案例
备份分为一致性备份和不完全性备份,也就是我们所说的归档模式与非归档模式的备份.创建非归档备份可以是在非归档模式下创建,并且数据库必须处于mount状态下,而且恢复的时候值能恢复到最后一次备份的状态。也就说从备份到发生故障的这段时间都将丢失
1.1. 检查归档状态
archive log list;
1.2 将数据库启动到mount状态
shutdown immediate startup mount;
1.3 执行备份
rman target / backup database;
2.1 非归档模式备份
shutdown immediate; startup mount; rman target / backup database;
3.1 归档模式
alter database open
3.在归档模式的RMAN备份与恢复案例-丢失所有文件
如果要创建正式库的备份,一般不建议用非归档模式备份,也不建议用很简单的命令来完成。而是更多的采用脚本实现归档模式备份,这样将可通过backup+archive log+redo有效的将数据恢复到最近一次改变的状态,可以达到数据的丢失最小化。
创建归档模式备份 > 创建归档模式备份数据库必须处于归档(archivelog)模式,因为归档模式备份的数据库文件和控制文件的SCN号可能会不一致。 并且可以在数据库打开并不影响业务的情况下完成数据的备份工作;那么这样的备份将是归档模式的备份,那么如果要恢复可以通过backup+archive log+redo来恢复到最近一次日志切换时候的数据,而不是最后一次备份时候的数据。
寻找dbid
--1.可以在查看数据库警告日志 vim /u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log --2.在备份的控制文件中查找 --3.用BBED在备份的文件中查找 --4.在备份日志中查找 --5.配置控制文件强制启动数据库 --5.1 添加一个参数文件