Oracle备份与恢复实战秘籍.pdf
Oracle备份与恢复实战秘籍
第一部分:手工备份与恢复
第一章:备份恢复概述
一)数据库故障类型:
1)userprocessfailure:pmon自动处理
2)instancefailure:smon自动处理
3)usererrors:需要dba通过备份恢复或闪回技术解决
4)mediafailure:只能通过备份和日志恢复
二)备份和恢复计划
1)根据生产环境的恢复周期,制定详细的备份计划,然后严格执行
2)对备份,要在一定的时间内利用测试环境,进行故障恢复的练习
三)备份恢复分类
1)逻辑备份与恢复--面向object
①传统的导入导出:exp/imp:
②数据泵导入导出:expdp/impdp
逻辑备份就是热备数据库对象某一时刻状态,不能运用在mediafailure上,逻辑备份的恢复就是还原备份,没有recover的概念。
2)物理备份与恢复--面向datafile
①手工备份与恢复,也叫用户管理的备份与恢复(UMAN),通过OS的命令,完成备份与还原,然后再运用日志进行恢复。
②自动备份与恢复,利用oracle的备份恢复工具RMAN,使还原与恢复过程自动化程度较高,可以备份恢复ASMFILE。
物理备份从方式上可以有一致性备份(冷备)和非一致性备份(热备)
完整的备份策略应该以物理备份为主,逻辑备份为辅(用于备份一些重要的表)
3)闪回技术--面向人为的逻辑错误
不需要利用备份。一种利用undo数据或闪回日志的快速恢复技术。可以针对不同层面问题进行逻辑恢复,11g支持七种flashback
方式。
四)完全恢复与不完全恢复
mediafailure后,需要运用日志进行recover。
1)完全恢复:
利用完整备份或部分备份,可以将datafile恢复到failure前得最后一次commit,不会出现数据丢失。
2)不完全恢复
需要运用完整备份和日志将database恢复到过去的某个时间点(或SCN),有数据丢失。
五)归档与非归档
1)归档模式:redolog写入archivelog
2)非归档模式:没有archivelog,redologfile循环覆盖
当处于非归档模式下时,在丢失数据文件后唯一的选择是执行完整的数据库还原,而不能进行recover。
第二章:手工备份与恢复(uman)
一)相关命令
1)备份和还原都使用OS命令(数据库是文件系统),如linux中的cp
2)恢复用sqlplus命令:recover
二)备份前进行检查:
1)检查需要备份的数据文件
SQLselectnamefromv$datafile;
SQLselectfile_id,file_name,tablespace_namefromdba_data_files;
2)检查要备份的控制文件
SQLselectnamefromv$controlfile;
3)在线redo日志可以不做备份
三)dbv检查坏块
在手工备份前,应该检查datafile是否有坏块,备份完后对备份也要做检查。
对某个datafile做坏块检查
$dbvfile=/u01/oradata/prod/users01.dbffeedback=50
DBVERIFY-开始验证:FILE=/u01/oradata/prod/users01.dbf
四)冷备的注意事项:
1)必须干净的关闭数据库,以保证数据一致性。
SQLshutdwonimmediate;
2)在OS下必须备份所有数据文件(完整备份)
3)在OS下必须备份控制文件(至少备份一个)
4)非归档备份还原策略
恢复时还原所有备份,重建所有在线日志,没有recover步骤。
SQLstartupmount
SQLalterdatabaseclearlogfilegroupn;(n为所有在线日志组)
SQLalterdatabaseopen;
五)手工非一致性备份(热备份)
1)在备份前要进入热备模式,备份后要结束热备模式
执行beginbackup设置备份模式(在数据文件上生成检查点,写入scn,将来恢复的时候以此scn为起点)
对只读的表空间不能做热备份,临时表空间不需要备份,特别强调:NOARCHIVE模式下不支持手工热备。
对整个数据库设置热备模式:SQLalte