|
|
在客户端的tnsnames.ora配置文件中添加以下行: rac=(DESCRIPTION= (ADDRESS_LIST= (LOAD_BALANCE=ON) (FAILOVER=ON) (ADDRESS=(PROTOCOL=tcp)(HOST=your_ip_or_name)(PORT=1522)) (ADDRESS=(PROTOCOL=tcp)(HOST=your_ip_or_name)(PORT=1523)) (ADDRESS=(PROTOCOL=tcp)(HOST=your_ip_or_name)(PORT=1521))) (CONNECT_DATA= (FAILOVER_MODE= (TYPE=select)(METHOD=basic)) (SERVICE_NAME=rac.test.com))) 然后就可以在客户端使用rac连接串来连接数据库了. 连接时,因为设置了load_balance=on,因此会随机选择一个来连接.查看连接到哪个实例: SQL> select instance_name from v$instance; INSTANCE_NAME ---------------- rac3 如果在服务器端将rac3停掉,可以用shutdown immediate;或者shutdown abort; 再运行此语句,则: SQL> / INSTANCE_NAME ---------------- rac1 客户端在监测到instance down了以后,重新连接,这次连到了rac1. 注意: 在非RAC环境下,如果用户设置了failover=on,则instance down时,用户未commit的数据自动回滚了.在RAC下,需要用户执行rollback. 如果不rollback 而执行SQL语句,则oracle会报错: ERROR at line 1: ORA-25402: transaction must roll back 到现在,单节点上多instance的RAC就配置好了. 希望能对大家有所帮助.
|
|