一,物理备库

  01,状态查询与状态详解

select switchover_status from v$database

  02,状态转换到备用数据库

alter database commit to switchover to physical st andby;
执行后,oracle会将当前主数据库的控制文件备份到一个跟踪文件上,需要重启
shutdown immediate;
startup mount

  03,状态转换到主数据库

alter database commit to switchover to primary;
如果添加 with session shutdown wait 子句,则在切换完成前该语句不会返回到SQL>提示符,使用OPEN关键字启动数据库
alter database open

  04,启动重做应用

alter database recover managed standby database using current logfile disconnect from session;

二,逻辑备库

  01,验证是否能执行

    检验主数据库能否执行切换,查询v$database 了解switchover_status的值为to standby, to logical standby, sessions active

SQL> select switchover_status from v$database;

SWITCHOVER_STATUS
--------------------
TO STANDBY

  02,主数据库切换逻辑备用数据

      在旧主库执行操作,让主库准备用于切换

alter database prepare to switchover to logical standby;

      在旧逻辑备库数据块中操作

alter database prepare to switchover to primary;

      这时候,逻辑备用数据块将开始想当前的主数据库和配置中的其他备用数据库传送它的重做数据,此时,传送逻辑备库数据块中的重做数据,但是没有应用

      在主数据库中,现在必须检验从逻辑备用数据库上接受字典数据,在能继续执行下一步之前,v$database中的switchover_status 列的值在主数据库中必须读取为to logocal standby.当该状态值显示主数据库中,将主数据库切换到逻辑备用角色

      旧主数据执行

alter database commit to switchover to logical standby;

      查询旧逻辑备库,检验是否可以切换即switchover_status 状态应该时to primary.

      旧逻辑备库执行

alter databse commit to switchover to primary;

      旧的主数据库上执行

alter database start logical apply immediate;
启动重做日志

三,故障转移

  01,物理备库故障转移    

      备用数据库需要保持标识和归档日志一致性,需要手动复制,注册日志文件

      配置了重做日志文件的话执行:

alter database recover managed standby database finish;

       没有配置重做日志的执行:

alter databse recover managed standby database finish skip standby logfile;

      完成备份恢复操作,在新主使用命令开始切换

alter database commit to seichover to primary;

      然后关闭,重启新主数据库

  02,逻辑备库故障转移 

没有激活重做应用的话:
alter database start logical standby apply nodelay finish; 接下来,为逻辑备用数据库生成的重做日志文件启用远程存储位置。可能需要更新逻辑备,用数据库的LOG ARCHIVE DEST-STATEn参数设置,以便配置中的其他备用数据库将可接收到由原始的逻辑备用数据库生成的重做数据。然后,可通过如下命令将原始的逻辑备用数据库激活为新的主数据库: alter database activate logical standby database finish apply; 如果存在属于Data Guard配置的其他逻辑备用数据库,则可能需要重新创建它们或使用数据库链接将它们添加到新配置中。首先,在将要充当新的主数据库的逻辑备用数据库的每个数据库中创建一个链接。ALTER SESSION DISABLE GUARD命令允许绕过会话中的Data Guard过程。数据库链接使用的数据库账户必须具有SELECT CATALOG ROLE角色: alter session disable guard;
create database link salesofoconnect to username identified by password using 'salesofc';
alter session enable quard;
应通过查询远程数据库(新的主数据库)中的DBA LOGSTDBY PARAMETERS视图来验,证该链接。在每个逻辑备用数据库中,现在可以基于新的主数据库来启动重做应用进程: alter database start logical standby apply new primary salesofc;

