问题:Oracle中,如果不配置好合适的listener.ora文件,启动监听器时就会报错:The listener supports no services。该怎么配置呢?
回答:Oracle给了个监听器配置文件的例子,内容如下:
# LISTENER =
# (ADDRESS_LIST=
# (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
# (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))
# SID_LIST_LISTENER=
# (SID_LIST=
# (SID_DESC=
# #BEQUEATH CONFIG
# (GLOBAL_DBNAME=salesdb.mycompany)
# (SID_NAME=sid1)
# (ORACLE_HOME=/private/app/oracle/product/8.0.3)
# #PRESPAWN CONFIG
# (PRESPAWN_MAX=20)
# (PRESPAWN_LIST=
# (PRESPAWN_DESC=(PROTOCOL=tcp)(POOL_SIZE=2)(TIMEOUT=1))
# )
# )
# )
经试验,只要将其中的某些参数(比如PORT,GLOBAL_DBNAME,SID_NAME,ORACLE_HOME等)改为真实数据即可。当然,这些内容要置于listener.ora中,listener.ora放在/etc/下或者$ORACLE_HOME/network/admin/目录下。
回答:Oracle给了个监听器配置文件的例子,内容如下:
# LISTENER =
# (ADDRESS_LIST=
# (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
# (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))
# SID_LIST_LISTENER=
# (SID_LIST=
# (SID_DESC=
# #BEQUEATH CONFIG
# (GLOBAL_DBNAME=salesdb.mycompany)
# (SID_NAME=sid1)
# (ORACLE_HOME=/private/app/oracle/product/8.0.3)
# #PRESPAWN CONFIG
# (PRESPAWN_MAX=20)
# (PRESPAWN_LIST=
# (PRESPAWN_DESC=(PROTOCOL=tcp)(POOL_SIZE=2)(TIMEOUT=1))
# )
# )
# )
经试验,只要将其中的某些参数(比如PORT,GLOBAL_DBNAME,SID_NAME,ORACLE_HOME等)改为真实数据即可。当然,这些内容要置于listener.ora中,listener.ora放在/etc/下或者$ORACLE_HOME/network/admin/目录下。
1、在计算机 开始--->管理-->服务中没有看到 OracleOraHome92TNSListener 服务,但服务已经启动2、C:/>lsnrctl start 执行完后报open service error。然后在计算机 开始--->管理-->服务中看到 了 OracleOraHome92TNSListener 服务
3、运行regedit.exe启动注册表编辑器,在HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/下的Services和CurrentControlSet/Services下找到OracleOraHome92TNSListener项,在右边窗口按右键,新建/字符串,取名ImagePath。
双击新见的建,在“数值数据”项输入D:/oracle/ora92/bin/TNSLSNR.EXE(根据你自己的实际情况进行修改),确定完成。
再次在服务中双击打开OracleOraHome92TNSListener的服务看到其“可执行文件的路径”一栏已经显示了其正确的值。这时你可以启动监听了。4、C:>tnsping 数据库SID。看看tns服务没有起来。如果没有起来,用下面的命令
c:/>lsnrctl
lsnrctl>start把这个服务起动起来。
由于选择的是主机名,修改:
C:/oracle/ora90/network/admin/TNSNAMES.ORA
内容如下:
hostname =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1523))
)
(CONNECT_DATA =
(SID = db)
)
)
hostname 与 IP要对应
C:/oracle/ora90/network/admin/TNSNAMES.ORA
内容如下:
hostname =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1523))
)
(CONNECT_DATA =
(SID = db)
)
)
hostname 与 IP要对应