对于dataguard,通常在APP应用程序端配置双IP,以避免在数据库切换过程中APP应用程序端发生任何更改。 但是,在ORACLE 9i中,这样配置的tnsname存在以下问题。 如果第一个IP需要保持停机时间(即第一个IP不存在),故障恢复器需要很长时间才能连接到第二个IP并创建新连接。 此问题还可能导致生产库事故。
在oracle 9i中,进行以下测试:
引用:
db_tns=
(描述=
(failover=on )
(地址_列表=
(地址=(协议=TCP );主机=192.168.168.100;端口=1521 ) )--第一个IP不存在
(地址=(协议=TCP ) )主机=192.168.168.120 )端口=1521 )--此IP此时为主库
)
(CONNECT_DATA=
(服务器=dedicated )
(SID=test )
)
)
db _ STB :/u01/Oracle/product/9.2/network/admin $ tnsping db _ tns
tspingutilityforibm/aixriscsystem/60003360版本9.2.0.6.0-production on 04-aug-20081:5336002
版权所有(c ) 1997 Oracle corporation.all权限保留。
用户参数文件:
/u01/Oracle/product/9.2/network/admin/sqlnet.ora
usedtnsnamesadaptertoresolvethealias
attemptingtocontact (描述=(failover=on ) address _ list=(address=) protocol=TCP ) host=192.168.)
ok (76380毫秒)--这里一共花了76秒
在10g中,如果配置了双IP,并且没有第一个IP,则tnsping的速度也快了很多,在这次测试中,只用了3秒就进入了第二个IP。
引用:
db_tns=
(描述=
(failover=on )
(地址_列表=
(地址=(协议=TCP );主机=192.168.168.100;端口=1521 ) )--第一个IP不存在
(地址=(协议=TCP );主机=192.168.168.120 );端口=1521 ) )
)
(CONNECT_DATA=
(服务器=dedicated )
(SID=test )
)
)
[ Oracle @ dbtest admin ] $ tnsping db _ tns
tnspingutilityforlinux :版本10.2.0.4.0-production on 04-aug-20081336036336023
版权所有(c ) 1997,2007,Oracle.all权限保留。
用户参数文件:
usedtnsnamesadaptertoresolvethealias
attemptingtocontact (描述=(failover=on ) address _ list=(address=) protocol=TCP ) host=192.168.)
确定(3010毫秒) )。
ORACLE似乎还在继续改进。