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/pwd@192.168.40.133:1521/mydb as sysdba
ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
21 个解决方案
#1
能够直接ping 通192.168.40.133吗 ?
#2
可以通
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=64
Ping 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: 监听程序当前无法识别连接描述符中请求的服务
这说明能连接到监听。而且我只要报实例启动,就可以正常连接了。
#3
试试这个帖子。
http://www.cnblogs.com/xufung/archive/2008/08/05/693731.html
http://www.cnblogs.com/xufung/archive/2008/08/05/693731.html
#4
按照这些参数试试:
静态注册实例:
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)
) )
静态注册实例:
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)
) )
#5
试了,还是不行,你们的这样配置就可以了吗?
不能用静态监听真是太麻烦了,每次要重启数据库的话,还得到服务器去操作。
不能用静态监听真是太麻烦了,每次要重启数据库的话,还得到服务器去操作。
#6
修改成
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.
我测试过可以的。
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.
我测试过可以的。
#7
这就怪了,你是不是连同数据库实例启动了,我是说在不启动实例的情况下,不能远程登录,启动了实例也是可以的。
我再试试吧。
我再试试吧。
#8
呵呵,测试还是要重启服务的。
#9
我以前在windows下配置都是没有问题的,这次数据库改在linux下就遇到麻烦了。
#10
或者试试不重启数据库,而运行ALTER SYSTEM REGISTER,看看会怎么样?
#11
我修改listener.ora之后,每次都是重启监听了。
#12
我测试过了,需要重启oracle 服务,才能登陆的。
#13
不是不重启数据库,是数据库实例根本就不启动。
配置静态监听,不就是要在数据库实例不启动的状态下连接的吗?
这样可以在远程关闭和启动数据库实例,而不用每次都到服务器上去操作。
配置静态监听,不就是要在数据库实例不启动的状态下连接的吗?
这样可以在远程关闭和启动数据库实例,而不用每次都到服务器上去操作。
#14
配置静态监听,不就是要在数据库实例不启动的状态下连接的吗?
不可能吧。数据库实例都没有启动怎么可能连接呢?
不可能吧。数据库实例都没有启动怎么可能连接呢?
#15
是呀,静态监听不就是提供这个功能的吗?
原来oracle装在windows下都是这样操作的,我都是在我的电脑上远程登录远程oracle,然后执行关闭,启动的操作的。
>sql /nolog
sql> conn sys/pwd@192.168.40.133:1521/mydb as sysdba
sql> shutdown immediate
sql> startup
这样都是没问题的。可以把oracle关闭再启动。
原来oracle装在windows下都是这样操作的,我都是在我的电脑上远程登录远程oracle,然后执行关闭,启动的操作的。
>sql /nolog
sql> conn sys/pwd@192.168.40.133:1521/mydb as sysdba
sql> shutdown immediate
sql> startup
这样都是没问题的。可以把oracle关闭再启动。
#16
是sqlplus /nolog
#17
配置为动态监听也可以是可以的呀。
监听和远程启动关闭数据库没有关系。
#18
如果真是这样的话,那我就要重新学习这部分的东西了。
难道我以前都错了?
在windows下刚装上oracle的时候默认是动态监听,那时我在自己电脑上把oracle停掉,就启动不了了,得跑到服务器那去重新启动数据库,
后来配了个静态的,才解决了问题。
难道我以前都错了?
在windows下刚装上oracle的时候默认是动态监听,那时我在自己电脑上把oracle停掉,就启动不了了,得跑到服务器那去重新启动数据库,
后来配了个静态的,才解决了问题。
#19
如何配置监听,可以远程启动关闭数据库?
简单一句话:服务器与开发室是隔开的,我不能每次重启数据库都要到放服务器的那个屋,太麻烦了。
简单一句话:服务器与开发室是隔开的,我不能每次重启数据库都要到放服务器的那个屋,太麻烦了。
#20
只需静态注册你的实例即可。
#21
能说详细点吗?
我在windows下注册一个静态监听就可以了,可是在linux下怎么也弄不出来。
我按照上面帖子的配置,问题出在哪里,能帮忙看看吗?
#1
能够直接ping 通192.168.40.133吗 ?
#2
可以通
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=64
Ping 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: 监听程序当前无法识别连接描述符中请求的服务
这说明能连接到监听。而且我只要报实例启动,就可以正常连接了。
#3
试试这个帖子。
http://www.cnblogs.com/xufung/archive/2008/08/05/693731.html
http://www.cnblogs.com/xufung/archive/2008/08/05/693731.html
#4
按照这些参数试试:
静态注册实例:
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)
) )
静态注册实例:
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)
) )
#5
试了,还是不行,你们的这样配置就可以了吗?
不能用静态监听真是太麻烦了,每次要重启数据库的话,还得到服务器去操作。
不能用静态监听真是太麻烦了,每次要重启数据库的话,还得到服务器去操作。
#6
修改成
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.
我测试过可以的。
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.
我测试过可以的。
#7
这就怪了,你是不是连同数据库实例启动了,我是说在不启动实例的情况下,不能远程登录,启动了实例也是可以的。
我再试试吧。
我再试试吧。
#8
呵呵,测试还是要重启服务的。
#9
我以前在windows下配置都是没有问题的,这次数据库改在linux下就遇到麻烦了。
#10
或者试试不重启数据库,而运行ALTER SYSTEM REGISTER,看看会怎么样?
#11
我修改listener.ora之后,每次都是重启监听了。
#12
我测试过了,需要重启oracle 服务,才能登陆的。
#13
不是不重启数据库,是数据库实例根本就不启动。
配置静态监听,不就是要在数据库实例不启动的状态下连接的吗?
这样可以在远程关闭和启动数据库实例,而不用每次都到服务器上去操作。
配置静态监听,不就是要在数据库实例不启动的状态下连接的吗?
这样可以在远程关闭和启动数据库实例,而不用每次都到服务器上去操作。
#14
配置静态监听,不就是要在数据库实例不启动的状态下连接的吗?
不可能吧。数据库实例都没有启动怎么可能连接呢?
不可能吧。数据库实例都没有启动怎么可能连接呢?
#15
是呀,静态监听不就是提供这个功能的吗?
原来oracle装在windows下都是这样操作的,我都是在我的电脑上远程登录远程oracle,然后执行关闭,启动的操作的。
>sql /nolog
sql> conn sys/pwd@192.168.40.133:1521/mydb as sysdba
sql> shutdown immediate
sql> startup
这样都是没问题的。可以把oracle关闭再启动。
原来oracle装在windows下都是这样操作的,我都是在我的电脑上远程登录远程oracle,然后执行关闭,启动的操作的。
>sql /nolog
sql> conn sys/pwd@192.168.40.133:1521/mydb as sysdba
sql> shutdown immediate
sql> startup
这样都是没问题的。可以把oracle关闭再启动。
#16
是sqlplus /nolog
#17
配置为动态监听也可以是可以的呀。
监听和远程启动关闭数据库没有关系。
#18
如果真是这样的话,那我就要重新学习这部分的东西了。
难道我以前都错了?
在windows下刚装上oracle的时候默认是动态监听,那时我在自己电脑上把oracle停掉,就启动不了了,得跑到服务器那去重新启动数据库,
后来配了个静态的,才解决了问题。
难道我以前都错了?
在windows下刚装上oracle的时候默认是动态监听,那时我在自己电脑上把oracle停掉,就启动不了了,得跑到服务器那去重新启动数据库,
后来配了个静态的,才解决了问题。
#19
如何配置监听,可以远程启动关闭数据库?
简单一句话:服务器与开发室是隔开的,我不能每次重启数据库都要到放服务器的那个屋,太麻烦了。
简单一句话:服务器与开发室是隔开的,我不能每次重启数据库都要到放服务器的那个屋,太麻烦了。
#20
只需静态注册你的实例即可。
#21
能说详细点吗?
我在windows下注册一个静态监听就可以了,可是在linux下怎么也弄不出来。
我按照上面帖子的配置,问题出在哪里,能帮忙看看吗?