Maison  >  Article  >  base de données  >  DATAGUARD failover切换及配置范例

DATAGUARD failover切换及配置范例

WBOY
WBOYoriginal
2016-06-07 17:05:541029parcourir

今天给客户演示了虚拟机上的switchover和failover的切换过程。客户关心的重点自然是failover,我们直接关掉虚拟存储的开关来模拟

今天给客户演示了虚拟机上的switchover和failover的切换过程。客户关心的重点自然是failover,我们直接关掉虚拟存储的开关来模拟阵列故障。failover步骤如下

1. 

  • DATABASE_ROLE,SWITCHOVER_STATUS,FORCE_LOGGING   
  • 2. 停止日志应用

  • 3. 关闭standby日志传输

  • 4. 切换到primary

  • 做这一步的时候,,若存在gap,则会报ORA-16139    :Switchover: Media recovery required - standby not in limbo 错误。做测试的时候,若先起主库再起备库,且未等待备库相关日志传输完毕,就会出现这个问题。此时需要强制切换

  • 5. 重启数据库到open状态

    附上单机到单机的linux下dataguard实施过程。


    准备环境

    PRIMARY: RHEL 4.7 + Oracle 10.2.0.4单机+文件系统  主机名:zhbqdb1

    STANDBY: RHEL 4.7 + oracle 10.2.0.4单机 + 文件系统  主机名:zhbqdb2

    主机上创建一个库名为zhdydb1的数据库,开启归档模式。备机装好数据软件,版本升级到与主机一致

    在主机和备机上配好/etc/hosts并创建数据存放路径

    # Do not remove thefollowing line, or various programs
    #that require network functionality will fail.
    127.0.0.1               localhost.localdomain localhost
    172.17.42.29            zhbqdb1
    172.17.42.30            zhbqdb2
     

    创建存放数据文件和归档的目录

  • mkdir /u01/flash_recovery_area  
  • mkdir /u01/oradata  
  • chown oracle:oinstall/u01/flash_recovery_area  
  • chown oracle:oinstall/u01/oradata  
  • 主机的配置 打开force logging

    SQL> alter database force logging;

    查看当前数据库是否置于force logging 下:

    selectforce_logging from v$database;

    创建归档目录

  • mkdir /u01/flash_recovery_area/ZHDYDB1/arch  
  • mkdir/u01/flash_recovery_area/ZHDYDB2  
  • mkdir/u01/flash_recovery_area/ZHDYDB2/arch  
  • mkdir/u01/flash_recovery_area/ZHDYDB2/archivelog  
  • 配置tnsnames

    在zhbqdb1上

    vi$ORACLE_HOME/network/admin/tnsnames.ora

    ZHDYDB1 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST =zhbqdb1)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = zhdydb1)
        )
      )
     
    ZHDYDB2 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST =zhbqdb2)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = zhdydb2)
        )
      )
     

    linux

    Déclaration:
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn