Home  >  Article  >  Database  >  DATAGUARD failover切换及配置范例

DATAGUARD failover切换及配置范例

WBOY
WBOYOriginal
2016-06-07 17:05:541031browse

今天给客户演示了虚拟机上的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

    Statement:
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn