为什么在连接数据库,sqlplus的时候,总是提示没有侦听器?

chimu 2003-08-20 01:45:14
我没有配置侦听器
9i装好了就可以用了
可是有的时候新建了一个数据库,在连接的时候就出现了这个毛病!
...全文
452 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
chimu 2003-08-25
  • 打赏
  • 举报
回复
还有,在新建一个资料档案库的时候,也提示没有侦听器呢
chimu 2003-08-25
  • 打赏
  • 举报
回复
想知道,是在服务器配置侦听器呢,还是服务器和客户端都需要配置,而且这两个侦听器要匹配?

急!
tiangou 2003-08-21
  • 打赏
  • 举报
回复
在8i中,监听器起不来有时和listener.ora中的中文乱码有关系
akinggom 2003-08-21
  • 打赏
  • 举报
回复
请再次查证侦听服务已经启动
同时用tnsping去ping一下的数据库
同时,查看配置的时候端口是否正确。
saviourlee 2003-08-21
  • 打赏
  • 举报
回复

我原来也是。
但是配置好一个OMS再来打开OEM就可以了。
chimu 2003-08-21
  • 打赏
  • 举报
回复
昨天不论是客户端登陆,还是在服务器登陆OEM和OMS都提示

今天早上,在服务器上登陆,没有异常

但是在客户端登陆oem的时候,连接数据库的时候,出现提示窗口:
“ORA-12541:TNS:没有监听器“

我是是从新配置了一个SID,而且侦听器的服务已经启动了。


hong_flood 2003-08-21
  • 打赏
  • 举报
回复
首先判断当前SID的服务是否启动,
如果已经启动并存在多个SID,可采用楼上的方法登录,
即:connect username/password@servername.
xiaohuajx 2003-08-21
  • 打赏
  • 举报
回复
你是不是从新配置了一个SID啊?
在输入用户名和密码的时候加上所配置的本地网络服务名;
username/password@servername
Drate 2003-08-21
  • 打赏
  • 举报
回复
Oracle Net8 网络配置和联接
1)服务器端配置Listener:
添加Listeners , 设置选择 DataBase Name方式,填写2个参数 { HomeDir = /ora/ , SID =ora8 }
2)启动Net8服务lsnrctl start
3)停止Net8服务lsnrctl stop
4)参数文件摘要
5)客户端配置:添加 Net Service Name ,同Windows客户端一样格式
1)服务器端配置Listener:
执行/ora/bin/netasst
填写描述->首选Oracle服务:
。PROTOCOL = TCP
。HOST = 172.17.2.22
。PORT = 1521
查看生成的 Net8 Server配置文件:listener.ora
[oracle@lin admin]$ more listener.ora
# LISTENER.ORA Configuration File:/ora/network/admin/listener.ora
# Generated by Oracle Net8 Assistant

LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.2.22)(PORT = 1521))
(PROTOCOL_STACK =
(PRESENTATION = TTC)
(SESSION = NS)
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(ORACLE_HOME = /ora)
(SID_NAME = ora8)
)
)
### 如果指明监听服务的"全局名",则有类似这一行:(GLOBAL_DBNAME = ora8)
2)启动Net8服务lsnrctl start
首先你可以这样取得帮助:
[oracle@lin /ora]$ lsnrctl
LSNRCTL> help
然后开始启动:start
[oracle@lin bin]$ lsnrctl start
联接时,机器会逐步告诉你正在启动…,正在联接…,已经联接的状态,最后他说成功啦! 下面是一些简要信息:
LSNRCTL for Linux: Version 8.1.5.0.0 - Production on 19-NOV-99 22:02:54
(c) Copyright 1998 Oracle Corporation. All rights reserved.
Starting /ora/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 8.1.5.0.0 - Production
System parameter file is /ora/network/admin/listener.ora
Log messages written to /ora/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.2.22)(PORT=1521))
(PROTOCOL_STACK=(PRESENTATION=TTC)(SESSION=NS)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.2.22)(PORT=1521))
(PROTOCOL_STACK=(PRESENTATION=TTC)(SESSION=NS)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 8.1.5.0.0 - Production
Start Date 19-NOV-99 22:02:54
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security OFF
SNMP OFF
Listener Parameter File /ora/network/admin/listener.ora
Listener Log File /ora/network/log/listener.log
Services Summary...
ora8 has 1 service handler(s)
The command completed successfully
以上提示说,1个服务被处理,命令成功完成。
3)停止Net8服务lsnrctl stop
最简单的方法是 [oracle@lin /ora]$ lsnrctl stop
有时侯,进程出了差错,tnslsnr没有响应,像WindowsNT常犯的毛病一 样,
这里有一个强硬的手段:先找出它的进程号,然后 kill掉!
[oracle@lin /ora]$ ps -ef|grep tns
oracle 1331 1 0 15:51 ? 00:00:00 /ora/bin/tnslsnr LISTENER -inher

