我在Linux上安装了OracleDatabase11gR2以及,然后创建了orcl数据库。
我一直能够连接到我的数据库使用SQL*Plus或OEM。但是最近,我在输入命令lsnrctl status时遇到了一个问题,所以我无法连接到数据库。
我的listener.ora文件:
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/grid/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = pc.company.com)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /u01/app/oracle我的tnsnames.ora文件:
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = pc.company.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.example.com)
)
)在输入lsnrctl status时,我会得到以下内容:
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 21-JUL-2014 03:35:48
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 21-JUL-2014 03:25:58
Uptime 0 days 0 hr. 9 min. 50 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /u01/app/oracle/diag/tnslsnr/pc151/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=pc.company.com)(PORT=1521)))
The listener supports no services
The command completed successfully在输入sqlplus / as sysdba然后是startup时,我得到以下内容:
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+DATA/orcl/spfileorcl.ora'
ORA-17503: ksfdopn:2 Failed to open file +DATA/orcl/spfileorcl.ora
ORA-29701: unable to connect to Cluster Synchronization Servicesrvctl start database命令也无法启动数据库。
我的oratab文件如下:
#Backup file is /u01/app/oracle/product/11.2.0/dbhome_1/srvm/admin/oratab.bak.pc150 line added by Agent
#
# This file is used by ORACLE utilities. It is created by root.sh
# and updated by the Database Configuration Assistant when creating
# a database.
# A colon, ':', is used as the field terminator. A new line terminates
# the entry. Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
# $ORACLE_SID:$ORACLE_HOME:<N|Y>:
#
# The first and second fields are the system identifier and home
# directory of the database respectively. The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
+ASM:/u01/app/oracle/product/11.2.0/grid:N
orcl:/u01/app/oracle/product/11.2.0/dbhome_1:N # line added by Agent发布于 2014-07-21 11:13:09
数据库在启动时向侦听器注册其服务名称。如果它不能这样做,那么它会周期性地再次尝试-因此,如果侦听器在数据库之后启动,那么在识别服务之前可能会出现延迟。
但是,如果数据库没有运行,那么什么都不会注册该服务,因此您不应该期望侦听器知道它-- lsnrctl status或lsnrctl services不会报告尚未注册的服务。
您可以在没有侦听器的情况下启动数据库;从Oracle帐户以及使用您的ORACLE_HOME、ORACLE_SID和PATH集,您可以:
sqlplus /nolog然后从SQL*Plus提示符:
connect / as sysdba
startup或者通过网格基础设施,从网格帐户中使用 command
srvctl start database -d db_unique_name [-o start_options] [-n node_name]您可能需要查看数据库是否设置为在您的oratab文件中自动启动,并且取决于您使用的是什么,它是否应该自动启动。如果您期望它正在运行,而它没有运行,或者您试图启动它,但它不会出现,那么这是一个完全不同的场景--您需要查看错误消息、警报日志、可能的跟踪文件等等,以确定它为什么不会启动,如果您无法确定,可能会在数据库管理员上询问,而不是在堆栈溢出上。
如果数据库看不到+DATA,那么ASM可能不会运行;您可以使用see how to start that here;或者使用srvctl start asm。如文档所述,请确保您是在网格主页而不是数据库主页上执行该操作。
发布于 2018-08-25 05:09:05
对于侦听器不支持任何服务,可以使用以下命令在spfile中设置local_listener参数,使用侦听器端口和服务器ip地址
更改系统集local_listener='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.101)(PORT=1520)))‘sid='testdb’scope=spfile;
发布于 2018-08-13 17:03:12
您需要将ORACLE_HOME定义添加到listener.ora文件中。现在它还没有向任何ORACLE_HOME注册。
样本listener.ora
abc =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = abc.kma.com)(PORT = 1521))
)
)
SID_LIST_abc =
(SID_LIST =
(SID_DESC =
(ORACLE_HOME= /abc/DbTier/11.2.0)
(SID_NAME = abc)
)
)https://stackoverflow.com/questions/24857858
复制相似问题