一、版本和数据库文件信息
二、备份数据库
注意:备份数据库时如果配置了 configure exclude fortablespace tbsname 的表空间是不会进行备份的,恢复表空间备份configure exclude for tablespacetbsname clear;如果没有设置自动备份控制文件和参数文件,要在备份脚本最后手动添加备份控制文件脚本;设置自动备份控制文件和参数文件:
控制文件名格式必须包含%f,%f的格式为:c-iiiiiiiiii-yyyymmdd-qq,iiiiiiiiii(10位)代表dbid发生灾难时可以通过它知道数据库id,yyyymmdd代表自动备份时的timestamp,qq代表是十六进制的序列号,起始值为:00,最大值为:ff。开始备份数据
通过备份日志可以知道哪些数据文件被备份,哪些没有被备份或没有备份成功,比如:发现较多数据块损坏、表空间被排除备份(exclude)、表空间被skip;关注这些信息非常重要,因为一旦灾难发生,它意味着你的数据库恢复成功率,也有助于对备份脚本的优化和调整。
三、验证数据库可恢复性
验证可恢复性可以发现一些忽略的问题,及时处理;
四、数据库恢复
恢复参数文件和控制文件
数据库启动时会先查找spfile,然后在找spfile.ora,再找文件initpfile,如果这些文件都没有找到报错并停止启动;so 先创建一个基本的init pfile;
如果你的数据块大小为非8kb,你又想在恢复控制文件后完成其它操作,如mount控制文件,则你必须在init 文件中指定数据块大小;
查看备份文件和确定可恢复的最大归档日志序列
注:如果目录名发生改变或文件发生位置移动,先使用 catalog start with '/dir' 将文件catalog;
从上面的信息中可以看出最大可恢复到的日志序列为20,恢复时设置until sequence 21,数据库即可应用所有的归档日志;
使用resetlogs 方式打开数据库
五、总结
任何时候数据库的还原和恢复因环境和错误的不一而不同,认真有效的阅读文档,理解工作原理,然后在加上重复的实验方能起到良好的效果,实验本身是动手实践的步骤,但同时也是理论实践结合的强有效方式。
<b>本文来自云栖社区合作伙伴“dbgeek”</b>