zoukankan      html  css  js  c++  java
  • 主备角色switch

    理论知识:
    Switchover 切换允许primary 和一个备库进行切换,并且这种切换没有数据丢失。

    前提条件:

    1) 主备库相关参数 fal_client、fal_server 、standby_file_management 、 db_file_name_convert 、
    log_file_name_convert 都已经配置。 standby logfile 日志组已创建。
    (验证主备库的配置信息,包括初始化参数,归档模式,standby redo logs 和online redo log。 )

    2)在主库查询V$ARCHIVE_DEST_STATUS 视图,验证备库没有redo 传输错误 或者redo gap。
    SQL> SELECT STATUS, GAP_STATUS FROM V$ARCHIVE_DEST_STATUS WHERE DEST_ID = 2;
    STATUS GAP_STATUS
    --------- ------------------------
    VALID NO GAP
    只有这里状态是VALID 和NOGAP的情况下,才可以进行角色切换操作。

    3) 确保主备库Temp 表空间一致。

    4) 移除standby 上任何delay apply redo 的设置。

    5) 如果是将RAC 主库切换到物理备库,RAC 主库只能保留一个节点,其他节点要关闭,在switchover 完成以后在启动关闭的节点即可。

    6) 如果备库是real-time apply 的物理standby,并且是read only 模式,在切换之前,建议先将备库启动到mount状态,而不是open状态,这样可以实现最快速的角色切换,而不需要在切换之前清除用户的session连接。

    7)如果有多个standby,在Role Transition 时如何选择 。 考虑位置,性能,数据库类型

    主库参数检查:
    SQL> show parameter fal_client
    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    fal_client string devdb1
    SQL> show parameter fal_server
    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    fal_server string phydb
    SQL> show parameter standby_file_management
    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    standby_file_management string MANUAL
    SQL> show parameter db_file_name_convert
    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    db_file_name_convert string +DATA/phydb/, +DATA/devdb/
    SQL> show parameter log_file_name_convert
    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    log_file_name_convert string +DATA/phydb/, +DATA/devdb/
    SQL> select group# from v$standby_log;
    GROUP#
    ----------
    4
    5
    6
    7

    备库参数检查:
    SQL> show parameter fal_client
    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    fal_client string phydb
    SQL> show parameter fal_server
    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    fal_server string devdb1
    SQL> show parameter standby_file_management
    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    standby_file_management string AUTO
    SQL> show parameter db_file_name_convert
    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    db_file_name_convert string +DATA/devdb/, +DATA/phydb/
    SQL> show parameter log_file_name_convert
    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    log_file_name_convert string +DATA/devdb/, +DATA/phydb/
    SQL> select group# from v$standby_log;
    GROUP#
    ----------
    4
    5
    6
    7

    特别提醒: 作者环境为一个节点的rac+单节点dg 。 不同于两个节点的rac+dg,操作上有细微区别。如两个节点的rac,一个节点需shutdown,一个节点操作。

    切换模式 :一个节点的rac主库切换备库,单节点备库切换成主库 。

    1. 将主库切换成standby role:
    SQL> alter database commit to switchover to physical standby with session shutdown;
    Database altered.

    2. 将原备库切换成主库 , 并 open 。
    SQL> alter database commit to switchover to primary with session shutdown;
    Database altered.

    SQL> ALTER DATABASE OPEN;
    Database altered.

    3. 原主库并启动到open状态,启动 mgr 进程。
    SQL> startup;
    ORACLE instance started.
    Total System Global Area 839282688 bytes
    Fixed Size 2257880 bytes
    Variable Size 603982888 bytes
    Database Buffers 230686720 bytes
    Redo Buffers 2355200 bytes
    Database mounted.
    Database opened.

    SQL> alter database recover managed standby database using current logfile disconnect from session;
    Database altered.

    4. 验证
    SQL> SELECT DEST_ID, STATUS,APPLIED_SCN FROM V$ARCHIVE_DEST WHERE TARGET='STANDBY';
    DEST_ID STATUS APPLIED_SCN
    ---------- --------- -----------
    2 VALID 0

    切换模式: 单节点主库切换成备库,一个节点rac备库切换成主库。

    1. 确认主库,新主库切换成备库
    SQL> select name,database_role,switchover_status from v$database;
    NAME DATABASE_ROLE SWITCHOVER_STATUS
    --------- ---------------- --------------------
    DEVDB PRIMARY TO STANDBY
    SQL> alter database commit to switchover to physical standby with session shutdown;
    Database altered.
    2. 新备库切换成主库 , 并 open 。
    SQL> alter database commit to switchover to primary with session shutdown;
    Database altered.

    SQL> alter database open;
    Database altered.

    3. 现备库open ,并启动 mgr 进程。
    SQL> startup;
    ORACLE instance started.
    Total System Global Area 839282688 bytes
    Fixed Size 2257880 bytes
    Variable Size 603982888 bytes
    Database Buffers 230686720 bytes
    Redo Buffers 2355200 bytes
    Database mounted.
    Database opened.
    SQL> alter database recover managed standby database using current logfile disconnect from session;
    Database altered.

    4. 主库执行检查
    SQL> SELECT DEST_ID, STATUS,APPLIED_SCN FROM V$ARCHIVE_DEST WHERE TARGET='STANDBY';
    DEST_ID STATUS APPLIED_SCN
    ---------- --------- -----------
    2 VALID 1879072

  • 相关阅读:
    Android常用开发工具的用法
    搭建Android开发环境
    开篇 Android系统的体系结构
    学习安卓笔记
    C# DllImport用法和路径问题
    jq 实现无限级地区联动 样式为bootstrap
    YII2 日志
    centos6.5 lamp 环境 使用yum安装方法
    mysql 时间戳 按周、日、月 统计方法 附 date格式
    Yii2.0中文开发向导——控制器(Controller)
  • 原文地址:https://www.cnblogs.com/andy6/p/6540081.html
Copyright © 2011-2022 走看看