2台windows2000server ,安装了2台oracle 10.1数据库,serviceName 一样tnsnames.ora 如下
108 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.108)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = db01)
    )
  )
  
99 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.99)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = db01)
    )
  )
  
taf =
  (DESCRIPTION =
    (LOAD_BALANCE = ON)
    (FAILOVER = ON)
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.108)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.99)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = db01)
      (
        FAILOVER_MODE = (TYPE = )
                        (METHOD = BASIC)
                        (RETRIES = 30)
                        (DELAY = 5)
      )
    )
  )2台数据库都存在相同的用户user1,密码也相同。user1的schema里面都有相同结构的表t1。一台数据库里有2条记录,另一台有3条数据。用sqlplus 能够连到2台数据库,并能成功检索 sqlplus user1/aaa@108  sqlplus user1/aaa@99实验taf,连入108,检索数据成功,不断开连接。新建一个dos窗口,用shutdown abort关闭108上的数据库,然后再用原来的窗口select,连接没有切换到99机器上,一段时间后报ora-03113错误,很显然是没有做taf切换。请问我哪里做错了?还是服务器需要再起一个进程?

解决方案 »

  1.   

    taf =
      (DESCRIPTION =
        (LOAD_BALANCE = ON)
        (FAILOVER = ON)
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.108)(PORT = 1521))
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.99)(PORT = 1521))
        (CONNECT_DATA =
          (SERVICE_NAME = db01)
          (
            FAILOVER_MODE = (TYPE = SELECT )
                            (METHOD = BASIC)
                            (RETRIES = 30)
                            (DELAY = 5)
          )
        )
      )抱歉,taf配置串写错了,现在应该是这样子,还是不行
      

  2.   

    晕了,我去掉了load_balance ,然后在failover_mode里面加了 (backup=99) ,结果就切过去的那如果我要用load_balance 怎么办啊?