Oracle,安装完成后,出现的SID问题!?
Oracle数据库安装没有任何错误,请高人指点迷津,我不知道是因为什么,账号我填写好system密码是我自己设置的口令,其他的我选择也没有什么问题。请高人给我几个方案,说...
Oracle数据库安装没有任何错误,请高人指点迷津,我不知道是因为什么,账号我填写好system 密码是我自己设置的口令,其他的我选择也没有什么问题。请高人给我几个方案,说一下我是哪的问题,是后台没有开启服务,还是其他什么原因导致我的Oracle错误,监听程序当前无法识别连接描述符中所给的SID
请高人帮帮我,小弟不胜感激!!! 展开
请高人帮帮我,小弟不胜感激!!! 展开
4个回答
展开全部
我的ORA-12505 错误解决办法,请耐心的认真看完。
在Fedora下安装了Oracle 10gR2,安装完成之后,使用netca创建了监听,创建的时候没有使用默认的LISTENER和1521端口,而是使用了LISTENER_DELL和1522端口,终端下显示完成,然后在$ORACLE_HOME/network/admin/tnsnames.ora下增加一个tns别名。
DELL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = dell)
)
)
加好之后,如下登录
sqlplus /nolog
connect scott/tiger@dell
登录之后就报错了,ORA-12505,按说监听方面的错误还是很好解决的,结果检查了监听也是正常启动的,但就是无法按照@DELL来登录,将tnsnames.ora里面SID = dell 改成 SERVER_NAME = dell 还是一直报错ORA-12505, TNS:listener does not currently know of SID given in connect descriptor。
然后发现$ORACLE_HOME/network/admin/目录下没有sqlnet.ora文件,运行netca,设置命名方法,运行之后sqlnet.ora文件有了,内容如下:
more sqlnet.oraNAMES.DIRECTORY_PATH= (TNSNAMES)
再次尝试登录,发现还是同样的错误。于是突然想到Oracle肯定一直是以LISTENER这个并未启动的监听来来Oracle提供监听信息,而我并没有使用默认监听名称所以造成这个错误,于是给监听文件listener.ora添加SID信息。
LISTENER_DELL =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = avon)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
SID_LIST_LISTENER_DELL =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
添加SID信息 (见蓝色加粗字体)
SID_LIST_LISTENER_DELL =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = dell)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(SID_NAME = dell)
)
)
加好之后保存退出 :wq
进行测试,还是报错,发现tnsnames.ora 里面我设置的是SERVER_NAME,于是给改成SID = dell 再次测试
sqlplus /nolog
SQL> conn scott/tiger@dell
Connected.
OK,一切正常。
后记:在windows下也进行了同样的尝试,发现如果不使用LISTENER作为默认监听名称 端口不为1521的话,也会导致这个错误,而解决方法和上面一致。 不过并没有尝试名称为LISTENER但是端口不为1521的情况。
C:\Windows\system32>lsnrctl
LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 13-9月 -2010 23:2
6:34
Copyright (c) 1991, 2006, Oracle. All rights reserved.
欢迎来到LSNRCTL, 请键入"help"以获得信息。
LSNRCTL> status
正在连接到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
TNS-12541: TNS: 无监听程序
TNS-12560: TNS: 协议适配器错误
TNS-00511: 无监听程序
32-bit Windows Error: 61: Unknown error
LSNRCTL> set current_listener LISTENER_DEMO
目前的监听程序为 LISTENER_DEMO
LSNRCTL> status
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=scott-PC)(PORT=1522)))
LISTENER 的 STATUS
------------------------
别名 LISTENER_DEMO
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.3.0 - Produ
ction
启动日期 13-9月 -2010 23:17:13
正常运行时间 0 天 0 小时 9 分 41 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 D:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra
监听程序日志文件 D:\oracle\product\10.2.0\db_1\network\log\listener_dem
o.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=scott-PC)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
以上为出现ORA-12505错误时,监听的状态,
以下为修改正常,监听重启后的状态
LSNRCTL> set current_listener LISTENER_DEMO
目前的监听程序为 LISTENER_DEMO
LSNRCTL> stop
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=scott-PC)(PORT=1522)))
命令执行成功
LSNRCTL> start
启动tnslsnr: 请稍候...
TNSLSNR for 32-bit Windows: Version 10.2.0.3.0 - Production
系统参数文件为D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
写入D:\oracle\product\10.2.0\db_1\network\log\listener_demo.log的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=scott-PC)(PORT=1522)))
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=scott-PC)(PORT=1522)))
LISTENER 的 STATUS
------------------------
别名 LISTENER_DEMO
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.3.0 - Produ
ction
启动日期 13-9月 -2010 23:35:14
正常运行时间 0 天 0 小时 0 分 6 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 D:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra
监听程序日志文件 D:\oracle\product\10.2.0\db_1\network\log\listener_dem
o.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=scott-PC)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "demo" 包含 1 个例程。
例程 "demo", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
在Fedora下安装了Oracle 10gR2,安装完成之后,使用netca创建了监听,创建的时候没有使用默认的LISTENER和1521端口,而是使用了LISTENER_DELL和1522端口,终端下显示完成,然后在$ORACLE_HOME/network/admin/tnsnames.ora下增加一个tns别名。
DELL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = dell)
)
)
加好之后,如下登录
sqlplus /nolog
connect scott/tiger@dell
登录之后就报错了,ORA-12505,按说监听方面的错误还是很好解决的,结果检查了监听也是正常启动的,但就是无法按照@DELL来登录,将tnsnames.ora里面SID = dell 改成 SERVER_NAME = dell 还是一直报错ORA-12505, TNS:listener does not currently know of SID given in connect descriptor。
然后发现$ORACLE_HOME/network/admin/目录下没有sqlnet.ora文件,运行netca,设置命名方法,运行之后sqlnet.ora文件有了,内容如下:
more sqlnet.oraNAMES.DIRECTORY_PATH= (TNSNAMES)
再次尝试登录,发现还是同样的错误。于是突然想到Oracle肯定一直是以LISTENER这个并未启动的监听来来Oracle提供监听信息,而我并没有使用默认监听名称所以造成这个错误,于是给监听文件listener.ora添加SID信息。
LISTENER_DELL =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = avon)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
SID_LIST_LISTENER_DELL =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
添加SID信息 (见蓝色加粗字体)
SID_LIST_LISTENER_DELL =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = dell)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(SID_NAME = dell)
)
)
加好之后保存退出 :wq
进行测试,还是报错,发现tnsnames.ora 里面我设置的是SERVER_NAME,于是给改成SID = dell 再次测试
sqlplus /nolog
SQL> conn scott/tiger@dell
Connected.
OK,一切正常。
后记:在windows下也进行了同样的尝试,发现如果不使用LISTENER作为默认监听名称 端口不为1521的话,也会导致这个错误,而解决方法和上面一致。 不过并没有尝试名称为LISTENER但是端口不为1521的情况。
C:\Windows\system32>lsnrctl
LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 13-9月 -2010 23:2
6:34
Copyright (c) 1991, 2006, Oracle. All rights reserved.
欢迎来到LSNRCTL, 请键入"help"以获得信息。
LSNRCTL> status
正在连接到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
TNS-12541: TNS: 无监听程序
TNS-12560: TNS: 协议适配器错误
TNS-00511: 无监听程序
32-bit Windows Error: 61: Unknown error
LSNRCTL> set current_listener LISTENER_DEMO
目前的监听程序为 LISTENER_DEMO
LSNRCTL> status
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=scott-PC)(PORT=1522)))
LISTENER 的 STATUS
------------------------
别名 LISTENER_DEMO
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.3.0 - Produ
ction
启动日期 13-9月 -2010 23:17:13
正常运行时间 0 天 0 小时 9 分 41 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 D:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra
监听程序日志文件 D:\oracle\product\10.2.0\db_1\network\log\listener_dem
o.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=scott-PC)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
以上为出现ORA-12505错误时,监听的状态,
以下为修改正常,监听重启后的状态
LSNRCTL> set current_listener LISTENER_DEMO
目前的监听程序为 LISTENER_DEMO
LSNRCTL> stop
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=scott-PC)(PORT=1522)))
命令执行成功
LSNRCTL> start
启动tnslsnr: 请稍候...
TNSLSNR for 32-bit Windows: Version 10.2.0.3.0 - Production
系统参数文件为D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
写入D:\oracle\product\10.2.0\db_1\network\log\listener_demo.log的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=scott-PC)(PORT=1522)))
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=scott-PC)(PORT=1522)))
LISTENER 的 STATUS
------------------------
别名 LISTENER_DEMO
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.3.0 - Produ
ction
启动日期 13-9月 -2010 23:35:14
正常运行时间 0 天 0 小时 0 分 6 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 D:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra
监听程序日志文件 D:\oracle\product\10.2.0\db_1\network\log\listener_dem
o.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=scott-PC)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "demo" 包含 1 个例程。
例程 "demo", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
追问
我的Oracle不知道为什么时好时坏呢? 我的Oracle 有一些服务 我都选择了手动开启,然后我当我再开的时候 还是出现这个SID问题?!
网易云信
2023-12-06 广告
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同...
点击进入详情页
本回答由网易云信提供
展开全部
监听配置有问题,需重新配置一个监听
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题其实一目了然,就是监听识别不了tnsnames.ora当中你连接用到的那个tns别名。出现这个问题一般有以下几个原因:
1.其实有一定经验的都会发现,数据库和监听刚刚启动的时候,马上进行连接就会出现这个错误,这是由于进程启动还有一个间隔期,稍微等一会再连接就没有问题了。
2.在命令提示符下执行命令 lsnrctl status 查看监听的状态是否正常。
3.检查数据的sid和监听列出的是否一致。
4.检查listener.ora文件里面的内容是否有误。
以上 可以参考我的博客 http://space.itpub.net/12216142/viewspace-673732 希望可以解决掉你的疑问。
1.其实有一定经验的都会发现,数据库和监听刚刚启动的时候,马上进行连接就会出现这个错误,这是由于进程启动还有一个间隔期,稍微等一会再连接就没有问题了。
2.在命令提示符下执行命令 lsnrctl status 查看监听的状态是否正常。
3.检查数据的sid和监听列出的是否一致。
4.检查listener.ora文件里面的内容是否有误。
以上 可以参考我的博客 http://space.itpub.net/12216142/viewspace-673732 希望可以解决掉你的疑问。
追问
我的Oracle不知道为什么时好时坏呢? 我的Oracle 有一些服务 我都选择了手动开启,然后我当我再开的时候 还是出现这个SID问题?!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-10-27
展开全部
修改 tnsnames.ora
把servername 改成自己配置的。就OK
把servername 改成自己配置的。就OK
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询