前文再续,书接上一回,这次折腾Data Guard的一个重要目的是利用switchover实现机器的升级,怎么switchover呢?按照我的理解,Data Guard的角色切换是这样一个过程:

(1)让primary节点变为standby节点。

(2)让其中一个standby节点变为primary节点

这里比较有意思是“其中一个”,也就是说节点A原来是primary转成standby后,突然我后悔了,还是可以马上让他变回primary节点的,具体看操作:

此时 test02 是primary 节点,test03是standby节点,由于test03缺少一个参数,一点test03变为primary,归档不会自动发到test02,于是第一步要补全这个参数:

1
2
##### test03 target priamry, standby now #####
alter system set log_archive_dest_2='service=mydb_test02';

让test02由primary变为standby:

1
2
##### test02, target standby, primary now #####
alter database commit to switchover to physical standby ;

以上语句有可能会遇到如下错误:

1
2
3
4
alter database commit to switchover to physical standby
*
ERROR at line 1:
ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected

这是由于一些连接还没有释放所致的,将前端应用关闭后如果还出现这种情况,可以用以下语句确认一下有哪些连接:

1
2
3
4
##### test02, target standby, primary now #####
SELECT SID, PROCESS, PROGRAM FROM V$SESSION  
WHERE TYPE = 'USER'
AND SID <> (SELECT DISTINCT SID FROM V$MYSTAT);

如果是Oracle内部进程的连接就不用管他了,执行如下语句就可以了:

1
2
3
4
##### test02, target standby, priamry now #####
alter database commit to
  switchover to physical standby
  with session shutdown

将test03也就是原来是standby的节点转为primary:

1
2
3
##### test03, target primary, standby now #####
alter database commit to switchover to primary;
##### test03, target primary, primary now #####

打开primary节点的数据库,使其可对外服务:

1
2
3
##### test03, target primary, primary now #####
shutdown immediate;
startup;

启动standby的归档恢复进程:

1
2
##### test02, target standby, standby now #####
alter database recover managed standby database disconnect from session;

此时已经完成了Data Guard 主备切换了,可以监控住standby的alert文件,在primay中做一次日志切换,看看是否有归档日志传送过来并且恢复。

如果监控时间比较长的(超过5分钟)会看到如下错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
##### primary alert #####
Fri Dec 17 14:04:46 2010
Redo Shipping Client Connected as PUBLIC
-- Connected User is Valid
RFS[10]: Assigned to RFS process 12079
RFS[10]: Database mount ID mismatch [0x9e217391:0x9e217bca]
RFS[10]: Client instance is standby database instead of primary
RFS[10]: Not using real application clusters
Fri Dec 17 14:04:46 2010
Errors in file /u01/app/admin/mydb/udump/mydb_rfs_12079.trc:
ORA-16009: remote archive log destination must be a STANDBY database
   
##### standby alert #####
Fri Dec 17 14:04:54 2010
Errors in file /u01/app/admin/mydb/bdump/mydb_arc1_6821.trc:
ORA-16009: remote archive log destination must be a STANDBY database
Fri Dec 17 14:04:54 2010
PING[ARC1]: Heartbeat failed to connect to standby 'mydb_test02'. Error is 16009.

虽然不影响 Data Guard 的功能和使用,但如何解决呢?其实这是归档进程ARCHn进程在作怪,想办法屏蔽就可以,一个比较土的方法就是将备节点的log_archive_dest_2设为空,也就是回到上一篇中提到那种配置上,另外一种聪明点的做法就是引入valid_for参数:

1
2
3
4
5
##### test02 #####
alter system set log_archive_dest_2='service=mydb_test03 valid_for=(online_logfiles,primary_role)';
 
##### test03 #####
alter system set log_archive_dest_2='service=mydb_test02 valid_for=(online_logfiles,primary_role)';

alert文件中再也看不到这两个错误了。

