目标:
描述主机命名与本地服务名称解析之间的区别
使用 oracle Net Configuration Assistant 配置:
主机命名方法
本地命名方法
网络服务名
排除简单连接出现的故障
要点:
1.命名方法概览
客户机应用程序在试图连接数据库服务时,需要借助命名方法将连接标识符解析为连接描述符。
Oracle Net 提供了五种命名方法:
主机命名(Host Naming):使 TCP/IP 环境中的用户能够通过其现有名称解析服务来解析名称
本地命名:使用在每个客户机的 tnsnames.ora 文件中配置和存储的信息查找网络地址
目录命名:将数据库服务或网络服务名解析为连接描述符,该描述符存储在中央目录服务器中
Oracle Names:这是由 Oracle Names 服务器系统构成的 Oracle 目录服务,这些服务器可以为网络上的每个服务提供由名称到地址的解析
外部命名:使用受支持的第三方命名服务
对于只有几个数据库的小型组织来说,应使用主机命名将名称存储在现有名称解析服务中,也可使用本地命名将名称存储在客户机上的 tnsnames.ora 文件中。
对于有多个数据库的大型组织来说,应使用目录命名将名称存储在集中管理的符合 LDAP 的目录服务器中。
2.主机命名
在下列情况下,客户机可使用主机名来连接服务器:
使用 Oracle Net Services Client 软件连接 Oracle 数据库服务
使用 TCP/IP 协议建立客户机与服务器的连接
主机名通过 DNS 或本地的 /etc/hosts 文件等 IP 地址转换机制来解析
不使用 "连接管理器" (Connection Manager) 或安全选项等高级功能
主机命名方法具有下列优点:
需要的用户配置最少。用户只需提供主机名即可建立连接。
无需创建与维护本地名称配置文件 (tnsnames.ora)。
无需了解 Oracle Names 或 Oracle Internet Directory 管理过程。
主机命名在每个节点上只能标识一个 SID,而使用其它命名方法还可标识其它 SID。
如果在主机 (hosts) 文件中对多个全局名称设置了别名,让它们指向同一 IP 地址,这样即使这些数据库位于同一节点上,也可使用主机命名连接任意数据库。
客户端要求
如果使用主机命名方法,则必须在客户机上安装 TCP/IP 协议。此外,还必须安装 Oracle Net Services 和 TCP/IP 协议适配器。
主机名通过域名服务 (Domain Name Services, DNS)、网络信息服务 (Network Information Services, NIS) 或集中维护的 TCP/IP 主机文件等 IP 地址转换机制来解析。
使用主机命名方法之前,必须先对客户端进行如上配置。
服务器端要求
如果使用主机命名方法,除了客户机,还必须在服务器上也安装 TCP/IP 协议。此外,需要在服务器端安装 Oracle Net Services 和 TCP/IP 协议适配器。
在 Oracle8i 和 Oracle9i 中,只要满足以下条件之一就可向监听程序自动注册有关数据库的信息(包括全局数据库名称):
在端口 1521 上使用 TCP/IP 运行的名为 LISTENER 的缺省监听程序正在运行
已在初始化文件中设置了 LOCAL_LISTENER 参数
早期版本中是通过listener.ora文件向监听程序注册数据库信息的。必须静态配置SID_LIST_listener_name段以包含GLOBAL_DBNAME参数。
全局数据库名称由数据库名称和数据库域名构成。可以从初始化参数文件中的SERVICE_NAMES参数或DB_NAME和DB_DOMAIN参数来获取 GLOBAL_DBNAME 的值。
主机名必须与在客户机中指定的连接字符串匹配。其它信息还包括要连接的数据库的信息。
说明:
主机命名在客户端使用sqlnet.ora文件,在服务器端使用listener.ora文件。
sqlnet.ora中的NAMES.DIRECTORY_PATH参数确定的是连接时搜寻先后顺序。例如,NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME),
则先从本地TNSNAMES文件中去找连接时提供的描述符,如果没有发现匹配的,则再去oracle name server上找,
再没有则使用主机命名方法进行连接——将连接描述符(假定为test)当作一个主机去连接,去该主机上寻找GLOBAL_DBNAME=test的实例(实例名可能不是test)进行连接。
3.本地命名
本地命名的优点:
提供了一种相对简单明了的解析服务名地址的方法。
对于使用不同协议的各个网络,可跨网络解析服务名。
可使用图形配置工具轻松配置。
本地命名方法要求网络服务名存储在 tnsnames.ora 文件中。
本地命名在客户端使用tnsnames.ora和sqlnet.ora文件,在服务器端使用listener.ora文件。
在图形化界面中配置网络服务名:
service name为该数据库服务的service name,一般为db_name.db_domain
net服务名为按该服务在本地的标识符,相当于别名。
4.故障排除
ORA-12154:"TNS:无法解析服务名"
原因:Oracle Net Services 找不到在 tnsnames.ora 配置文件中指定的连接描述符。
操作:
检查 tnsnames.ora 文件是否存在以及是否可访问。
检查 tnsnames.ora 文件是否位于 TNS_ADMIN 环境变量指定的位置中。
在 tnsnames.ora 文件中,核实在连接字符串中指定的服务名已经映射为tnsnames.ora文件中的连接描述符。还要核实文件中没有语法错误。
确认不存在 sqlnet.ora 文件的重复副本。
如果正从登录对话框连接,则应核实连接服务名前没有 at 符号 (@)。
ORA-12198:"TNS:找不到指向目标的路径"和ORA-12203:"TNS:无法连接目标"
原因:客户机找不到所需数据库。
操作:
核实已正确输入要连接的数据库的服务名。
核实 TNSNAMES.ORA 文件的连接描述符中的服务名 ADDRESS 参数是正确的。
核实 TNSNAMES.ORA 文件已存储在 TNS_ADMIN 环境变量定义的目录中。
核实远程节点上的监听程序已经启动并正在运行。如果未启动,可使用 "监听程序控制实用程序"启动监听程序。
如果正从登录对话框连接,则应核实连接服务名前没有 at 符号 (@)。
ORA-12533:"TNS:ADDRESS 参数非法"
原因:tnsnames.ora 文件内指定的连接描述符的 ADDRESS 段中的协议特定参数不正确。
操作:
有关针对不同协议的关键字的详细信息,请参考适用于平台的 Oracle 操作系统文档。
ORA-12541:TNS:没有监听程序
原因:无法与远程节点上的监听程序取得联系。
操作:
核实远程节点上的监听程序已经启动。可使用 "监听程序控制实用程序" 的 STATUS 命令检查监听程序的状态。如果需要,还可使用 START 命令启动该监听程序。
关键词标签:Oracle
相关阅读
热门文章 Oracle中使用alter table来增加,删除,修改列oracle中使用SQL语句修改字段类型-oracle修使用低权限Oracle数据库账户得到管理员权限Oracle对user的访问控制
人气排行 ORACLE SQL 判断字符串是否为数字的语句Oracle中使用alter table来增加,删除,修改列的语法ORACLE和SQL语法区别归纳(1)oracle grant 授权语句如何加速Oracle大批量数据处理Oracle删除表的几种方法ORACLE修改IP地址后如何能够使用Oracle 10g创建表空间和用户并指定权限
查看所有0条评论>>