ORACLE中网络服务名和SID的区别

ORACLE中网络服务名和SID的区别,第1张

嘿嘿
那个兄弟的回答实在是理论上正确,但是太费解了。其实答案很简单的。在Orale里面
SID正确的理解是instance的名字,实质上和database的术语是不一样的。
服务是监听中客户端可以看到的名字。
没有什么特殊的情况下,服务名=SID。问题是有可能不一样的,有两种情况
情况1:数据库SID是一个,但是希望能有多个服务名,这个是为了多程序使用的,直接可以利用Oracle的某一个package追加一个服务的名字,这样,一个instance,就可以提供多个连接使用的服务名字。
情况2:数据库SID是多个,但是服务可能是一个,这个就是RAC结构,多物理服务器提供一个服务给程序的样子,只要有一个服务器OK,服务就可以不中断。
其实没必要现在就理解透彻,入门阶段认为是一样的即可。等明白了rac结构原理就明白了。
根本到底,就是RAC需要,前者不重要。

一、监听器(LISTENER)
监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。
二、本地服务名(Tnsname)
Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端连接请求进行合法检查,如果连接请求有效,则进行连接,否则拒绝该连接。
本地服务名是Oracle客户端网络配置的一种,另外还有Oracle名字服务器(Oracle Names Server)等。Oracle常用的客户端配置就是采用的本地服务名,本文中介绍的也主要是基于本地服务名的配置。
三、Oracle网络连接配置方法
配置Oracle服务器端与客户端都可以在其自带的图形化Oracle网络管理器(Oracle Net Manager)里完成(强烈建议在这个图形化的工具下完成Oracle服务端或客户端的配置)。在Windows下,点击“开始/程序/Oracle - OraHome92/Configuration and Migration Tools/Net Manager”启动Oracle网络管理器工具,在Linux/Unix下,利用netmgr命令来启动图形化Oracle网络管理器,如:$ netmgr。
四、客户端连接服务器端常见问题排除方法
要排除客户端与服务器端的连接问题,首先检查客户端配置是否正确(客户端配置必须与数据库服务器端监听配置一致),再根据错误提示解决。下面列出几种常见的连接问题:
1、 ORA-12541: TNS: 没有监听器:
显而易见,服务器端的监听器没有启动,另外检查客户端IP地址或端口填写是否正确。启动监听器:
$ lsnrctl start或C:\lsnrctl start。
2、 ORA-12500: TNS: 监听程序无法启动专用服务器进程:
对于Windows而言,没有启动Oracle实例服务。启动实例服务:C:\oradim –startup -sid myoracle。
3、 ORA-12535: TNS: *** 作超时:
出现这个问题的原因很多,但主要跟网络有关。解决这个问题,首先检查客户端与服务端的网络是否畅通,如果网络连通,则检查两端的防火墙是否阻挡了连接。
4、 ORA-12154: TNS: 无法处理服务名:
检查输入的服务名与配置的服务名是否一致。另外注意生成的本地服务名文件(Windows下如D:\oracle\ora92\network\admin \tnsnamesora,Linux/Unix下$ORACLE_HOME/network/admin/tnsnamesora)里每项服务的首行服务名称前不能有空格。
5、 ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME打开Net Manager,选中服务名称,检查服务标识栏里的服务名输入是否正确。该服务名必须与服务器端监听器配置的全局数据库名一致。
6、 Windows下启动监听服务提示找不到路径:
用命令或在服务窗口中启动监听提示找不到路径,或监听服务启动异常。打开注册表,进入HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/OracleOraHome92TNSListener项,查看ImagePath字符串项是否存在,如果没有,设定值为D:\oracle\ora92\BIN\TNSLSNR,不同的安装路径设定值做相应的更改。这种方法同样适用于Oracle实例服务,同上,找到如同HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/Oracle ServiceMYORACLE项,查看ImagePath字符串项是否存在,如果没有,则新建,设定值为d:\oracle\ora92\ binORACLEEXE MYORACLE。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13483581.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-16
下一篇 2023-08-16

发表评论

登录后才能评论

评论列表(0条)

保存