系统崩溃Oracle数据库的恢复方法

一、            备份数据

把旧的ORACLE所有文件都COPY备份下来,删除旧目录,再重新安装ORACLE,目录和旧目录一样(如果不一样,要修改的地方比较多)。

二、安装ORACLE数据

安装时不创建数据库,使用安装程序正常卸载,在删除原目录文件夹、环境变量、临时文件夹。如果已经创建了数据库,用" 开始 ==>所有程序==>Oracle - OraDb10g_home1==>Database Configuration Assistant" 删除掉。

三、            恢复过程

我的数据库的实例名为JOB,下面为整个恢复过程

C:/Documents and Settings/admin>oradim -new -sid JOB
实例已创建。
C:/Documents and Settings/admin>set ORACLE_SID=JOB

C:/Documents and Settings/admin>sqlplus "/as sysdba"

SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 2月 7 22:54:32 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

已连接到空闲例程。

SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: ???????????????? 'D:/ORACLE/PRODUCT/10.2.0/DB_1/DATABASE/INITJOB.ORA'

把之前备份到E盘的数据db_1目录下的admin、flash_recovery_area、oradata三个文件夹放回到原来相应目录下,

再次启动实例

SQL> startup
ORACLE 例程已经启动。

Total System Global Area  314572800 bytes
Fixed Size                  1248768 bytes
Variable Size              83886592 bytes
Database Buffers          222298112 bytes
Redo Buffers                7139328 bytes
数据库装载完毕。
数据库已经打开。
SQL> conn scott/tiger
已连接。

四、环境变量

现在可以连接ORACLE了,但有一个缺点,就是每次连接前都要设置环境变量ORACLE_SID,使用的DOS命令:SET ORACLE_SID=HWDB
为了省去这个麻烦,必须配置环境变量.

将以下内容保持成一个后缀名为reg的文件(文件名随便起),然后双击,即可将信息导入到注册表中。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREORACLE]

"ORACLE_SID"="JOB"

为了确保注册表里的ORACLE_SID都正确设置了,可以搜索注册表,找出所有的ORACLE_SID,
如果发现有设置不正确的,将值修改为正确值("ORACLE_SID"="SID"改为"ORACLE_SID"="HWDB").

重新计算机,OK!!

其它:

启动oracle实例job:net start oracleservicejob
然后启动监听:lsnrctl start
成功启动后,查看监听了几个实例:lsnrctl status