ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 操作系统重装后Oracle数据库的恢复

操作系统重装后Oracle数据库的恢复

原创 Linux操作系统 作者:regonly1 时间:2010-10-19 12:08:33 0 删除 编辑
上周五操作系统异常,关机后无法再启动,求助于公司硬件技术人员得不到解决,于是只好换机器。由于原来硬盘上仍有大量数据,因此以移动硬盘的方式从原始硬盘中拷贝出了数据。

最麻烦的是Oracle的数据文件,只是拷贝文件还没用,还需要恢复。但是我只是有个初步的概念,没有实际的操作经验,看到了一堆数据文件却不知道如何处理。
不过总是要试试看的嘛,所以我大概搜索了下此类方法。

首先,安装数据库软件肯定是必须的;

然后,就是如何将数据库与数据文件关联起来了。我们知道,现在的数据文件和数据库软件是毫无关系的,根本无从启动。那如何绑定这个关系呢?

按照网上的说法,就是用一个新的实例来挂载这些数据库文件。那如何创建实例呢?实例,我们知道,有个实例名,所以我们先设定实例名:
set ORACLE_SID=orcl(windows环境,unix环境则用export ORACLE_SID=orcl)

然后就是创建实例:
oradim -new -sid orcl -startmode m
(删除实例:oradim -delete -sid orcl)

这里是关键,有些地方指定了启动的pfile,即:
oradim -new -sid orcl startmode m pfile=E:\oracle\product\10.2.0\admin\orcl\pfile\initorcl.ora
需要注意的是,oradim是oracle在windows下开发的一个特有的命令,用于向系统注册启动服务,它在unix/linux下是不存在的,因为此类系统下,无需注册启动的服务。因此要创建实例,直接通过sqlplus创建实例即可(未经验证)。

但是实际操作中发现,在这个步骤指定这个文件后,如果在sqlplus启动中不重新指定(startup nomount),始终都会报“ora-01263”错误。一开始以为是参数文件中指定的dump路径有问题,但每个都检查了一遍都正常,甚至只剩下db_name参数时也还是报这个错误,所以我分析应该不是这个参数文件导致的,所以在startup的时候,重新指定了pfile文件:
startup nomount pfile=E:\oracle\product\10.2.0\admin\orcl\pfile\initorcl.ora
便能正常启动了。一般情况下,只要参数文件中配置的路径跟实际数据文件的路径一致,且数据文件都正常,数据库便能正常挂载和启动了。注意,该参数文件也是从原来的地方拷出来的。
 
总结一下:
在恢复数据库之前,首先要具备以下几个条件:
1、pfile或spfile。这个是启动的关键,必须让oradim知道是那个参数文件才能启动,可以通过create pfile from spfile或者create spfile from pfile来备份;
2、tnsnames.ora。这个是历史配置的连接名,在恢复之前最好是备份此文件。不然的话,下次连接数据库的时候又得一个个重新配置这些连接名了。
3、所有控制文件、数据文件、日志文件等。

如何根据数据文件恢复数据库。
1、安装Oracle软件;
2、拷贝数据文件到参数文件中指定的路径下;
3、增加实例:oradim -new -sid orcl -syspwd passwd -pfile '...';
4、指定pfile参数文件,启动实例到nomount状态;
5、如果启动正常,则创建spfile:create spfile from pfile=....;
6、重启动数据库,以spfile(默认方式)启动;
7、恢复完成。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12932950/viewspace-676264/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-05-10

  • 博文量
    257
  • 访问量
    1070064