ORACLE 11g 断电重启报错的相关修复

原文地址:http://wenku.baidu.com/link?url=R18_yjkSrbb2czn8JYqAsFMcgiMpYjZ27B6BVKO3SCp-z_JCViYpd-jxvEyvQH5DRPYIKTp0YBq_LuWbcFQs4LIgBQ6UDBZKtk4BXi9tSkK


ORACLE 11g 断电重启报错的相关修复

 

由于服务器突然断电,造成oracle连接的时候报错。

用客户端连接的时候报的错误信息如下:

ORA-01033:ORACLE initialization or shutdown in progress

做了一下操作

SQL> shutdown abort

ORACLE 例程已经关闭。

SQL> startup mount

ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

这个时候请大家把listener.ora里面的上方加上,具体的原因请大家看后面文章的解释。

SID_LIST_LISTENER =

 (SID_LIST =

 

  (SID_DESC =

   (GLOBAL_DBNAME = JCZ)

   (ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)  

   (SID_NAME = JCZ)

    )

 )

 

继续向下操作

执行 startup命令是报:

ORA-01589:要打开数据库则必须使用 RESETLOGS NORESETLOGS 选项

 

解决如下:

 

SQL> shutdown abort

ORACLE 例程已经关闭。

SQL> startup

ORACLE 例程已经启动。

 

Total System Global Area  711430144 bytes

Fixed Size                  1374584 bytes

Variable Size             444597896 bytes

Database Buffers          260046848 bytes

Redo Buffers                5410816 bytes

数据库装载完毕。

ORA-01589: 要打开数据库则必须使用 RESETLOGS或 NORESETLOGS 选项

 

 

SQL> alter database open resetlogs;

alter database open resetlogs

*

第 1 行出现错误:

ORA-01152: 文件 1 没有从过旧的备份中还原

ORA-01110: 数据文件 1:'C:\APP\ADMINISTRATOR\ORADATA\JCZ\SYSTEM01.DBF'

 

 

SQL> recover database using backup controlfile;

ORA-00279: 更改 24153794 (在 07/20/201209:28:29 生成) 对于线程 1 是必需的

ORA-00289: 建议:

C:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\JCZ\ARCHIVELOG\2012_07_23\O1_MF_1_939_%

 

U_.ARC

ORA-00280: 更改 24153794 (用于线程 1) 在序列 #939 中

 

 

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

C:\app\Administrator\oradata\jcz\REDO03.LOG

已应用的日志。

完成介质恢复。

SQL> alert database open resetlogs;

SP2-0734: 未知的命令开头 "alertdata..." - 忽略了剩余的行。

SQL> alter database open resetlogs;

 

数据库已更改。

 

SQL>

 

 

参考的部分文章:

Oracle9以上如果报错ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

近日在配置Oracle 10G的流复制环境时,遇到一个问题,关闭数据库(shutdown immediate)后,通过SQL Plus连接数据库:conn sys/his@orc0 as sysdba,出现如下错误:

    ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

通过重启服务的方式启动数据库,再次连接却能成功登录,也就是说在关闭数据库状态下无法连接服务器。

    开始以为是系统环境变量Oracle_SID的配置问题,因为机器有多个实例,一阵折腾后还是不能连接。后来查资料得知:

    Oracle9i以后,后台进程PMON自动在监听器中注册在系统参数SERVICE_NAMES中定义的服务名,SERVICE_NAMES默认为DB_NAME+DOMAIN_NAME。监听配置文件listener.ora中可以不必指定监听的服务名。但是,当数据库处于关闭状态下PMON进程没有启动,也就不会自动注册监听的实例名,所以使用sqlplus sys/his@orc0 as sysdba 会出现ORA-12514错误。

如果在listener.ora文件中指定监听的实例名,则即使数据库处于关闭状态,仍然可以连接。

listener.ora

SID_LIST_LISTENER =

 (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME =G:\oracle\product\10.2.0\db_1)

      (PROGRAM = extproc)

    )

   (SID_DESC =

   (GLOBAL_DBNAME = ORCL)

   (ORACLE_HOME = G:\oracle\product\10.2.0\db_1)  

   (SID_NAME = ORCL)

   )

 )

LISTENER =

 (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL =TCP)(HOST = zyk)(PORT = 1521))

    )

 )

 

以上粗体部件为增加的内容,修改后重启监听服务后即可。

附:通过在lsnrctl中输入set display verbose,然后再通过命令service查看,服务状态为READY表示PMON自动注册的服务名,而UNKNOWN则表示该服务是手工在LISTENER.ORA中配置的数据库服务。

