FAILOVER详细步骤
FAILOVER详细步骤
1.Flush主库任何未传输的redo到目标备库
如果primary可以mount,则可以flush任何主库的未传输redo到备库,如果操作成功返回,则可以保证failover的零数据丢失。
1)确保standby数据库启用日志应用
2)mount primary数据库,执行以下SQL语句,命令等待standby应用redo完成后返回。
SQL> alter system flush redo to target_db_unique_name;
如果成功返回,则转第5步,如果返回错误或者用户不能等待其耗费的时长,则转第2步。
2.确认standby应用了primary每个线程的最新归档
standby:
SQL> select unique thread# as thread, max(sequence#) over (partition by thread#) as last from v$archived_log;
如果standby没有应用priamry的最新归档,手工传输primary归档文件到standby并注册:
SQL> alter database register physical logfile 'filespec1';
3.查找并解决GAP
standby:
SQL> select thread#, low_sequence#, high_sequence# from v$archive_gap;
如果有GAP, 手工传输GAP到standby并注册:
SQL> alter database register physical logfile 'filespec1';
4.重复第3步,直到解决所有的GAP
直到查询返回为空,则说明当前已可能没有GAP(v$archive_gap存在一些已知的BUG)。
5.停止redo应用
SQL> recover managed standby database cancel;
6.完成应用所有接受到的redo数据
SQL> recover managed standby database finish;
如果命令成功返回,转第7步,如果命令返回错误,说明一些redo数据不能应用,排查错误并再次执行该SQL语句。
如果错误不能解决,执行以下SQL激活物理备库,可能会丢失数据,执行以下SQL后,转第9步:
SQL> alter database activate physical standby database;
7.确认物理standby可以转换为primary
SQL> select switchover_status from v$database;
SQL查询结果为TO PRIMARY
或SESSIONS ACTIVE
,则表示standby可以转换为primary角色,否则需要检查日志应用是否仍处于激活状态,确保该值为TO PRIMARY
或SESSIONS ACTIVE
。
8.切换物理standby为primary角色
SQL> alter database commit to switchover to primary with session shutdown;
如果switchover_status为SESSION ACTIVE,则需要加上with session shutdown子句。
9.打开新的primary数据库
SQL> alter database open;
10.清除DG相关参数
11.立即备份新的primary数据库
12.DG环境中如果存在的其他物理备库,重启其已停止的日志应用
SQL> recover managed standby database using current logfile disconnect;
13.还原失败的primary数据库
FAILOVER详细步骤的更多相关文章
- unity导出工程导入到iOS原生工程中详细步骤
一直想抽空整理一下unity原生工程导入iOS原生工程中的详细步骤.做iOS+vuforia+unity开发这么长时间了.从最初的小小白到现在的小白.中间趟过了好多的坑.也有一些的小小收货.做一个喜欢 ...
- java连接mysql数据库详细步骤解析
java连接mysql数据库详细步骤解析 第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar 第二步:导入下载的J ...
- svn更新路径,解决办法详细步骤,eclipse里面的更新方法,svn废弃位置,Windows环境,svn服务器地址换了,如何更新本地工作目录
svn更新路径,解决办法详细步骤,eclipse里面的更新方法,svn废弃位置,Windows环境,svn服务器地址换了,如何更新本地工作目录 Windows下,svn服务器IP本来是内网一台服务器上 ...
- OSG入门即osgEarth建立一个地球的详细步骤
OSG入门即osgEarth建立一个地球的详细步骤 转:http://blog.csdn.net/xiaol_deng/article/details/9246291 最近在学习有关osg的知识,刚开 ...
- VS2012+Win7网站发布详细步骤
VS2012+Win7网站发布详细步骤 本机环境: 本文分三个部分介绍Web项目发布的常规方法,大神级别可以略过,主要是为了方便一些初学者. 第一部分:VS2012把项目发布到文件系统. 第二部分:I ...
- 用grunt搭建自动化的web前端开发环境实战教程(详细步骤)
用grunt搭建自动化的web前端开发环境实战教程(详细步骤) jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用!前端自动化, ...
- iOS开发之 xcode6 APP 打包提交审核详细步骤
一. 在xcode6.1和ios10.10.1环境下实现app发布 http://blog.csdn.net/mad1989/article/details/8167529 http://jingya ...
- 使用Nginx和Logstash以及kafka来实现网站日志采集的详细步骤和过程
使用Nginx和Logstash以及kafka来实现网站日志采集的详细步骤和过程 先列出来总体启动流程: (1)启动zookeeper集群(hadoop01.hadoop02和hadoop03这3台机 ...
- linux/centos下安装nginx(rpm安装和源码安装)详细步骤
Centos下安装nginx rpm包 ...
随机推荐
- 【实用篇】Android之应用程序实现自动更新功能
我个人用的是友盟提供的自动更新组件,因此在这里只描述如何实用友盟提供的组件来完成程序的自动更新,步骤如下: 1.登录友盟官网,点击注册一个友盟账号. 2.注册成功后将会自动进入到添加新应用界面,选择添 ...
- 分享vue ui时间组件用法
//js code var jiaban = { template:` <i-form v-ref:form_jb :model="form_jb" :rules=" ...
- 自动与因特网时间服务器同步 NTP 服务器 pool.ntp.org, 120.24.166.46 端口 123
自动与因特网时间服务器同步 NTP 服务器 pool.ntp.org 海康提供的NTP服务器 120.24.166.46 端口 123
- GPU-directX的发展历史
GPU发展历史: GPU之前的基础: 1962 麻省理工学院的博士伊凡•苏泽兰发表的论文以及他的画板程序奠定了计算机图形学的基础. 1962-1984 没有专门图形处理硬件,由CPU完成 1984 专 ...
- Idea下mybatis的错误—Module not specified
IDEA下使用maven的mybatis常见错误 错误类型一:导入项目引起的错误Module not specified 错误提示:idea Error Module not specified. 错 ...
- XML解析——SAX解析以及更方便的解析工具(JDOM、DOM4J)
XML主要用于数据交换,HTML则用于显示. 相对于DOM的树形解析,SAX采用的是顺序解析,这种解析方法可以快速地读取XML数据的方式. SAX主要事件: No. 方法 类型 描述 1 public ...
- struts2 结合extjs实现的一个登录实例
一.先搭建好struts2,能够通过myeclipse高速搭建. 二.再导入extjs所需的库文件. 三.写一个实体类User package com.ext.model; public class ...
- Use PSO to find minimum in OpenCASCADE
Use PSO to find minimum in OpenCASCADE eryar@163.com Abstract. Starting from OCCT6.8.0 will include ...
- SWTBOK測试实践系列(1) -- 測试在项眼下期的评审投入划算吗?
測试策略:静态測试还是动态測试? [对话场景] 成功公布某个软件版本号之后,项目团队召开了项目的经验教训总结大会.在会议期间,项目经理小项和測试经理小測进行了例如以下的对话: 小项:"小測, ...
- crm2011处理save事件和获取当前窗口信息
//防止保存记录,eContext:当前上下文对象 function My_PreventSaveFunction(eContext) { eContext.getEventArgs().pr ...