或使用更少的参数也能找到tnslsnr:
[oracle@lin /ora]$ ps -e
PID TTY TIME CMD
1331 ? 00:00:00 tnslsnr

现在杀死PID = 1331的进程:
[oracle@lin /ora]$ kill 1331
LSNRCTL象 SVRMGRL一样,是一个服务器管理程序,有不少参数,或者说是 子程序,带星号的是一个外部程序。

[oracle@lin bin]$ lsnrctl stop
LSNRCTL for Linux: Version 8.1.5.0.0 - Production on 19-NOV-99 22:02:50
(c) Copyright 1998 Oracle Corporation. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.2.22)(PORT=1521))
(PROTOCOL_STACK=(PRESENTATION=TTC)(SESSION=NS)))
The command completed successfully


Listeners =DataBase Name = Global DB Name =ora8, HomeDir = /ora/ ,SID =ora8

[oracle@lin oracle]$ cd /ora/net*/ad*
[oracle@lin admin]$ ls
listener.ora namesini.sql samples sqlnet.ora
namesdrp.sql namesupg.sql sqlnet.fdf tnsnames.ora

下面是在 Windwos NT/98 上远程控制 TNSLSNR 的情形(图略)。
4)参数文件摘要
[oracle@lin admin]$ more /u01/app/oracle/admin/ora8/pfile/initora8.ora
db_name = ora8
instance_name = ora8 ## "事例名"是关键字
service_names = ora8

control_files = ("/u01/app/oracle/oradata/ora8/control01.ctl", "/u01/app/oracle/oradata/ora8/control02.ctl")
db_block_buffers = 8192
shared_pool_size = 4194304
log_checkpoint_interval = 10000
log_checkpoint_timeout = 1800
processes = 50
log_buffer = 163840

log_archive_start = true
log_archive_dest_1 = "location=/u01/app/oracle/admin/ora8/arch"
log_archive_format = %t_%s.dbf
# 切记打开回滚段
rollback_segments = (r01, r02, r03, r04)

# global_names = false ### 监听服务无需指明"全局名"
# oracle_trace_enable = true
# define directories to store trace and alert files
background_dump_dest = /u01/app/oracle/admin/ora8/bdump
core_dump_dest = /u01/app/oracle/admin/ora8/cdump
user_dump_dest = /u01/app/oracle/admin/ora8/udump
db_block_size = 2048
remote_login_passwordfile = exclusive
os_authent_prefix = ""
compatible = "8.1.5" ## 也可以兼容 "8.0.5"
5)客户端网络配置
[oracle@lin admin]$ more tnsnames.ora
# TNSNAMES.ORA Configuration File:/ora/network/admin/tnsnames.ora
# Generated by Oracle Net8 Assistant

使用net8助理,结果自动保存在 tnsnames.ora 中,
[oracle@lin /ora]$ netass* 添加Service: 名称ora8,参数如下:

PROTOCOL=TCP HOST=172.17.2.22 PORT=1521 Oracle_SID=ora8
机器解释成一个Oracle服务器地址包:
( DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.2.22)(PORT=1521))
(PROTOCOL_STACK=(PRESENTATION=TTC)(SESSION=NS))
)
一般说来,客户端采用Windows9x/NT/2000,因为这里软件开发容易,程序员和工具较为普及。
Windows 客户端网络配置与此类似,其内容见于: \OraNT\net80\Admin\tnsname.ora
ORA8.WORLD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.2.22)(PORT = 1521))
(CONNECT_DATA = (SID = ora8))
)

