Linux+Oracle环境且采用分布式部署,其中iMC NTA组件分布式部署在从服务器上:
主服务器(IP地址192.168.127.140)+本地Oracle数据库(网络服务名ORCL)
从服务器(IP地址192.168.127.155)+本地Oracle数据库(网络服务名ORCL1)
在主服务器上已经完成“网络行为分析”和“网络流量分析”的部署:
在从服务器上部署“网络行为分析服务”组件的时候异常终止,提示查看日志:
主服务器上能部署平台、网络行为分析、网络流量分析组件成功,说明主服务器连接本地的Oracle数据库是没有问题的,同时从服务器能安装智能iMC部署监控代理成功,说明从服务器连接本地的Oracle数据库应该也是没有问题的,问题可能出在主从服务器之间的连接或通信上。
查看/iMC/deploy下的dma.log日志,发现从服务器在和主服务器数据库连接的时候失败了,提示连接标识符无法解析的报错:
2016-08-15 11:23:07 [INFO ] [SwingWorker-pool-1-thread-9] [com.h3c.unba.UnbamDbParameter::localDBisUsed(283)] The local db ip 192.168.127.155 hasnot been used. So return false to begin installation.
2016-08-15 11:23:07 [INFO ] [SwingWorker-pool-1-thread-9] [com.h3c.unba.UnbamDbParameter::executeTask(105)] NTA query db type:Oracle
2016-08-15 11:23:07 [INFO ] [SwingWorker-pool-1-thread-9] [com.h3c.unba.UnbamDbParameter::getUnbaMasterDbInfo(222)] server addr file path: /opt/iMC/common/conf/server-addr.xml
2016-08-15 11:23:07 [INFO ] [SwingWorker-pool-1-thread-9] [com.h3c.unba.UnbamDbParameter::getUnbaMasterDbInfo(237)] Database address for unba master:ou, database type: Oracle, database url: jdbc:oracle:oci:@ORCL, driverClassName: oracle.jdbc.driver.OracleDriver
2016-08-15 11:23:07 [ERROR] [SwingWorker-pool-1-thread-9] [com.h3c.unba.UnbamDbParameter::initCon(209)] ORA-12154: TNS:could not resolve the connect identifier specified
检查从服务器的tnsnames.ora文件,发现只有本机数据库的网络服务名,没有连接主服务器数据库网络服务名的配置;同时主服务器上的tnsanames.ora文件中也没有连接从服务器数据库网络服务名的配置。
在数据库的连接方式上,Oracle于其他常用数据库比如SQL Server不同,其他数据库可以通过直接指定IP的方式连接,但是Oracle数据库则是通过配置网络服务名的方式来连接的,配置网络服务名的文件为tnanames.ora,文件的默认路径为%ORACLE_HOME%/network/bin。如果不配置的话就会出现“ORA-12514:TNS:无法解析指定的连接标识符”的报错。
手工修改主、从服务器上的tnsnames.ora文件,保证都有对方数据库的网络服务名配置,并且两台服务器上tnsnames.ora文件中相同网络服务名的配置是一样的。主机的tnsnames.ora文件内容如下:
从机的tnsnames.ora文件内容如下:
最终NTA组件部署成功,状态如下:
1、下面重点圈出常见场景下网络服务名的配置说明:
场景一:
有三台服务器,Server_A为iMC 主服务器,Server_B、Server_C为从服务器,三台服务器都使用本地数据库。Server_A需要配置指向本地数据库的网络服务名TNSNAME_A、Server_B需要配置指向本地数据库的网络服务名TNSNAME_B、Server_C需要配置指向本地数据库的网络服务名TNSNAME_C。同时,Server_A还需要配置TNSNAME_B和TNSNAME_C,Server_B还需要配置TNSNAME_A和TNSNAME_C,Server_C还需要配置TNSNAME_A和TNSNAME_B,否则iMC不能正常工作。安装iMC 时,各服务器使用指向本地数据库的网络服务名。各服务器上相同网络服务名的配置内容必须相同。
场景二:
有三台服务器,Server_A为iMC主服务器,Server_B、Server_C为从服务器,使用远程的数据库服务器DBServer_D。在Server_A、Server_B和Server_C上需要配置指向DBServer_D的网络服务名TNSNAME_D。在Server_A、Server_B和Server_C 安装iMC时,使用网络服务名TNSNAME_D连接数据库即可。同时在DBServer_D上也需要配置TNSNAME_D。
2、tnsping可以测试本机能否正常解析对应数据库的网络服务名,正常则返回OK,无法解析则类似如下报错,iMC不管是集中式部署还是主从分布式部署的环境,需要保证所有iMC服务器tnsping所有数据库的网络服务名都测试OK。
[root@ou ~]# tnsping orcl
TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 15-AUG-2016 11:44:26
Copyright (c) 1997, 2009, Oracle. All rights reserved.
Used parameter files:
/u01/app/oracle/product/11.1.0/db_1/network/admin/sqlnet.ora
TNS-03505: Failed to resolve name
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作