ITPub博客

首页 > 数据库 > Oracle > 【ASK_ORACLE】手动配置DataGuard的自动化Client Failover(故障转移)的service

【ASK_ORACLE】手动配置DataGuard的自动化Client Failover(故障转移)的service

原创 Oracle 作者:Attack_on_Jager 时间:2021-06-24 16:28:15 0 删除 编辑

说明

本文方法适用于使用不了命令“SRVCTL”创建service的情况:

1. 11gR2之前的数据库版本配置DG的自动化Client Failover的service

2. 任何仅安装在文件系统上的DG,数据库版本不限


配置步骤

1. 在主库上,创建两个service,一个连接到主库(primdb),另一个(stbydb)连接到备库:

SQL> exec dbms_service.create_service('primdb','primdb'); 
SQL> exec dbms_service.create_service('stbydg','stbydg');


2. 在主库上,启动刚创建的连接到主库所需的 service:

SQL> exec dbms_service.start_service('primdb');


3. 在主库上,创建触发器来自动化管理这些 services:

CREATE OR REPLACE TRIGGER AutoDGServices after startup on database
DECLARE
  db_role VARCHAR(30);
  db_open_mode VARCHAR(30);
BEGIN
  SELECT DATABASE_ROLE, OPEN_MODE INTO db_role, db_open_mode FROM V$DATABASE;
  IF db_role = 'PRIMARY' THEN 
   DBMS_SERVICE.START_SERVICE('primdb'); 
   DBMS_SERVICE.STOP_SERVICE('stbydg'); 
  END IF;
  IF db_role = 'PHYSICAL STANDBY' AND db_open_mode LIKE 'READ ONLY%' THEN DBMS_SERVICE.START_SERVICE('stby_dg'); 
  END IF;
END;
/


4. 重启备库使得刚才创建的触发器生效

SQL> shu immediate
SQL> startup


5. 进行主备库切换测试,检查新的service能否自动在新主库上启动并在旧主库上停止


注:tnsnames.ora文件参考

PRIMDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (FAILOVER = ON)
      (LOAD_BALANCE = OFF)
      (ADDRESS = (PROTOCOL = TCP)(HOST = Prim-DB)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = Stby-DG)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = primdb)
    )
  )
  
STBYDG =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (FAILOVER = ON)
      (LOAD_BALANCE = OFF)
       (ADDRESS = (PROTOCOL = TCP)(HOST = Stby-DG)(PORT = 1521))
       (ADDRESS = (PROTOCOL = TCP)(HOST = Prim-DB)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = stbydg)
    )
  )


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

请登录后发表评论 登录
全部评论
在某银行任职DBA,拥有多年数据库运维经验,擅长Oracle,MySQL。尤其擅长Oracle的SQL优化,数据库性能调优,数据库备份、恢复与迁移。拥有的认证:OCM 12c,OCM 11g,MySQL OCP,RHCE,阿里云ACP,巨杉SCDP,软考系统集成工程师认证,Oracle Iaas OCA,OBCA,TDSQL认证,TBase认证

注册时间:2021-01-11

  • 博文量
    142
  • 访问量
    483061