一。有数据文件、控制文件和日志文件的备份1.服务器重装了操作系统,oracle也重装了。如果重装的oracle和以前损坏的数据库是一模一样的结构,那么此时的恢复是比较简单的。
1)删除掉新建数据库的所有数据文件、控制文件和日志文件。Copy原数据库的数据文件、控制文件和日志文件到对应目录下。
2)
Cmd>sqlplus /nolog
Sql>conn as sysdba
用户名:system
密码:(此处密码为新创建数据库的密码)
Sql>shutdown immediate
Sql>startup nomount
Sql>alter database mount
此时看数据库是不是能mount起来,有时会提示没有口令文件PWDdemo.ora文件找不到。查看对应的目录(database下)会发现该文件是存在的。此时需要注意,该口令文件是新安装数据库后创建实例时生成的口令文件,不是以前所用数据库的口令文件,而现在,我们是用以前数据库的控制文件和数据文件来打开以前的数据库,所以此时需要重新创建一个口令文件。
Sql>shutdown immediate
Sql>host orapwd file=c:\oracle9i\database\PWDdemo.ora password=oracle
Entries=10 (放在database 目录下)
Sql>startup nomount
Sql>alter database mount
Sql>alter database open
打开数据库
2.如果新数据库的安装目录和原有数据库的目录不一样,那么此时可以重建控制文件来打开数据库。因为原控制文件中记录的数据文件地址和现有的数据文件位置不一样。此时和下面第二中情况一样。当然,此时也可以创建和原数据库一样的目录结构(前提是要记得原数据库的目录结构),需要注意的就是参数文件中记录的控制文件位置和控制文件中记录的数据文件位置。
说明:我们需要清楚数据库在打开的三个阶段中,需要读取的文件
Sql>startup nomount (此时读取参数文件)
Sql>alter database mount (根据参数文件中记录的控制文件地址,去读取控制文件)
Sql>alter database open (根据控制文件中记录的数据文件地址,读取数据文件,打开数据库)
二。只有数据文件备份,没有控制文件和日志文件
由于只有数据文件备份,没有控制文件和日志文件,此时只能采用重建控制文件来恢复数据库。以下通过两中方法来介绍如何通过重建控制文件来进行数据库的恢复。
1)仅安装数据库软件,通过新建oracle服务,引用数据文件来创建一个实例。下面以实例名为demo为例进行说明。
1.创建存储demo相关文件的目录。即::各类文件的存放地址。
C:\documents and settings\mkdir c:\demo
C:\documents and settings\mkdir c:\demo\bdump
C:\documents and settings\mkdir c:\demo\udump
C:\documents and settings\mkdir c:\demo\cdump
C:\documents and settings\mkdir c:\demo\pfile
C:\documents and settings\mkdir c:\demo\create
C:\documents and settings\mkdir c:\demo\oradata
C:\documents and settings\mkdir c:\demo\oradata\demo (放置datafile、logfile、controlfile)
2.创建初始化参数文件(pfile)
此处pfile文件可以从其他能正常运行的数据库上copy一个过来进行修改。(判断其他正常运行的数据库使用的是pfile还是spfile,如是pfile可以直接copy,如是spfile,则可根据spfile创建一个pfile文件)
Copy过来的pfile需要修改的地方:
background_dump_dest=c:\demo\bdump
core_dump_dest=c:\demo\cdump
user_dump_dest=c:\demo\udump
control_files=("c:\demo\oradata\demo\CONTROL01.CTL", "c:\demo\oradata\demo\CONTROL02.CTL", "c:\demo\oradata\demo\CONTROL03.CTL")
dispatchers="(PROTOCOL=TCP) (SERVICE=demoXDB)"(实例名)
dispatchers="(PROTOCOL=TCP) (SERVICE=demoXDB)"
db_domain=""
db_name=demo
3.创建oracle服务和口令文件
C:\documents and settings\oradim — new —sid demo —intpwd oracle
4.配置监听和服务
用net manager 进行配置(demo实例的配置)
5.复制数据文件备份到指定的目录下。此处为c:\demo\oradata\demo
6.重建controlfile C:\Documents and Settings\hefan>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期一 12月 29 10:57:07 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn as sysdba
请输入用户名: system
请输入口令:
已连接。
SQL> shutdown immediate
ORA-01507: 未安装数据库
ORACLE 例程已经关闭。
SQL> startup nomount file= c:\demo\pfile\initdemo.ora
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
SQL> @d:\controlfile.sql
控制文件已创建
Controlfile.sql内容如下:(此处也可以直接在sql>下输入以下内容进行创建controlfile)
CREATE CONTROLFILE REUSE DATABASE "demo" RESETLOGS NOARCHIVELOG
MAXLOGFILES 50
MAXLOGMEMBERS 5
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 226
LOGFILE
GROUP 1 'c:\demo\oradata\demo\redo01.log' SIZE 50M,
GROUP 2 'c:\demo\oradata\demo\redo02.log' SIZE 50M,
GROUP 3 'c:\demo\oradata\demo\redo03.log' SIZE 50M
DATAFILE
'c:\demo\oradata\demo\system01.dbf',
'c:\demo\oradata\demo\odm01.dbf',
'c:\demo\oradata\demo\indx01.dbf',
'c:\demo\oradata\demo\tools01.dbf',
'c:\demo\oradata\demo\undotbs01.dbf',
'c:\demo\oradata\demo\users01.dbf',
'c:\demo\oradata\demo\xdb01.dbf',
'c:\demo\oradata\demo\cwmlite01.dbf',
'c:\demo\oradata\demo\drsys01.dbf',
'c:\demo\oradata\demo\example01.dbf'
CHARACTER SET zhs16gbk
说明:此时没有日志文件,所以只能进行reserlogs,如果是有logfile,则此处不需要resetlogs,noresetlogs就可以
7.恢复数据库 SQL> recover database using backup controlfile until cancel;
ORA-00279: ?? 523637 (? 12/23/2008 20:52:22 ??) ???? 1 ????
ORA-00289: ??: C:\ORACLE9I\RDBMS\ARC00005.001
ORA-00280: ?? 523637 ???? 1 ???? # 5 ???
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL> recover database using backup controlfile until cancel;
ORA-00279: ?? 523637 (? 12/23/2008 20:52:22 ??) ???? 1 ????
ORA-00289: ??: C:\ORACLE9I\RDBMS\ARC00005.001
ORA-00280: ?? 523637 ???? 1 ???? # 5 ???
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL> alter database open resetlogs;
数据库已更改。
Resetlog后要进行数据库的全备,以前的备份不可用。
2)安装数据库,创建一个实例,用备份的数据文件代替新创建实例的数据文件。
1.删除安装目录下所有的datafile、comtrolfile、logfile.(oradata目录下的文件)
2.Copy备份的数据文件到oradata目录下
3.重建控制文件 C:\Documents and Settings\hefan>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期一 12月 29 10:57:07 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn as sysdba
请输入用户名: system
请输入口令:
已连接。
SQL> shutdown immediate
ORA-01507: 未安装数据库
ORACLE 例程已经关闭。
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
SQL> @d:\controlfile.sql
控制文件已创建
4.恢复数据库 SQL> recover database using backup controlfile until cancel;
ORA-00279: ?? 523637 (? 12/23/2008 20:52:22 ??) ???? 1 ????
ORA-00289: ??: C:\ORACLE9I\RDBMS\ARC00005.001
ORA-00280: ?? 523637 ???? 1 ???? # 5 ???
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL> recover database using backup controlfile until cancel;
ORA-00279: ?? 523637 (? 12/23/2008 20:52:22 ??) ???? 1 ????
ORA-00289: ??: C:\ORACLE9I\RDBMS\ARC00005.001
ORA-00280: ?? 523637 ???? 1 ???? # 5 ???
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL> alter database open resetlogs;
数据库已更改。
进行数据库的全备份,resetlogs后以前的备份不可以用。
说明:此处新建实例的作用就是不需要创建参数文件、oracle服务。(创建实例时,这些都已经创建好了,此时只需要用备份的数据文件代替新创建实例的数据文件)。
分享到:
相关推荐
本文介绍了恢复只有完好数据文件的oracle数据库的方法。
如何从完好的数据文件恢复oracle数据库.pdf
PRM-DUL可以脱离Oracle数据库软件实例的存在直接读取Oracle数据文件datafile中的行数据和LOB等大对象。 当你的数据库因为ORA-00600/ORA-07445或其他ORA-报错,或丢失关键的system表空间数据文件,或ASM diskgroup...
重做操作系统后oracle数据库的恢复 文件夹中文件说明: ora.reg oracle主要注册项的恢复参考文件 oraodbc.reg odbc驱动项的恢复参考文件 oraole1~4.reg ole 驱动项的恢复参考文件 恢复中重要操作说明: 1、恢复前提...
详细介绍如何正常删除Oracle 数据库表空间数据文件,OFFLINE和OFFLINE DROP的区别,OS级别删除了数据文件后的恢复,删除数据库表空间数据文件演示示例
Oracle必杀技物理删除数据文件恢复,详解了实用的Oracle物理表空间删除修复命令。
2.支持从ASM中直接抽取出数据文件和其他任意存储在ASM中的文件(包括控制文件2.日志文件和归档日志等),即使相关的磁盘组不能成功mount 3.在ASM磁盘损坏严重的情况下,EOR可以扫描ASM磁盘,提取出没有被覆盖的数据...
支持从ASM中直接抽取出数据文件和其他任意存储在ASM中的文件(包括控制文件、日志文件和归档日志等),即使相关的磁盘组不能成功mount 支持的Oracle数据库版本包括7,8i,9i,10g,11g 支持多种平台的数据库,包括AIX...
Oracle软件误删损坏不用慌,数据恢复技术来帮忙。只要数据文件尚在,无备份文件也能完整恢复数据库。千万不可因为玩坏了数据库而跑路,一切都还有救!
Oracle11g dbf数据库文件恢复经验 ORACLE 报错ORA-00600:内部错误代码,参数:[kcratr_nab_less_than_odr] 经过验证 成功恢复
恢复Oracle数据库控制文件.pdf
30. 没有备份、只有归档日志,如何恢复数据文件 31. 哪些初始化参数最影响Oracle系统性能 32. 如何查看数据库的字符集 33. 如何启动ARCHIVELOG模式 34. 如何使‘CREATE TABLE AS SELECT’能支持ORDER BY ? 35....
ORACLE数据库物资管理系统磁盘损坏数据恢复处理报告 UNDO文件损坏
dbview for oracle是一个oracle数据恢复工具,能在没有安装oracle数据库的电脑上,通过对数据库的数据文件进行分析, 得到oracle的数据、表、视图、 函数、存储
数据库的数据文件规划、维护、恢复和初始参数的配置说明
第4课 Oracle数据库的参数文件,控制文件,数据文件和日志文件 第5课 Oracle体系架构简述 第6课 Oracle数据库的对象(1) 第7课 Oracle数据库的对象(2) 第8课 复杂一些的SQL语句 第9课 学写存储过程和函数 第10课...
oracle数据库的恢复 重要:进行以下操作之前,要确保数据库是归档模式、控制文件的自动备份选项打开,并且执行一次包括归档的完全数据库备份。 控制文件的恢复 控制文件是Oracle重要的物理文件,它记录了数据库的...
4.1 如何恢复被误删的数据文件 51 4.2 如何杀掉吊死session 51 4.3 如何修改字符集 51 4.4 如何追加表空间 51 4.5 如何加大表的maxextents值 52 4.6 如何查询无效对象 52 4.7 怎样分析SQL语句是否用到索引 52 4.8 ...