rman备份方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
以下都是使用rman增量备份,主要是从数据库大小和备份还原所用时间两个方面考虑。
0级备份表示数据库的全备份,默认不包括只读表空间。
1级备份表示小于等于1级备份以来的数据库变化情况。
2级备份表示小于等于2级别分以来数据库的变化情况。
3级,4级的意思和1级相似。
1、一月一次0级备份,两周一次1级备份,一周一次2级备份,每天一次3级备份。
此备份方案将备份时间分散,可以说是节省了备份的时间,而且节省了许多存储备份的空间,但是这造成还原时间增加了许多。
2、两周一次0级备份,一周一次1级备份,每天一次2级备份。
此备份方案相对方案2在备份时间上增长,还原时间缩短,存储备份的空间也相对有少量的增加。
3、一周一次0级备份,每天一次1级备份。
此方案平凡的对数据库进行全备份,占用操作系统的资源相对方案2和方案3大了很多,而且占用更多存储空间,但是此方案节省了很多恢复的时间。
数据库的备份方案选择主要调节备份和还原所用时间之间的平衡,使其对生产系统的影响降到最小。如果备份时间过长会长时间的占用I/O和内存资源,造成生产环境文件读取速度慢;如果还原时间太长,则拖延了系统恢复后正常上线的时间。对于现在的数据库系统,案2和方案3在备份时间上和方案4相差无几,在备份存储上比方案4节省不少,但是在还原时间上却大大超过方案4。
为了数据的安全性,建议不用方案1作为主要备份。而对于2,3,4,在实际生产环境中,根据现在数据库大小和每天产生的数据量大小的估计,方案4最适合。虽然平凡的0级备份对操作系统的资源占用很大,但是从测试的情况看,每次0级备份所发的时间是20分钟左右,1级备份所用的时间是6分钟左右,而且每次0级备份都在周末比较空闲的00:00进行,对生产环境的影响可以忽略不计。在备份存储方面,一次0级备份占用空间30G,每天1级备份占用空间是600M左右,一周的全部备份文件大小在120G左右,E盘存储空间大小正好适合于两周数据的存储,可以在1-2周手动的清理过期的备份集一次。
所以综合考虑,方案4最适合现在的生产环境。不过当数据库大小增加到200G以上时,0级备份时间与还原时间分配不平衡时,可以换用方案3;当数据库大小增加到1T以上时,可以考虑用方案2或者制定其他的方案。
一、备份方法。
如果恢复目录已经创建,执行第六步就行。
1、启动数据库归档
Startup mount
Alter database open archivelog;
2、创建工具表空间。
Create tablespace tools datafile …数据文件路径‟ size 50m;
3、创建rman用户
Create user rman identified by rman0501 default tablespace tools temporary tablespace temp;
4、给rman用户授予权限
Grant resource,connect,recovery_catalog_owner to rman;
5、创建恢复目录
Rman target / catalog rman/rman0501
Create catalog tablespace tools;
6、注册数据库
Register database;
6、编写备份执行脚本
0级备份文件backup_0.rcv
1级备份文件backup_1.rcv
2级备份文件backup_2.rcv
批处理文件backup_0.bat, backup_1.bat, backup_2.bat
用方案2定制的定时任务命令
每周日运行一次0 级备份
Schtasks /create /tn “backup_0” /tr backup_0.bat(绝对路径) /sc weekly /d SUN /st 01:00
每天运行一次1级备份
Schtasks /create /tn “backup_1” /tr backup_1.bat /sc daily /st 23:59
每隔两周手动清理一次数据
查看过期的备份
Report obsolete
留下上一周备份,上一周以前的备份全部删除
Delete backupset id1,id2…
二、还原数据库
1、完全恢复
用于数据出现崩溃后,无法启动的情况。
编写恢复脚本
recovery.rcv
执行批处理
recovery.bat
2、不完全恢复,用于因误操作导致表或数据别删除的情况。
出现这种情况请立即关闭应用。
在nrecovery.rcv中设置需要恢复到的时间点。如果不知道是哪个时间点。就启动数据库执行:
启动命令模式
Conn / as sysdba
Select …exec dbms_logmnr.add_logfile(…‟‟||member||‟‟‟) from v$logfiles;
执行以上的查询结果。
Exec dbms_logmnr.start_logmnr
Select scn,sql_redo from v$logmnr_contents where sql_redo like …%delete 或者drop%‟;
Exec dbms_logmnr_end_logmnr
将recovery.rcv中的set until time 改成set until scn …以上查询出来的‟
执行nrecovery.bat
最后在rman中reset database; 同步数据库。
运行过程中如果出现ora-01861错误,则进入注册表在hkey_local_machines/oftware/oraclehome0下新建字串名为nls_date_format,定义时间格式为