服务器莫名其妙的报这个错,之前一直正常,从google获取解决方案,解决之,记录如下:

 1. Open the""<OracleHome>/network/admin/listener.ora" file in thehost,and you will see:
   SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
       (SID_NAME = PLSExtProc)
       (ORACLE_HOME =D:\oracle\product\10.2.0\db_1)
       (PROGRAM = extproc)
     )
   )
  2. Add the following lines after the 7th line in the above
            (SID_DESC =
       (GLOBAL_DBNAME = ORACLE)
       (ORACLE_HOME =D:\oracle\product\10.2.0\db_1)  
       (SID_NAME = ORACLE)
      )
  3. At last the content of the file become to the following section:
 SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
       (SID_NAME = PLSExtProc)
       (ORACLE_HOME =D:\oracle\product\10.2.0\db_1)
       (PROGRAM = extproc)
     )
     (SID_DESC =
       (GLOBAL_DBNAME = ORACLE)
       (ORACLE_HOME =D:\oracle\product\10.2.0\db_1)  
       (SID_NAME = ORACLE)
      )
   )
  4. Save the file and restart the TNSListener service in the host. That'sOK!

 

 

ORA-01589错误的解决方法

 (2011-12-06 15:47:08)

转载

标签: 

杂谈

分类: ORACLE

SQL*Plus:Release 9.2.0.1.0 - Production on 星期四 4 17 15:01:262008
Copyright (c) 1982, 2002, Oracle Corporation.   Allrights reserved.
SQL> conn / as sysdba;
已连接。
SQL> shutdown immediate;
ORA-01109: database
未打开

已经卸载数据库。
ORACLE
例程已经关闭。
SQL> startup
ORACLE
例程已经启动。
Total System Global Area   135338868 bytes
FixedSize                   453492bytes
VariableSize             109051904bytes
DatabaseBuffers           25165824bytes
RedoBuffers                 667648bytes
数据库装载完毕。
ORA-01589:
要打开数据库则必须使用 RESETLOGS NORESETLOGS 选项

SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR
位于第 1 :
ORA-01113:
文件 1 需要介质恢复
ORA-01110:
数据文件 1:'D:/ORACLE/ORADATA/ORCL/SYSTEM01.DBF'

SQL> recover database using backup controlfile;
ORA-00279:
更改 1254931418 ( 06/09/2011 01:12:51 生成) 对于线程 1 是必需的
ORA-00289:
建议:D:/ORACLE/ORA92/RDBMS/ARC00001.001
ORA-00280:
更改 1254931418 对于线程 1 是按序列 # 1 进行的


指定日志: {<RET>=suggested | filename |AUTO | CANCEL}
d:/oracle/oradata/eygle/redo01.log
ORA-00308:
无法打开存档日志'd:/oracle/oradata/eygle/redo01.log'
ORA-27041:
无法打开文件
OSD-04002: Ξ???
???
O/S-Error: (OS 3)
???????????????


指定日志: {<RET>=suggested | filename |AUTO | CANCEL}
d:/oracle/oradata/orcl/redo01.log
ORA-00339:
归档日志未包含任何重做
ORA-00334:
归档日志:'D:/ORACLE/ORADATA/ORCL/REDO01.LOG'


SQL> recover database using backup controlfile;
ORA-00279:
更改 1254931418 ( 06/09/2011 01:12:51 生成) 对于线程 1 是必需的
ORA-00289:
建议:D:/ORACLE/ORA92/RDBMS/ARC00001.001
ORA-00280:
更改 1254931418 对于线程 1 是按序列 # 1 进行的


指定日志: {<RET>=suggested | filename |AUTO | CANCEL}
d:/oracle/oradata/orcl/redo02.log
ORA-00339:
归档日志未包含任何重做
ORA-00334:
归档日志:'D:/ORACLE/ORADATA/ORCL/REDO02.LOG'


SQL> recover database using backup controlfile;
ORA-00279:
更改 1254931418 ( 06/09/2011 01:12:51 生成) 对于线程 1 是必需的
ORA-00289:
建议:D:/ORACLE/ORA92/RDBMS/ARC00001.001
ORA-00280:
更改 1254931418 对于线程 1 是按序列 # 1 进行的


指定日志: {<RET>=suggested | filename |AUTO | CANCEL}
d:/oracle/oradata/orcl/redo03.log
已应用的日志。
完成介质恢复。
SQL> alter database open resetlogs;

数据库已更改。

 


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值