oracle服务器异常断电导致控制文件损坏恢复方法
【导读】:由于服务器异常断电,在断电的同时又有客户端对数据库进行读写操作导致数据库内部逻辑混乱,数据库登陆不了。
错误编码: ora-01033: oracleinitialization or shutdown in progress
解决方案:
1、备份恢复:基于在损坏之前有自动备份的情况
2、通过备份的控制文件恢复,在三个控制文件没有损坏或者有备份的情况。
3、基于PRM-DUL工具对数据文件进行恢复;
下面主要讲述基于PRM-DUL工具进行恢复的步骤:
1)、首先下载PRM-DUL工具,地址如下:
http://parnassusdata.com/sites/default/files/ParnassusData_PRMForOracle_3206.zip
2)、安装JAVA JDK 1.6及以上版本,地址如下:
http://www.oracle.com/technetwork/java/javase/downloads/jdk6-jsp-136632.html
JAVA--JDK环境变量的配置:
1.我的电脑-->属性-->高级-->环境变量.
2.配置用户变量:
a.新建 JAVA_HOME
C:\Program Files\Java\j2sdk1.5.0 (JDK的安装路径)
b.新建 PATH
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
c.新建 CLASSPATH
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
3.测试环境变量配置是否成功:
开始-->运行--〉CMD
键盘敲入: JAVAC JAVA
出现相应的命令,而不是出错信息,即表示配置成功!
3)、安装完后双击打开应用程序
4)、正常打开后界面如下:
5)、点击应用左上角的“工具”选项,选择“恢复向导”——“下一步”;
6)、选择“字典模式”——“下一步”——“下一步”:
7)、将看到如下界面:
8)、选择“选择文件”,找到要恢复的数据目录,选择所有的以.DBF结尾的数据文件,如下图:
9)、选中后“打开”,将所有的数据文件加载进来,并单击“加载”。
10)、这时数据会慢慢加载进来,如下图:
11)、加载完成以后会显示对应数据的用户以及该用户下的所有的表,如下图所示:
12)、这样,通过DBF数据文件就将所有的数据导入到应用中了。
13)、搭建本地的数据库环境,正常的安装过程。(具体过程见技术文档)。
14)、下面将利用“数据搭桥”的方式将应用中的数据导入到本地库中。具体操作如下:【数据搭桥:就是在本地建立数据库环境,然后通过设置要导入的目标数据库的方式将数据导入到本地的数据库】
a、选中要搭桥的表,例如图中的EXAMCARINFO表,右击选择“数据搭桥”。
b、单击图示的”+”号,显示如下【图2】:在里面设置本地目标数据库的连接信息:
连接名:任意输入
用户名、口令、端口号、主机名及服务名根据个人安装的数据库情况填写。如果目标数据库安装在本地的,主机名可以为localhost,如果为远端的可以是目标数据库的ip地址。
【图1】
【图2】
c、设置好后,点击“测试”,如果成功连接会显示如下图:
d、此时,再次右击要导出的表,例如EXAMCARINFO表,选择“数据搭桥”,显示如下图:
e、勾选“是否重映射表”,输入目标表名,(注意:如果目标库中已经有相同的表名,将此目标表名更改名称,例如:原先是EXAMCARINFO,目标库有此表名时,表名更改为EXAMCARINFO1),数据库连接选择刚刚设置的“连接名”,表空间为默认选中。
f、单击“数据搭桥”,如果成功会显示如下:
g、此时通过PLSQLDev登陆数据库即可看到导出的数据,如下图:
h、其他表的操作相同,单表操作可以快速看到效果,如果感觉麻烦,可以右击用户,例如图示的“GHKS2”——“数据搭桥”即可。
i、所有的数据导入目标库后,可以利用工具或者DOS命令将目标库中的恢复数据导出即可。
【建议】:数据库安装正常使用后,将数据库文件下的控制文件备份。