oracle12C--DG 状态集的更多相关文章

  1. 网络基础二 tcp/ip协议簇 端口 三次握手 四次挥手 11种状态集

    第1章 概念介绍 1.1 VLAN 1.1.1 什么是VLAN VLAN(Virtual LAN),翻译成中文是“虚拟局域网”.LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成 ...

  2. kubernetes有状态集群服务部署与管理

    有状态集群服务的两个需求:一个是存储需求,另一个是集群需求.对存储需求,Kubernetes的解决方案是:Volume.Persistent Volume .对PV,除了手动创建PV池外,还可以通过S ...

  3. TCP/IP 协议簇 端口 三次握手 四次挥手 11种状态集

    第1章 概念介绍 1.1 VLAN 1.1.1 什么是VLAN VLAN(Virtual LAN),翻译成中文是“虚拟局域网”.LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成 ...

  4. flux,redux,vuex状态集管理工具之间的区别

    一:redux和flux的区别 1)redux是flux中的一个实现 2))在redux中我们只能定义一个store,在flux中我们可以定义多个 3)在redux中,store和dispatch都放 ...

  5. TCP11种状态集之TIME_WAIT

    先看一个实例,上代码: #!/usr/bin/env python3 # _*_ coding:utf- _*_ import socket sk = socket.socket() sk.bind( ...

  6. oracle dg状态检查及相关命令

    oracle dg 状态检查 先检查备库的归档日志同步情况 SELECT NAME,applied FROM v$archived_log; alter database recover manage ...

  7. TCP/IP协议簇 端口 三次握手 四次挥手 11种状态集

    第一章:概念介绍 1.1 VLAN 1.1.1 什么是VLAN VLAN (Virturl LAN) ,翻译成中文是:“虚拟局域网”.VLAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计 ...

  8. Oracle dg 状态校验

    查看主库状态: select open_mode,protection_mode,database_role,switchover_status from v$database; OPEN_MODE ...

  9. oracle12C--DG FAR SYNC 部署(前提为搭建好12C的DG)

    <<往期12CDG搭建>> 一,理解同步异步模式 01, 使用LGWR 进程的SYNC 方式 1)Primary Database 产生的Redo 日志要同时写到日志文件和网络 ...

随机推荐

  1. Java 5新特性 for each 和Iterator的选择

    在使用一边做迭代操作一边做删除数组元素操作是应该使用Iterator package for_each_And_Iterator; public class Commodity { private S ...

  2. 编写高质量代码改善C#程序的157个建议——建议51:具有可释放字段的类型或拥有本机资源的类型应该是可释放的

    建议51:具有可释放字段的类型或拥有本机资源的类型应该是可释放的 在建议50中,我们将C#中的类型分为:普通类型和继承了IDisposable接口的非普通类型.非普通类型除了包含那些托管资源的类型外, ...

  3. leetcode Submission Details

    代码: #include<iostream> #include<vector> using namespace std; struct ListNode { int val; ...

  4. Adorner的收集

    Adorners Overview https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/adorners-overview ' ...

  5. Android在一个app中启动另一个App

    Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); Compon ...

  6. vs2017 C++动态链接库的创建和调用(隐式)

    一.VS创建动态链接库 1.打开vs新建项目 创建动态链接库 2.添加头文件.h,在h文件中添加如下内容: #pragma once//该头文件只编译一次#include<iostream> ...

  7. [Essay]看《Re:从零开始的异世界生活》的一些感想

    人生不能重来,但动漫可以. -- 故事背景 <介绍背景> 男主486通过不断重来,而改变了剧情的发展.整个动漫就像RPG游戏一般,只看了一遍没有完全理解,但后来再看萌娘百科才把整个剧情里所 ...

  8. 第二篇:git创建流程

    1.创建组织 2.创建 3.点击项目 创建完: 4.选择管理——>选择公钥——>添加个人公钥: 5.怎样生成公钥 5.1.如何生成ssh公钥 你可以按如下命令来生成 sshkey: ssh ...

  9. query flot 直方图上显示对应的y值

    方法1:使用在图上加 相对定位的 div 提示对应的直方图数量. 具体实现:获取直方图上所有的点,得到y值和对应的坐标位置,插入相对div 主要js代码:plot 为对应的图对象 //初始化柱状图数据 ...

  10. UX | 最小可行性技能

    简评:本文介绍了最小 UX 需要技能(可以看成设计版 MVP),包括用不同视角看事情,从回馈中学习等等 ~ 呐,可能刚入门设计的时候,会让一堆工具弄得眼花缭乱.其实呢,并不一定要每样都会使用,举一反三 ...