昨天,一个客户打打来电话,说他们的数据库坏了,不能用了,需要我帮助恢复下,这马上要放假了,居然出了这事儿,自己也不太喜欢恢复数据库这类,尤其是他们的数据库是个win上的库,但心里很清楚,客户比咱着急,客户就是上帝,没什么好说的,开工吧。通过认真了解,大体明白了客户的情况,他们的库是在win上的Oracle11g,因为杀毒软件的把Oracle软件的某些文件当成了病毒给删了,而且顽固到拷贝过去就会删掉,后来也不知道删了多少文件,数据库就起不来了,我也不知道他们把数据库给主动关了,还是数据库自己宕掉了,反正结果就是起不来了。经过检查,数据文件应该还没问题,只是大体判断而已,开始恢复吧。
1、安装软件
首先,得先重新安装Oracle软件,经过和客户沟通,他们很自信的说可以自己重新安装软件,于是,先由他们来安装数据库软件,为了保险起见,让他们把软件安装到和之前不同的位置。让我有点惊讶的是,客户安装软件非常快,可能也就10多分钟就装完了。为了说明,假设原来的软件安装路径为:
d:\app\erp\product\11.2.0\dbhome_1
新安装软件的路径为:
d:\app\erp\product\11.2.0\dbhome_2
软件装完了,接下来需要做的就是看看能否用新安装的软件把数据库拉起来。
2、设置环境变量
打开计算机高级设置-->环境变量设置--->设置:
ORACLE_SID=ora11g
ORACLE_BASE=d:\app\erp\product\
ORACLE_HOME=d:\app\erp\product\11.2.0\dbhome_2
将path中oracle有关路径d:\app\erp\product\11.2.0\dbhome_1\bin -->d:\app\erp\product\11.2.0\dbhome_2\bin
3、拷贝相应文件:
cp d:\app\erp\product\11.2.0\dbhome_1\database\*.* d:\app\erp\product\11.2.0\dbhome_2\database\
cp d:\app\erp\product\11.2.0\dbhome_1\network\*.* d:\app\erp\product\11.2.0\dbhome_2\network\
4、注销并重新登录OS用户
5、先删除旧的oracle服务
oradim -delete -srvc oracleserviceora11g
6、新建oracle服务:
oradim -new -srvc oracleserviceora11g -sid ora11g -startmode auto -shutmode immediate -srvcstart demand -spfile
7、重启新建的oracle服务
net start oracleserviceora11g
lsnrctl start
8、登录数据库测试:
sqlplus test/test@ora11g
如果能顺利登录数据库,说明到此一切OK。
9、删除旧的oracle软件目录,以释放空间。
10、至此,客户数据库恢复完成,前后大概半个多小时的样子。