`
liufei.fir
  • 浏览: 685197 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

如何从完好的数据文件恢复oracle数据库

阅读更多
一。有数据文件、控制文件和日志文件的备份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数据库,并提供具体的操作步骤和注意事项。 #### 二、准备工作 恢复Oracle数据库前,需要进行一系列准备工作,确保后续操作能够顺利进行: 1. **重新创建初始化参数文件**...

    如何从完好的数据文件恢复oracle数据库.pdf

    ### 如何从完好的数据文件恢复Oracle数据库 #### 概述 本文档旨在提供一种有效的方法,用于在特定情况下从完好的数据文件恢复Oracle数据库。这种情况通常发生在服务器重装操作系统之后,原有的数据库环境遭到破坏,...

    Veeam 备份恢复oracle数据库详细配置文档

    本文档详细介绍了如何使用 Veeam 备份恢复 Oracle 数据库的配置过程,从环境准备到推送 Oracle RMAN Plugin,再到创建备份作业和运行备份作业,最后实现 Oracle 数据库的异机恢复。本文档旨在帮助读者快速掌握 Veeam...

    如何对Oracle数据库文件进行恢复与备份

    Oracle数据库的恢复与备份是数据库管理员的关键技能,确保在数据丢失或系统故障时能迅速恢复服务。本篇文章主要探讨了如何对Oracle数据库进行备份和恢复,以及涉及的主要工具和技术。 Oracle数据库采用多种机制来...

    Java导出Oracle数据库数据

    exp 命令用于将 Oracle 数据库数据导出到文件中,而 imp 命令用于将数据从文件中导入到 Oracle 数据库中。这些命令可以在命令行中使用,例如,在 Windows 中,可以打开命令行窗口,输入 exp 用户名/密码@标识 file=d...

    Oracle通过DBF恢复数据

    本文将详细介绍在没有备份的情况下,如何通过数据文件(DBF)来恢复Oracle数据库。 #### 二、准备工作 在开始恢复工作之前,我们需要做一些必要的准备工作: 1. **确认数据文件(DBF)存在**:首先确认原始数据库中的...

    Oracle必杀技物理删除数据文件恢复

    总的来说,Oracle物理删除数据文件恢复是一项技术性强、要求高的任务,但通过理解数据库的工作原理、熟悉Oracle的恢复命令,以及具备良好的问题解决能力,你完全可以应对这类挑战。在实践中不断积累经验,你将成为一...

    如何备份还原oracle数据库

    本文将根据给定的信息“如何备份还原oracle数据库”,详细介绍备份与恢复Oracle数据库的方法与步骤。 ### 一、Oracle数据库备份的重要性 在日常维护工作中,由于硬件故障、人为操作失误或系统崩溃等原因,可能会...

    Oracle11g 崩溃后-dbf数据库文件恢复

    接下来,ctl控制文件是Oracle数据库的重要组成部分,它包含了数据库的元数据信息,如数据文件的位置、数据库的名称以及创建日期等。在数据库恢复过程中,控制文件用于确定如何重新组织和恢复数据文件,以确保数据的...

    Oracle数据库体系结构( 中文详细版)

    1. **数据文件**(Data Files):数据文件是Oracle数据库存储实际数据的地方,包含了表、索引、视图等对象的数据。每个表空间由一个或多个数据文件组成,每个数据文件中包含一系列的数据块,这是Oracle数据存储的...

    Oracle数据库导入导出(备份与恢复).docx

    为了确保数据的安全和可靠性,Oracle数据库提供了导入导出命令,以便用户可以轻松地备份和恢复数据库。本文将详细介绍Oracle数据库的导入导出命令,包括exp和imp命令的使用方法和参数设置。 exp命令 exp命令是...

    ORACLE数据库的日志文件分析.pdf

    ORACLE数据库日志文件的管理过程主要包括日志文件的创建、写入、归档和恢复等几个方面。日志文件的创建是指在数据库创建时,定义日志文件的大小、数量和位置等参数。日志文件的写入是指数据库的所有操作都记录在日志...

    Oracle数据库文件进行恢复与备份

    ### Oracle数据库文件进行恢复与备份详解 在信息技术领域,Oracle数据库因其卓越的性能与稳定性而备受企业青睐。然而,无论数据库系统多么先进,都不可避免地面临数据丢失的风险,这可能是由于硬件故障、软件错误、...

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

    重做操作系统后oracle数据库的恢复 文件夹中文件说明: ora.reg oracle主要注册项的恢复参考文件 oraodbc.reg odbc驱动项的恢复参考文件 oraole1~4.reg ole 驱动项的恢复参考文件 恢复中重要操作说明: 1、恢复前提...

    Oracle数据库的数据文件规划、维护、恢复和初始参数的配置说明

    Oracle数据库的数据文件规划、维护、恢复和初始参数配置是数据库管理员日常工作中至关重要的部分。理解这些概念和操作对于确保数据库的高效运行和数据安全性至关重要。 1. Oracle架构 Oracle数据库由多个物理和逻辑...

    Oracle数据库备份恢复工具

    恢复功能则用于将数据库从备份中恢复,包括以下几个关键环节: 1. 选择恢复源:用户需要指定用于恢复的备份集或者备份文件。 2. 恢复模式:根据业务需求,可以选择完全恢复、不完全恢复或单个表空间恢复等模式。 3. ...

Global site tag (gtag.js) - Google Analytics