监听服务启动及数据文件恢复oracle数据库

最近遭遇了 oralce 监听服务启动了 又自行关闭的 悲惨经历
我把我的过程和大家分享一下!
1)排查原因
   程序员是懒惰的,我始终都希望能够成功启动监听服务,但是就是事与愿违
   有一下方式可能不能成功启动监听
    1.端口占用,oralce 要用到1521,2100..等在cmd下 netstate -ao;看是否有oralce
     的端口被占用;
    2.就是监听文件%oraclebase%\network\admin\listener.ora 是否被修改过,或者是
     修改过本机的用户名
    3.在database的sid 是否修改过在注册表下查找,或者通过命令修改
    4.cmd lsnrctl  status 看哈具体的原因,百度 google 下 看能不能解决,这里我不祥说
     具体原因具体分析。
     有一种情况我说哈
     在运行处执行REGEDIT进入注册表到
     HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome92TNSListener
     发现ImagePath关键值没有了,增加他,选择可扩充字符串值,编辑字符串的
     数值数据为:e:\Oracle\Ora92\BIN\TNSLSNR;
2)
   如果不是以上还是无法启动,我们只好用很笨的方法了(我当时是重装的系统,安装数据  库 的)
  重装的oracle和以前损坏的数据库是一模一样的结构。(路径,机器名,数据库名)
   1。停止oracle当前服务,删除掉新建数据库的所有数据文件、控制文件和日志文件
     
     Cmd>sqlplus /nolog ;
     Sql>conn as sysdba
     用户名:system
     密码:(此处密码为新创建数据库的密码)
     Sql>shutdown immediate ;
     Copy原数据库的数据文件、控制文件和日志文件到对应目录下;
     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
  是不是恢复好了啊!ok
还有种办发说 安装好数据库后 用
   startup pfile=参数文件名
   带初始化参数文件的启动方式
   先读取参数文件,再按参数文件中的设置启动数据库
   例:startup pfile=E:\Oracle\admin\oradb\pfile\init.ora
我没有试过,哈哈
希望以上对你有帮助,goodluck!

你可能感兴趣的:(数据结构,oracle,sql,百度,Google)