1

我想禁用我的 oracle 数据库中的存档日志。但是当我关闭并尝试挂载数据库时,我收到以下错误。

C:\>sqlplus scott/tiger@ORCL as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Sep 18 10:44:17 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor
SQL> startup mount
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist

任何人都可以帮我解决这个问题。

编辑1:- Listener.ora

# listener.ora Network Configuration File:    E:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
     (SID_NAME = PLSExtProc)
     (ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
     (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = INHOS.dg.server.com)(PORT = 1521))
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
  )

)

4

2 回答 2

6

不确定这是否是根本原因,但在关机后和启动前,请尝试退出并重新进入 SQL*Plus。

第一次编辑:好的,所以,两个不同的问题。当您尝试从您关闭的同一个 SQL*Plus 会话启动时,会发生“ hostdef 扩展不存在”错误。解决方案是在关机和启动之间退出并重新进入 SQL*Plus。

ORA-12514“侦听器当前不知道连接描述符中请求的服务”是由于尝试远程启动(您的 SQL*Plus 连接字符串scott/tiger@ORCL as sysdba指定@ORCL)实例,并且侦听器仅配置为动态服务注册。如果您的侦听器仅配置为动态服务注册,那么尝试远程启动实例会给您一个 ORA-12514。这有点像第 22 条规则。问题是,在实例启动之前,它无法向侦听器注册。如果它没有注册到监听器,你就不能启动它。有两种可能的解决方案:

  1. 您可以将静态侦听器配置添加到 listener.ora 文件并反弹侦听器。
  2. 您可以直接以Oracle软件所有者的身份登录到安装数据库的服务器,并设置ORACLE_HOMEORACLE_SID,然后连接为/ as sysdba

希望有帮助。

于 2012-09-18T06:17:05.967 回答
0

ORA-24324 可能意味着数据库根本没有启动,因此解决方法是首先启动数据库和侦听器(如果有)

于 2014-03-14T17:57:06.410 回答