• 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

  • 相关阅读:
    PHP 函数
    MariaDB——(三) MariaDB 10.0.15 standard replication主从复制搭建
    MariaDB——(二) MariaDB 10.0.15 日志文件—undo 日志
    MariaDB——(一)CentOS 6.5 下 MariaDB 10.0.15 YUM 安装
    虚拟机中的linux系统文件突然全部变成只读的问题
    复制虚拟机vmware centos搭建集群节点过程中网络配置eth0和eth1遇到的问题以及NAT模式下虚拟机静态IP配置方法
    WMware 中CentOS系统Hadoop 分布式环境搭建(一)——Hadoop安装环境准备
    关于Oracle字符集在dmp文件导入导出中的乱码影响
    VMware 打开虚拟机的时候提示 internal error 内部错误 遇到这个问题时我的解决方法
    ORACLE 存储过程中保存用户自定义异常信息的一种方式
  • 原文地址:https://www.cnblogs.com/Roobbin/p/16007454.html
Copyright © 2020-2023  润新知