• Oracle DG主备切换至单实例


    主备切换方式:

    1. switch:用户主动切换;
    2. failover:主库出现故障,强行切换;
    switch 切换过程:先主库再备库

    switchover_status值详解:

    NOT ALLOWED 当前的数据库不是带有备用数据库的主数据库
    PREPARING DICTIONARY 该逻辑备用数据库正在向一个主数据库和其他备用数据库发送它的重做数据,以便为切换做准备
    PREPARING SWITCHOVER 接受用于切换的重做数据时,逻辑备用配置会使用它
    RECOVERY NEEDED 备用数据库还没有接收到切换请求
    SESSIONS ACTIVE 在主数据库中存在活动的SQL会话;在继续执行之前必须断开这些会话
    SWITCHOVER PENDING 适用于那些已收到主数据库切换请求但是还没有处理该请求的备用数据库
    SWITCHOVER LATENT 切换没有完成并返回到主数据库
    TO LOGICAL STANDBY 主数据库已经收到了来自逻辑备用数据库的完整的字典
    TO PRIMARY 该备用数据库可以转换为主数据库
    TO STANDBY 该主数据库可以转换为备用数据库

    一、switchover

    --主库先切换,若是集群,请现先关闭其他实例,留下一个实例进行操作
    --查看角色、状态
    select name,database_role,switchover_status from v$database;
    --检查归档日志是否有中断
    select status.gap_status from v$archive_dest_status where dest_id=2;
    --查询切换前主库的状态,状态为to standby、session active均可以切换为备库
    --to standby状态切换操作
    alter database commit to switchover to physical standby;
    --session active切换操作
    alter database commit to switchover to physical standby with session shutdown;
    --切换完成后数据库为关闭状态,将新备库启动到mount状态
    shutdown immediate;
    startup nomount;
    alter database mount standby database;
    
    --再切换备库,查询切换状态、角色
    select name,database_role,switchover_status from v$database;
    --查询切换前主库的状态,状态为to standby、session active均可以切换为备库
    --to primary状态切换操作
    alter database commit to switchover to physical primary;
    --session active切换操作
    alter database commit to switchover to physical primary with session shutdown;
    --调整参数文件,若主库为集群需删除集群相关参数避免打开数据库时出现报错
    shutdown immediate;
    startup pfile='/home/oracle/initdbjgxt.ora';
    create spfile from pfile;

    二、Failover

    --停止日志应用
    alter database recover managed standby database cancel;
    --关闭standby日志传输
    alter database recover managed standby database finish force;
    --切换到primary
    alter database commit to switchover to primary with session shutdown;
    --做这一步的时候,若存在gap,则会报ORA-16139:Switchover: Media recovery required - standby not in limbo 错误。
    --做测试的时候,若先起主库再起备库,且未等待备库相关日志传输完毕,就会出现这个问题。此时需要强制切换
    alter database activate physical standby database;
    --重启数据库到open状态
    alter database open;

    --原文地址:https://www.cnblogs.com/ss-33/p/14858063.html

  • 相关阅读:
    Redis简单梳理及集群配置
    PDF.js 详情解说
    基于SMS短信平台给手机发送短信
    linux装OpenOffice后传---中文乱码的解决
    NodeJs小试牛刀--聊天室搭建
    算法之路--最小代价生成树
    Linux系统上安装OpenOffice
    项目部署之工具使用心得
    H5 Handlebars的简单使用
    JavaWeb国际化
  • 原文地址:https://www.cnblogs.com/Roobbin/p/16007454.html
Copyright © 2020-2023  润新知