Oracle 11.2 Windows无法启动两行

时间:2017-11-08 03:07:26

标签: oracle

过去我曾经用这个小脚本启动我的Oracle 11.2 Windows:

NET START OracleServiceORCL
LSNRCTL START

一切正常。但现在我发现这失败了:

C:\bin>LSNRCTL START

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 08-NOV-2017 11:02:52

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

Starting tnslsnr: please wait...

TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
System parameter file is C:\admin\listener.ora
Log messages written to c:\alert\log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
Start Date                08-NOV-2017 11:02:55
Uptime                    0 days 0 hr. 0 min. 3 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   C:\admin\listener.ora
Listener Log File         c:\alert\log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
  Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

我必须像这样手动启动数据库:

C:\bin>sqlplus system/manager as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Wed Nov 8 11:04:59 2017

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

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 3407261696 bytes
Fixed Size                  2180504 bytes
Variable Size            2097154664 bytes
Database Buffers         1291845632 bytes
Redo Buffers               16080896 bytes
Database mounted.
Database opened.

有人可以告诉我可能导致脚本停止工作的原因吗?

1 个答案:

答案 0 :(得分:0)

我认为您的问题归因于DB_NAMEORACLE_SID的长度。

发出启动命令后,请查询以下内容:

select name from v$database;  -- gives you DB_NAME
select instance_name from v$instance;
  

DB_NAME的长度仅限于 8 个字符。

     

INSTANCE_NAME默认为ORACLE_SID。 (从DOS提示你可能会看到   ORACLE_SID发出echo %ORACLE_SID%命令,如果之前设置的话)   Oracle文档未指定INSTANCE_NAME长度的限制。   但是,如果您描述V$INSTANCE视图,则可以看到该列   INSTANCE_NAMEVARCHAR2(16),表示限制为16   字符。

     

由于INSTANCE_NAME默认为ORACLE_SID,因此您需要这样做   在创建数据库之前决定SID时要小心。 单身   实例数据库 ORACLE_SID的长度也应该 8 。所以   保持DB_NAMEINSTANCE_NAMEORACLE_SID的长度不是   超过 8 字符,我建议你保留三个名字   它们是相同的,不要忘记ORACLE_SID可以包含   只有字符a-z,A-Z和0-9。

似乎是INSTANCE_NAME&在您的情况下,DB_NAME CLRExtProc 的长度 10 。重新安装名称最多为 8 字符的数据库。