如何从完好的数据文件恢复oracle数据库Oracle认证考试

文章作者 100test 发表时间 2009:04:09 23:22:09
来源 100Test.Com百考试题网


  一。有数据文件、控制文件和日志文件的备份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

相关文章


解决MySQL数据库死掉以及拒绝服务的方法Oracle认证考试
讲解修改Sybase数据库sa密码的实用方法Oracle认证考试
如何从完好的数据文件恢复oracle数据库Oracle认证考试
Oracle中sys_connect_by_path函数用法Oracle认证考试
Oracle认证:OracleDBA职责及日常工作分析Java认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