ORACLE DATAGURARD 折腾记二的更多相关文章

  1. FreeBSD jail 折腾记(二)

    FreeBSD jail 折腾记(二) 创建jail目录 创建4个 分别是模板 骨架 数据 项目 创建模板目录 mkdir -p /jail/j1 # 然后放入基本目录,上篇说过不再写 创建骨架目录 ...

  2. 斐讯N1折腾记

    斐讯N1折腾记:运行 Linux 及优化  2018-06-23  37条评论  4,445次阅读  11人点赞 最后更新时间:2019年03月10日 咳咳咳,上篇教程教大家给斐讯 N1 降级并且刷了 ...

  3. Atom编辑器折腾记

    http://blog.csdn.net/bomess/article/category/3202419/2 Atom编辑器折腾记_(1)介绍下载安装 Atom编辑器折腾记_(2)基础了解使用 Ato ...

  4. 【转载】有图 KVM折腾记..

    KVM折腾记...https://lengjibo.github.io/KVM%E6%8A%98%E8%85%BE%E8%AE%B0/  Veröffentlicht am 2018-09-20 |  ...

  5. oracle入坑日记<二>认识oracle(含sqlplus基础使用)

    1.SID(数据库实例) 1.1. oracle安装的时候有一项叫[全局数据库名]的填写项,这个就是oracle的SID也是数据库的唯一标识符: 1.2.一个oracle数据库有且只有一个SID(一般 ...

  6. centos 安装oracle 11g r2(二)-----监听配置与创建数据库实例

    centos 安装oracle 11g r2(二)-----监听配置与创建数据库实例 一.监听配置(命令:netca) 1.以 oracle 用户输入命令,启动图形化工具配置监听 [oracle@lo ...

  7. BeagleBone折腾记(一):连接你的狗板

    BeagleBone折腾记一连接你的狗板 准备 了解BeagleBone BeagleBone社区 所需软硬件 USB连接 TTL连接 结语 准备 了解BeagleBone BeagleBone可能一 ...

  8. Vue折腾记 - (3)写一个不大靠谱的typeahead组件

    Vue折腾记 - (3)写一个不大靠谱的typeahead组件 2017年07月20日 15:17:05 阅读数:691 前言 typeahead在网站中的应用很多..今天跟着我来写一个不大靠谱的ty ...

  9. [独孤九剑]Oracle知识点梳理(二)数据库的连接

    本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...

随机推荐

  1. oracle 行转列 分析函数

    oracle 行转列 首先看一下源数据: 方法一:WM_CONCAT group by 这个方法没有问题. SELECT CODE_TS, WMSYS.WM_CONCAT(S_NUM + || ':' ...

  2. shapefile文件

    基本信息编辑 ESRI公司的Shapefile文件是描述空间数据的几何和属性特征的非拓扑实体矢量数据结构的一种格式. 内容编辑 一个Shapefile文件最少包括三个文件: 主文件(*.shp).-- ...

  3. Entity Framework 学习笔记(一)安装

    1.通过 VS2013 下载,这个没有限制,因为我用的vs是2013 Entity Framework包

  4. Android模拟神器Genymotion eclipse插件安装问题出解决

    我之前一直是打开eclipse之前直接运行Genymotion模拟器就可以连接到adb了,非常方便,但最近突然想来装个eclipse的Genymotion插件玩玩,安装时居然出错了,于是不折腾好心里不 ...

  5. 走进Vue.js

    走进Vue.js Vue.js作为目前最热门最具前景的前端框架之一,其提供了一种帮助我们快速构建并开发前端项目的新的思维模式.本文旨在帮助大家认识Vue.js,了解Vue.js的开发流程,并进一步理解 ...

  6. python学习笔记19(序列的方法)

    序列包含有宝值 表(tuple)和表(list).此外,字符串(string)是一种特殊的定值表,表的元素可以更改,定值表一旦建立,其元素不可更改. 任何的序列都可以引用其中的元素(item). 下面 ...

  7. 2017年iOS应用将强制使用HTTPS安全加密-b

    6月14日,WWDC 2016苹果开发者大会上,苹果在讲解全新的iOS10中提到了数据安全这一方面,并且苹果宣布iOS应用将从2017年1月起启用名为App Transport Security的安全 ...

  8. 1034: [ZJOI2008]泡泡堂BNB - BZOJ

    Description 第XXXX届NOI期间,为了加强各省选手之间的交流,组委会决定组织一场省际电子竞技大赛,每一个省的代表队由n名选手组成,比赛的项目是老少咸宜的网络游戏泡泡堂.每一场比赛前,对阵 ...

  9. Spring MVC与表单日期提交的问题

    Spring MVC与表单日期提交的问题 spring mvc 本身并不提供日期类型的解析器,需要手工绑定, 否则会出现非法参数异常. org.springframework.beans.BeanIn ...

  10. [DP] 堆盒子问题

    给一堆盒子,知道每个盒子的三围(长宽高),盒子正面朝你,不能旋转摆放,按照大的放在小的下面的原则堆起来,必须是 strictly larger,同样大小的盒子不行,问怎么样堆到最大的高度? 思路:动态 ...