RAC的client端tnsnames.ora配置什么情况下可以用IP,什么情况下需要用一个name,然后在hosts文件中注明name与ip的关系?
例如:
test1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 1.1.1.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 1.1.1.2)(PORT = 1521))
(LOAD_BALANCE = no)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = basic)
(RETRIES = 180)
(DELAY = 5)
)
)
)
test2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 1.1.1.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 1.1.1.2)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac_vip1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac_vip2)(PORT = 1521))
(LOAD_BALANCE = yes)
)
(CONNECT_DATA =
(SERVICE_NAME = test)
(failover_mode =
(type = select)
(method = basic)
(retries = 180)
(delay = 5)
)
)
)
test3 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac_vip1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac_vip2)(PORT = 1521))
(LOAD_BALANCE = yes)
)
(CONNECT_DATA =
(SERVICE_NAME = test)
(failover_mode =
(type = select)
(method = basic)
(retries = 180)
(delay = 5)
)
)
)hosts文件中:
rac_vip1 1.1.1.1
rac_vip2 1.1.1.2以上三种的适应场景是什么呢?谢谢!
另外,
test =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 1.1.1.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 1.1.1.2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test)
)
)
这种格式是说不用LB,只用Failover?
例如:
test1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 1.1.1.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 1.1.1.2)(PORT = 1521))
(LOAD_BALANCE = no)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = basic)
(RETRIES = 180)
(DELAY = 5)
)
)
)
test2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 1.1.1.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 1.1.1.2)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac_vip1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac_vip2)(PORT = 1521))
(LOAD_BALANCE = yes)
)
(CONNECT_DATA =
(SERVICE_NAME = test)
(failover_mode =
(type = select)
(method = basic)
(retries = 180)
(delay = 5)
)
)
)
test3 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac_vip1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac_vip2)(PORT = 1521))
(LOAD_BALANCE = yes)
)
(CONNECT_DATA =
(SERVICE_NAME = test)
(failover_mode =
(type = select)
(method = basic)
(retries = 180)
(delay = 5)
)
)
)hosts文件中:
rac_vip1 1.1.1.1
rac_vip2 1.1.1.2以上三种的适应场景是什么呢?谢谢!
另外,
test =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 1.1.1.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 1.1.1.2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test)
)
)
这种格式是说不用LB,只用Failover?
写真实IP的话,会造成单点故障的时候,客户端断掉,失去RAC的意义
x.x.x.1 db1-vip
x.x.x.2 db2-vip
但仍有sqlplus出现TNS超时无法连接的问题,是还需要在host文件中:
x.x.x.3 db1
x.x.x.4 db2
其中x.x.x.3和x.x.x.4是机器真实IP,db1和db2是机器名。那对于有时可以连接的,是因为从客户端例如访问到x.x.x.1这个机器的listener,如果负载均衡判断可以有这台机器处理请求,那么x.x.x.1会自动将请求转到x.x.x.3处理,此时就不受x.x.x.3未在客户端注册的影响,所以可以连接?谢谢您。