-------------------------------------------
在Windows2000(beta3专业版)中安装Personal Oeacle8.05时,监听服务安装失败,
只要理解以上oracle结构原理,可以手工复制Net8文件,修改配置:
copy CD-ROM\.\NT_x86\server\lsnrctl80.exe,tnslsnr80.exe,tnsping80.exe C:\orant\bin
copy CD-ROM\.\listener.ora C:\orant\net80\admin
我不久前有这么一次经历。
 
Drate 2003-08-21
  • 打赏
  • 举报
回复
Oracle Net8 网络配置和联接
1)服务器端配置Listener:
添加Listeners , 设置选择 DataBase Name方式,填写2个参数 { HomeDir = /ora/ , SID =ora8 }
2)启动Net8服务lsnrctl start
3)停止Net8服务lsnrctl stop
4)参数文件摘要
5)客户端配置:添加 Net Service Name ,同Windows客户端一样格式
1)服务器端配置Listener:
执行/ora/bin/netasst
填写描述->首选Oracle服务:
。PROTOCOL = TCP
。HOST = 172.17.2.22
。PORT = 1521
查看生成的 Net8 Server配置文件:listener.ora
[oracle@lin admin]$ more listener.ora
# LISTENER.ORA Configuration File:/ora/network/admin/listener.ora
# Generated by Oracle Net8 Assistant

LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.2.22)(PORT = 1521))
(PROTOCOL_STACK =
(PRESENTATION = TTC)
(SESSION = NS)
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(ORACLE_HOME = /ora)
(SID_NAME = ora8)
)
)
### 如果指明监听服务的"全局名",则有类似这一行:(GLOBAL_DBNAME = ora8)
2)启动Net8服务lsnrctl start
首先你可以这样取得帮助:
[oracle@lin /ora]$ lsnrctl
LSNRCTL> help
然后开始启动:start
[oracle@lin bin]$ lsnrctl start
联接时,机器会逐步告诉你正在启动…,正在联接…,已经联接的状态,最后他说成功啦! 下面是一些简要信息:
LSNRCTL for Linux: Version 8.1.5.0.0 - Production on 19-NOV-99 22:02:54
(c) Copyright 1998 Oracle Corporation. All rights reserved.
Starting /ora/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 8.1.5.0.0 - Production
System parameter file is /ora/network/admin/listener.ora
Log messages written to /ora/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.2.22)(PORT=1521))
(PROTOCOL_STACK=(PRESENTATION=TTC)(SESSION=NS)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.2.22)(PORT=1521))
(PROTOCOL_STACK=(PRESENTATION=TTC)(SESSION=NS)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 8.1.5.0.0 - Production
Start Date 19-NOV-99 22:02:54
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security OFF
SNMP OFF
Listener Parameter File /ora/network/admin/listener.ora
Listener Log File /ora/network/log/listener.log
Services Summary...
ora8 has 1 service handler(s)
The command completed successfully
以上提示说,1个服务被处理,命令成功完成。
3)停止Net8服务lsnrctl stop
最简单的方法是 [oracle@lin /ora]$ lsnrctl stop
有时侯,进程出了差错,tnslsnr没有响应,像WindowsNT常犯的毛病一 样,
这里有一个强硬的手段:先找出它的进程号,然后 kill掉!
[oracle@lin /ora]$ ps -ef|grep tns
oracle 1331 1 0 15:51 ? 00:00:00 /ora/bin/tnslsnr LISTENER -inher

或使用更少的参数也能找到tnslsnr:
[oracle@lin /ora]$ ps -e
PID TTY TIME CMD
1331 ? 00:00:00 tnslsnr

现在杀死PID = 1331的进程:
[oracle@lin /ora]$ kill 1331
LSNRCTL象 SVRMGRL一样,是一个服务器管理程序,有不少参数,或者说是 子程序,带星号的是一个外部程序。

[oracle@lin bin]$ lsnrctl stop
LSNRCTL for Linux: Version 8.1.5.0.0 - Production on 19-NOV-99 22:02:50
(c) Copyright 1998 Oracle Corporation. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.2.22)(PORT=1521))
(PROTOCOL_STACK=(PRESENTATION=TTC)(SESSION=NS)))
The command completed successfully


Listeners =DataBase Name = Global DB Name =ora8, HomeDir = /ora/ ,SID =ora8

