前文再续,书接上一回,这次折腾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. 阿里云服务器无法远程其他的mysql服务器

    1.初始化root密码 进入mysql数据库 1 mysql>update user set password=PASSWORD('123456') where User='root'; 2.允 ...

  2. http://phantomjs.org/page-automation.html

    http://phantomjs.org/page-automation.html install brew curl -LsSf http://github.com/mxcl/homebrew/ta ...

  3. 【BZOJ 1085】 [SCOI2005]骑士精神

    Description 在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位.在任何时候一个骑士都能按照骑士的走法(它可以走到和它横坐标相差为1,纵坐标相差为2或者横坐标相差为2, ...

  4. 【POJ2104】kth num

    You are working for Macrohard company in data structures department. After failing your previous tas ...

  5. .Net IE10 _doPostBack 未定义

    问题描述:用.Net写的LinkButton触发后台是js报错:_doPostBack 未定义 网上资料显示这种情况是当前framework不能识别IE10版本,把该浏览器做降级处理导致JS错误,解决 ...

  6. 使用Yeoman搭建 AngularJS 应用 (10) —— 让我们搭建一个网页应用

    原文地址:http://yeoman.io/codelab/write-unit-tests.html 对于不熟悉的Karma的人来说,这是JavaScript测试框架,这个Angular的生成器包含 ...

  7. shell复习笔记----用户管理

    $ who    可以知道系统上有多少登陆 $who |wc -l 计算用户个数 注意:|是管道符号,可以在两个程序之间建立管道(pipeline):who 的输出,成了 wc 的输入, wc 所列出 ...

  8. 1062: [NOI2008]糖果雨 - BZOJ

    题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1062 神题一个,直接讲思路了(全都是看别人的) 首先我们把一个云用一个平面上的点( ...

  9. js中replace的正则替换

    temp: video":"\t<ul class=\"g-list tabview-cont on\">\t\r\n\t\t<li clas ...

  10. efficient c++,单线程内存池

    基于 http://www.cnblogs.com/diegodu/p/4555018.html operator new的知识基础上 介绍这个章节的内容 对于一般直接 new 与delete 性能较 ...