配置成静态监听,在不启动实例的情况下,为什么远程无法登录呢?
listener.ora配置如下:
LISTENER =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
(ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=mydb)
(SID_NAME=mydb)
(ORACLE_HOME=/oracle/product/10.2.0/db_1)
(PRESPAWN_MAX=20)
(PRESPAWN_LIST=
(PRESPAWN_DESC=(PROTOCOL=tcp)(POOL_SIZE=2)(TIMEOUT=1))
)
)
)
在另一台机子上登录:
SQL> conn sys/[email protected]:1521/mydb as sysdba
ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
listener.ora配置如下:
LISTENER =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
(ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=mydb)
(SID_NAME=mydb)
(ORACLE_HOME=/oracle/product/10.2.0/db_1)
(PRESPAWN_MAX=20)
(PRESPAWN_LIST=
(PRESPAWN_DESC=(PROTOCOL=tcp)(POOL_SIZE=2)(TIMEOUT=1))
)
)
)
在另一台机子上登录:
SQL> conn sys/[email protected]:1521/mydb as sysdba
ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
可以通
Pinging 192.168.40.133 with 32 bytes of data:Reply from 192.168.40.133: bytes=32 time=-6ms TTL=64
Reply from 192.168.40.133: bytes=32 time<1ms TTL=64
Reply from 192.168.40.133: bytes=32 time=-6ms TTL=64
Reply from 192.168.40.133: bytes=32 time=-6ms TTL=64Ping statistics for 192.168.40.133:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = -6ms, Average = 1073741819ms
连接没有问题的,你看报的错:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
这说明能连接到监听。而且我只要报实例启动,就可以正常连接了。
http://www.cnblogs.com/xufung/archive/2008/08/05/693731.html
静态注册实例:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u0/oracle/product)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME =/u0/oracle/product)
(SID_NAME = orcl)
) )
LISTENER =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
(ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=mydb)
(SID_NAME=mydb)
(ORACLE_HOME=/oracle/product/10.2.0/db_1)
)
)
试试。然后在服务器端 lsnrctl stop
lsnrctl start.我测试过可以的。
原来oracle装在windows下都是这样操作的,我都是在我的电脑上远程登录远程oracle,然后执行关闭,启动的操作的。
>sql /nolog
sql> conn sys/[email protected]:1521/mydb as sysdba
sql> shutdown immediate
sql> startup
这样都是没问题的。可以把oracle关闭再启动。
难道我以前都错了?
在windows下刚装上oracle的时候默认是动态监听,那时我在自己电脑上把oracle停掉,就启动不了了,得跑到服务器那去重新启动数据库,
后来配了个静态的,才解决了问题。
我在windows下注册一个静态监听就可以了,可是在linux下怎么也弄不出来。
我按照上面帖子的配置,问题出在哪里,能帮忙看看吗?