[oracle@lin oracle]$ cd /ora/net*/ad*
[oracle@lin admin]$ ls
listener.ora namesini.sql samples sqlnet.ora
namesdrp.sql namesupg.sql sqlnet.fdf tnsnames.ora

下面是在 Windwos NT/98 上远程控制 TNSLSNR 的情形(图略)。
4)参数文件摘要
[oracle@lin admin]$ more /u01/app/oracle/admin/ora8/pfile/initora8.ora
db_name = ora8
instance_name = ora8 ## "事例名"是关键字
service_names = ora8

control_files = ("/u01/app/oracle/oradata/ora8/control01.ctl", "/u01/app/oracle/oradata/ora8/control02.ctl")
db_block_buffers = 8192
shared_pool_size = 4194304
log_checkpoint_interval = 10000
log_checkpoint_timeout = 1800
processes = 50
log_buffer = 163840

log_archive_start = true
log_archive_dest_1 = "location=/u01/app/oracle/admin/ora8/arch"
log_archive_format = %t_%s.dbf
# 切记打开回滚段
rollback_segments = (r01, r02, r03, r04)

# global_names = false ### 监听服务无需指明"全局名"
# oracle_trace_enable = true
# define directories to store trace and alert files
background_dump_dest = /u01/app/oracle/admin/ora8/bdump
core_dump_dest = /u01/app/oracle/admin/ora8/cdump
user_dump_dest = /u01/app/oracle/admin/ora8/udump
db_block_size = 2048
remote_login_passwordfile = exclusive
os_authent_prefix = ""
compatible = "8.1.5" ## 也可以兼容 "8.0.5"
5)客户端网络配置
[oracle@lin admin]$ more tnsnames.ora
# TNSNAMES.ORA Configuration File:/ora/network/admin/tnsnames.ora
# Generated by Oracle Net8 Assistant

使用net8助理,结果自动保存在 tnsnames.ora 中,
[oracle@lin /ora]$ netass* 添加Service: 名称ora8,参数如下:

PROTOCOL=TCP HOST=172.17.2.22 PORT=1521 Oracle_SID=ora8
机器解释成一个Oracle服务器地址包:
( DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.2.22)(PORT=1521))
(PROTOCOL_STACK=(PRESENTATION=TTC)(SESSION=NS))
)
一般说来,客户端采用Windows9x/NT/2000,因为这里软件开发容易,程序员和工具较为普及。
Windows 客户端网络配置与此类似,其内容见于: \OraNT\net80\Admin\tnsname.ora
ORA8.WORLD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.2.22)(PORT = 1521))
(CONNECT_DATA = (SID = ora8))
)

-------------------------------------------
在Windows2000(beta3专业版)中安装Personal Oeacle8.05时,监听服务安装失败,
只要理解以上oracle结构原理,可以手工复制Net8文件,修改配置:
copy CD-ROM\.\NT_x86\server\lsnrctl80.exe,tnslsnr80.exe,tnsping80.exe C:\orant\bin
copy CD-ROM\.\listener.ora C:\orant\net80\admin
我不久前有这么一次经历。
 
chimu 2003-08-21
  • 打赏
  • 举报
回复

TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 21-8月 -2
003 13:56:41

Copyright (c) 1997 Oracle Corporation. All rights reserved.

已使用的参数文件:
f:\oracle\ora92\network\admin\sqlnet.ora

已使用 HOSTNAME 适配器来解析别名
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SID=*)(SERVICE_NAME=10.88.1.1)
)(ADDRESS=(PROTOCOL=TCP)(HOST=10.88.1.1)(PORT=1521)))
TNS-12541: TNS:无监听器

我用的命令是tnsping 10.88.1.1,返回的结果如上,无监听器是什么意思?
minkoming 2003-08-20
  • 打赏
  • 举报
回复
配置listener.ora文件。需要监听器
LGQDUCKY 2003-08-20
  • 打赏
  • 举报
回复
你需要配置,配置侦听服务,就没有问题了。
xyzhh 2003-08-20
  • 打赏
  • 举报
回复
说得不大明白?你是在本地机上连的么?侦听启动了么?
jiezhi 2003-08-20
  • 打赏
  • 举报
回复
你需要為該新建立的數據庫服務配置本地網絡服務。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