现在的位置: 首页 > 综合 > 正文

Oracle数据恢复方法

2013年03月07日 ⁄ 综合 ⁄ 共 1845字 ⁄ 字号 评论关闭
当Oracle的控制文件丢失或损坏,但数据文件完好时,可以通过重建控制文件的方式对数据库实例进行恢复。恢复方法如下:
一、备份数据文件
一、安装Oracle,安装过程中不要创建数据库。
二、安装好后,用DBCA(Database Configuration Assistant)创建与丢失的实例相同名称的实例。创建实例时的数据文件、控制文件位置与名称要与原实例的相应文件位置及名称相同。数据文件与控制文件的信息可以从(admin/zhxt/bdump/alert_xxxx.log)文件找到,其中xxxx为实例名,参照这个文件里的CREATE CONTROLFILE 语句段。还要注意创建实例时的归档模式及非归档模式,如果admin/zhxt/bdump/alert_xxxx.log文件中的CREATE CONTROLFILE 那一行最后是NOARCHIVELOG,则为非归档模式,如为ARCHIVELOG,则为归档模式。
三、关闭Oracle,用备份出来的数据文件覆盖新建的数据文件,并将新生成的控制文件及重做日志文件删除。
四、启动Oracle有监听
五、用sys用户连接到oracle
Sqlplus /nolog
SQL>conn sys/sys as sysdba;
六、关闭数据库
SQL> shutdown immediate;
七、起动数据库,但不挂载数据文件
SQL> startup nomount;
八、重建控制文件,重建控制文件的脚本可以从admin/zhxt/bdump/alert_xxxx.log)文件找到,搜索 CREATE CONTROLFILE 语句,如果存在多处这样的语句,则使用最后的。
控制文件的脚本类似如下语句:
 
CREATE CONTROLFILE REUSE DATABASE "zhxt" NORESETLOGS NOARCHIVELOG
-- SET STANDBY TO MAXIMIZE PERFORMANCE
    MAXLOGFILES 50
    MAXLOGMEMBERS 5
    MAXDATAFILES 100
    MAXINSTANCES 1
    MAXLOGHISTORY 226
LOGFILE
 GROUP 1 'E:/ORADATA/zhxt/REDO01.LOG' SIZE 100M,
 GROUP 2 'E:/ORADATA/zhxt/REDO02.LOG' SIZE 100M,
 GROUP 3 'E:/ORADATA/zhxt/REDO03.LOG' SIZE 100M
-- STANDBY LOGFILE
DATAFILE
'E:/ORADATA/zhxt/RKXT.ORA',
'E:/ORADATA/zhxt/SYSTEM01.DBF',
'E:/ORADATA/zhxt/TOOLS01.DBF',
'E:/ORADATA/zhxt/TYZHXTTBS.ORA',
'E:/ORADATA/zhxt/UNDOTBS01.DBF',
'E:/ORADATA/zhxt/USERS01.DBF',
'E:/ORADATA/zhxt/ZHXTTBS.ORA'
CHARACTER SET ZHS16GBK
 
这一语句有几个地方需要修改:
1、   因为重做日志文件已丢失,所以要将第一句的,NORESETLOGS 改为 RESETLOGS
2、   LOGFILE段的几个重做日志文件指定为实际希望的位置
3、   DATAFILE段的数据文件改为数据文件实际的位置,注意这里不要包括临时表空间用到的文件,否则会出错。
 
执行修改后的脚本。如果提示控制文件创建完成,则可以进行下一步操作。
 
结果系统报错:
ORA-01503: CREATE CONTROLFILE ??
ORA-01160: ???? data file
ORA-01110: ???? : 'D:/oracle/oradata/cicdb/TEMP01.DBF'

则需要将重建日志文件中DATAFILE段中TEMP01这行删除,因为它是临时表空间,可以在创建后用alter database语句加上。再次执行重建控制文件的脚本。
 
九、创建控制文件成功后,执行以下语句打开数据库,加上RESETLOGS参数是为了重新生成重做日志文件。
SQL> alter database open RESETLOGS;
 
十、将临时表空间加入到实例上
SQL> alter tablespace TEMP add tempfile 'E:/oradata/zhxt/TEMP01.DBF' reuse;
 
十一、退出sqlplus,重启oracle,测试是否成功

抱歉!评论已关闭.