一、冷备份:
1、操作系统无法进入,需要利用启动盘进入winpe系统进行操作。
2、进入PE系统后,搜索所有盘符确认没有其它被作为oracle数据文件存放的目录,也就是说所有oracle有关的文件都存放在oralce的安装目录下,所以就直接将oracle的安装目录下所有文件都拷贝一份到移动硬盘。 3、记录下oralce的版本号、安装路径、数据库名(可以在pfile文件中查看到)、实例名保证后续重建数据库的时候配置和原数据库统一。
4、到此冷备份结束。
二、恢复:
1、彻底清除原安装路径下的oralce文件;
2、重新安装oralce10g,到原安装路径下,所有文件的路径都保持一致;
3、安装完成后检查oralce服务是否成功启动,数据库是否能够通过sqlplus / as sysdba;命令访问;
4、查看当前数据库的启动状态,为open,到此数据库安装成功。
5、接着将移动硬盘中备份的admin目录,pfile目录,spfile文件,(控制文件,数据文件,日志文件)都覆盖掉新装的oralce的对应的目录和文件;
6、进入sqlplus,输入命令: recover database using backup controlfile until cancel;
在输出的内容后面,敲入redo日志文件的绝对路径,然后回车,如果没有成功,就换一个redo日志文件接着试,直到成功为止。 成功后提示:已应用的日志。完成介质恢复。
7、接着输入命令: alter database open resetlogs; 重置redolog并打开数据库。
8、通过远程访问,成功。
三、问题:
1、在使用应用程序的时候发现某条sql(查询待办)的执行报了oralce的内部错误,经过分析发现是某个字段(办理状态)只要被作为条件查询就会导致此错误,可能是恢复的过程中出了问题,或者本身备份的原数据文件就已经有问题了, 解决的方法是用新的字段替换出问题的字段,然后将旧字段删除即可。
四、总结:
1、在此过程中其实遇到了很多没有遇见过的故障,究其原因还是因为没有同时覆盖(控制文件,数据文件,日志文件)和没有做最后的恢复命令导致的;
2、还是有一些问题没有理解的透彻,回头需要进行一番研究以彻底弄清楚恢复的原理和过程。
3、整个过程花费时长7.5小时。
五、待验证的想法:其实很可能不需要重新安装oralce,也能恢复数据,具体做法如下:
1、不要删除原来的oralce安装目录;
2、tnsnames.ora 和listener.ora文件换成初始状态;
3、运行命令,打开数据库创建向导:
D:\oracle\product\10.2.0\db_1\BIN\launch.exe "D:\oracle\product\10.2.0\db_1\assistants\dbca" ..\assistants\dbca\dbca.cl
4、在打开数据库创建向导中,建立一个数据库,其名称和路径要和原数据库保持一致;
5、之后的操作同上面的5、6、7;
6、运行命令,打开监听创建向导:
D:\oracle\product\10.2.0\db_1\BIN\launch.exe "D:\oracle\product\10.2.0\db_1\NETWORK\tools" ..\NETWORK\tools\netmgr.cl
7、创建监听。