ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Windows系统崩溃后恢复Oracle 9i数据库

Windows系统崩溃后恢复Oracle 9i数据库

原创 Linux操作系统 作者:gjm008 时间:2009-01-19 15:18:55 0 删除 编辑
用户的系统崩溃,这次的环境是Oracle 9i,操作系统是windows2003。数据库的数据都存在,需要恢复。

  具体做法和恢复10G有些类似:

  1.将以前的目录改名,重新按照以前的结构安装数据库软件。

  2.将以前数据文件中的 d:\oracle\oradata 和d:\oracle\admin 文件拷贝到对应新建的目录下。

  3.将参数文件,listener.ora,密码文件拷贝到对应的目录下。

  4.启动数据库:


  C:\Documents and Settings\Administrator>sqlplus /nolog
  SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 10月 11 22:36:27 2008
  Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
  SQL> conn / as sysdba
  ERROR:
  ORA-12560: TNS: 协议适配器错误

  5。配置察看监听:


  C:\Documents and Settings\Administrator>lsnrctl
  LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 11-10月-2008 22:
  :04
  Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
  欢迎来到LSNRCTL,请键入"help"以获得信息。
  LSNRCTL> status
  正在连接到 (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
  TNS-12541: TNS:无监听器
  TNS: 协议适配器错误
  TNS-00511: 无监听器
  32-bit Windows Error: 61: Unknown errorITPUB个人空间h)Im[u
  LSNRCTL> start
  启动tnslsnr:请稍候...
  Failed to open service , error 1060.
  TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production
  写入e:\oracle\ora92\network\log\listener.log的日志信息
  监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xjserver31)(PORT=1521)))
  正在连接到 (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
  LISTENER 的 STATUS
  ------------------------
  别名 LISTENER
  版本 TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - ProducITPUB个人空间i bf5kxpW D!t
  tion
  启动日期 11-10月-2008 22:38:11
  正常运行时间 0 天 0 小时 0 分 0 秒
  跟踪级别 off
  安全性 OFF
  SNMP OFF

监听器日志文件 e:\oracle\ora92\network\log\listener.log

  8L)f,\3A.f0监听端点概要...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xjserver31)(PORT=1521)))

  监听器不支持服务

  命令执行成功

  状态是不正确的,说明没有监听程序。拷贝监听的listen.ora后,

  LSNRCTL> start

  启动tnslsnr:请稍候...

  TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production

  系统参数文件为e:\oracle\ora92\network\admin\listener.ora

  写入e:\oracle\ora92\network\log\listener.log的日志信息

  监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))

  监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xjserver31)(PORT=1521)))

  正在连接到 (ADDRESS=(PROTOCOL=tcp)(PORT=1521))

  LISTENER 的 STATUS

  别名 LISTENER

  版本 TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Produc

  tion

  启动日期 11-10月-2008 22:40:52

  正常运行时间 0 天 0 小时 0 分 4 秒

  跟踪级别 off

  安全性 OFF

  SNMP OFF

  监听器参数文件 e:\oracle\ora92\network\admin\listener.ora

  监听器日志文件 e:\oracle\ora92\network\log\listener.log

 监听端点概要

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xjserver31)(PORT=1521)))

  服务摘要

  服务 "PLSExtProc" 包含 1 个例程。

  例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...

  服务 "orc1" 包含 1 个例程。

  例程 "orc1", 状态 UNKNOWN, 包含此服务的 1 个处理程序...

  命令执行成功

  6.启动数据库仍报错:

  SQL> conn / as sysdba

  ERROR:

  TNS: 协议适配器错误

  解决ORA-12560: TNS: 协议适配器错误,与大家共享

  今天遭遇ORA-12560: TNS: 协议适配器错误的问题,经过一番努力问题已经解决,与大家共享。

  造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个:

  1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,

  启动oraclehome92TNSlistener服务。

  2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务

  面板,启动oracleserviceXXXX,XXXX就是你的database SID.

  3.注册表问题。regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SI

  D设置为XXXX,XXXX就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建

  ,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下

  输set oracle_sid=XXXX,XXXX就是你的database SID.

  经过以上步骤,就可以解决问题。

  最后发现是没有指定oracle_sid造成,指定后数据库正常启动。

  7.本次恢复遇到3个不太顺利的事情:

  1.没有指定ORACLE的ORACLE_SID,9I需要手工指定。

  2.崩溃前数据库的安装文件是在E盘下,崩溃后重新安装的数据库在D盘(由于光驱的缘故),结果第一次安装不成功。这个问题的解决可以找到d:/oracle/ora92/db_1/network/admin/listener.ora 中察看具体的路径。

  3.曾报“areasqueries”的错误,结果查明是数据库不支持中文路径。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16486600/viewspace-541421/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-12-25

  • 博文量
    41
  • 访问量
    187370