ITPub博客

首页 > 数据库 > Oracle > oracle 10g taf分享

oracle 10g taf分享

原创 Oracle 作者:wanglinghua0907 时间:2023-12-31 14:50:37 0 删除 编辑

10g taf 分享


介绍:

没有配置 TAF的情况下,客户端连接数据库,一个节点宕机,客户端需要重新连接,才能正常连接。

通过 TAF去连接数据库时,当一个节点宕机时,无需重连,会自动切换到另外一个节点,但是前提条件是没有未提交的事务,若有未提交的事务,则会报错 ORA-25405: transaction status unknown,重新连接即可。

 

三种方法: Client-Side Connect time Failover、 Client-Side TAF、 Service-Side TAF

 

Service-Side TAF 配置

创建taf服务

srvctl add service -d test -s taf -r "test1,test2" -P BASIC

-s 服务名

-r 需要创建服务的节点的instance_name

-P taf的状态,BASIC为基础状态

-d unique name

 

开启taf服务

srvctl start service -d test -s taf

 

服务ora.TEST.taf.TEST1.srv

 


查看状态

srvctl status service -d TEST -s taf

 

查看taf服务的service_id

SQL> select name,service_id from dba_services where name='taf';

 

NAME                  SERVICE_ID

-------------------------------------- ----------

taf                           7

 

查看taf服务的信息

SQL> select name, failover_method, failover_type, failover_retries,goal, clb_goal,aq_ha_notifications  from dba_services where service_id = 7;

 

NAME            METHOD      TYPE        RETRIES GOAL       CLB_GOAL AQNOT

--------------- ----------- ---------- -------- ---------- -------- -----

taf                                                        LONG     NO

 

修改参数taf服务的参数

begin

dbms_service.modify_service(service_name        => 'taf',

                  goal                => DBMS_SERVICE.goal_throughput,

                  aq_ha_notifications => TRUE,

                  failover_method     => DBMS_SERVICE.failover_method_basic,

                  failover_type       => DBMS_SERVICE.failover_type_select,

                  failover_retries    => 10,

                  failover_delay      => 1,

                  clb_goal            => DBMS_SERVICE.clb_goal_long);

end;

/

 

检查配置情况

再次查看taf服务参数

SQL> select name, failover_method, failover_type, failover_retries,goal, clb_goal,aq_ha_notifications  from dba_services where service_id = 7;

 

NAME            METHOD      TYPE        RETRIES GOAL       CLB_GOAL AQNOT

--------------- ----------- ---------- -------- ---------- -------- -----

taf             BASIC       SELECT           10 THROUGHPUT LONG     YES

 

 

method:basic/none

type:select/session/none

failover_retries为failover重试次数

goal: throughput (数据吞吐量)/ service_time (服务时间) / none

clb_goal: long (会将服务均分给每个 rac instance )

 

 

修改tnsname

vi  tnsnames.ora 
TAF =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip.yang.com)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip.yang.com)(PORT = 1521))
    (LOAD_BALANCE = yes)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = taf)
    )
)

 

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69980685/viewspace-3002272/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE、sql server、oceanbase数据库专家,拥有7年以上的大型数据库运维经验,主方向oracle,擅长故障排除、诊断,大体量(TB)迁移,异常故障修复等。拥有丰富主导大型项目经验。服务行业包括:运营商、银行、金融业、政府单位、医疗、制造业、高校等等。

注册时间:2020-07-31

  • 博文量
    116
  • 访问量
    88789