在使用Oracle 11G Rac后,一般我们会采用scan ip 作为应用或者tnsnames.ora作为service name.
假设我有一套Oracle RAC,它的database name为test,在配置tnsnames.ora的时候要注意需要采用正常的配置方式:
TEST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = scan-ip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = test) ) ) |
遇到过的原因:
1)当数据库和你的客户端或者应用服务器在同一网段,且对应防火墙都关闭的前提下,应该能正常访问。反之,如果应用服务器及客户端和数据库服务器不在
同一网段但存在防火墙,必须要把VIP和SCAN IPDE 1521端口全部开放才行。否则会出现报错:
ORA-12154: TNS:could not resolve the connect identifier |
2)来自MOS
Client is able to resolve all Fully Qualified Domain Name (FQDN) SCAN and VIP name but not short ones(without domain name) as its in different domain;
even though FQDN names were specified during Grid Infrastructure setup,due to bug 9150053 by default DBCA set database parameter local_listener to short node VIP name
由于如果客户端使用FQDN时,尽量使用全名,或者把数据库实例参数local_listener内的host改为vip的IP地址即可。
3)中间件或者其他客户端在配置链接串的时候,需要指定全链接串:
如果数据库的local_listener指定的是简单的scan-ip:1521就会无法连接db,出现ORA-12541报错。 |