观点分享:Oracle数据库GRID升级的案例的闲聊
我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。
今天我们来聊聊Oracle集群环境中GRID/CRS大版本升级。别担心,这不是官方文档的枯燥翻译,也不是厂商PPT的自嗨推销,而是两个真实案例的“吐槽”与反思。案例如有雷同,纯属巧合,毕竟“神操作”总是惊人地相似。
为什么会想到聊这个话题呢?其实在1年之前在一次机缘巧合的情况下学习到B案例的升级方法,让我眼前一亮,原来11G的GRID升级到19C的GRID升级方案可以做得如此的“精美”,一次就可以搞定升级的事情,可以拆分成3次来做,10天的活可以弄成50天,关键是还能将风险从0直接拉到满分,真心的很佩服这样的方案设计师,成功的将368的价格吹成了9998,并且还在9998的价格成交了。
环境介绍
B案例的环境大概是这样,3节点Linux环境的RAC接2台存储做双活,其中第三节点异常,集群已经停了,备库有单机ADG和2套通过OGG来实现的报表数据库,主库的版本为11.2.0.4,报表数据库为12C,客户每间隔半年会有一天的检修事件,故整个数据库升级和验证工作在24小时完成即可。另外再补充一些额外信息,数据库容量在5T左右,操作系统版本兼容11G,但是不兼容19C。
升级方案
B案例最后实施方案分四步来实现:
第一步
新引入一套设备(包括服务器和存储)安装19C集群、19C数据库软件、11G数据库软件、安装OGG软件,搭建与11G主库的ADG和新建CDB,原单机备库安装19C数据库软件,搭建新建CDB到单机环境的ADG。
第二步
11G环境停业务、停OGG,将11G主库切换到19C新环境中,在19C新环境中升级11G数据库到19C,升级成功后将NON-CDB环境加载新建的CDB环境中,数据库成功的从11G环境升级到19C中,在19C中重新配置OGG,恢复OGG同步链路,在此状态下持续运行到下一个维护窗口期。
第三步
重新初始化原来11G的那套环境,安装最新的操作系统,安装19C的集群和数据库软件,重新搭建ADG实现数据库同步,从新配置OGG链路。
第四步
新环境19C数据库回切到原来老环境,OGG链路回切到老环境。
方案感想
复杂性:把简单的事做复杂,才显得专业
B案例整个系统环境是非常简单的,典型的RAC+ADG+OGG的环境,所以节点多,但是技术简单。方案设计师充分的考虑到客户系统对业务的影响,尽最大能力的降低数据库升级过程中给业务系统带来的不确定因素,所以采用“最保险的”异机升级数据库方案。在异机升级方案中,方案设计师引入了整个方案中最经典的设计,那就是引入一套新设备,并且需要再新设备上运行到下一次的维护窗口,那么也就意外这OGG等同步链路也要做对应的迁移,并且还涉及到回迁的操作,将整个升级工作成功的弄成了一个大工程。
风险可控:勇气可嘉,操作大胆
这个方案不仅仅是方案设计师拥有超高的设计水平,就连实施工程师一样的具备破釜沉舟的决心和毅力,听说整个方案在客户现场连测试都没有测试,直接升级迁移,最后出现方案命令都是错的,听说最后拿出了Win重启解决所有问题的大招,报错不行,就将整个环境删除,重新弄一套环境的方式,成功跳过了报错,一切都来到了新的状态,重新搭建ADG容灾。新引入的硬件设备也未做任何的压测和其它的风险评估,直接一下油门踩到底,高负载下见分享。
方案可靠:异机升级方案可靠吗?
异机升级方案基本成为Oracle数据库升级方案的代名词,不管什么环境,不管升级GRID还是DB,统一采用异机升级的方案。曾经听到过一些人说数据库不采用异机升级就不能做升级,如果要做升级,需要客户自己来承担风险,虽然很可笑,但是别人总以风险为理由。其实有些时候我们真应该想象,是真的有技术风险还是说不愿意研究新技术而有风险。异机升级升级方案其实就如过去Oracle数据库必须通过存储镜像来做容灾环境到现在大家基本已经接受通过Oracle ADG技术一样可以实现容灾需求一样,并不是技术不好,不可靠,而是当前已经有最新的技术更带来更好的效果。
最佳方案:你会怎么选
如果你是这个方案的主刀人,在客户有24小时的停机窗口下,以降低客户风险为前提下,你会涉及怎样的升级方案呢?
总结
升级本是技术活,结果被玩成了“项目管理+预算游戏”。方案设计师和实施工程师的“神操作”,让人忍俊不禁。希望大家在看完这个案例后,能对“复杂即高端”的迷思有新的认识。下次我们再聊聊A客户的升级故事,看看有没有更“清奇”的思路。
------------------作者介绍-----------------------
姓名:黄廷忠
现就职:Oracle中国高级服务团队
曾就职:OceanBase、云和恩墨、东方龙马等
电话、微信、QQ:18081072613
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)

观点分享:Oracle数据库GRID升级的案例的闲聊的更多相关文章
- oracle数据库psu升级(本实验是将10.2.0.3.12升级到10.2.0.3.15)
psu升级(本实验是将10.2.0.3.12升级到10.2.0.3.15) 一.解压安装包自定义存放路径为/home/oracle/yjb/psu/10.2.0.3.15cd /home/oracle ...
- Oracle 数据库升级过程中的主要步骤
Oracle 数据库升级包括六个主要步骤. Oracle 数据库的升级步骤工作流 步骤 1:准备升级 Oracle 数据库 熟悉 Oracle 数据库新版本的特性. 确定新版本的升级路径. 选择升级方 ...
- 【绝密外泄】风哥Oracle数据库DBA高级工程师培训视频教程与内部资料v0.1
[绝密外泄]风哥Oracle数据库DBA高级工程师培训视频教程与内部资料v0.1 由于是[绝密外泄]资料,防止被查,需要的小伙伴赶紧下载附件中的课件文档.由于视频太大了,已放在百度网盘了,已经在附中说 ...
- 《Oracle Database 12c DBA指南》第二章 - 安装Oracle和创建数据库(2.1 安装Oracle数据库软件和创建数据库概览)
当前关于12c的中文资料比较少,本人将关于DBA的一部分官方文档翻译为中文,很多地方为了帮助中国网友看懂文章,没有按照原文句式翻译,翻译不足之处难免,望多多指正. 2.1 安装Oracle数据库软件和 ...
- Oracle数据库版本号定期检视与升级的必要性分析
目 录 ▇1.ORACLE数据库版本号知识 ▇2.看看自己的数据库还有没有支持服务 ▇3.看11.2.0.3版本号各PSU的公布时间与解决BUG数量列表 ▇4.看11.2.0.4版本号各PSU的公布时 ...
- Oracle数据库升级(10.2.0.4->11.2.0.4)
环境: RHEL5.4 + Oracle 10.2.0.4 目的: 在本机将数据库升级到11.2.0.4 之前总结的Oracle数据库异机升级:http://www.cnblogs.com/jyzha ...
- 中断ORACLE数据库关闭进程导致错误案例
昨晚下班的时候,我准备关闭本机的虚拟机上的ORACLE数据库后准备下班,但是由于我SecureCRT开了多个窗口,结果一不小心,疏忽之下在一个生产服务器上执行了shutdown immediate命令 ...
- [原创]安装Oracle 11gR2,以及如何在win8下使用plsql develper连接Oracle数据库 ,在这里和大家分享下
一,关于win8下安装Oracle 11gR2 1.我下载的是Oracle_11gR2_win64.其中有两个包: 注意:在解压了之后将:win64_11gR2_database_2of2\datab ...
- 【JSP】JSP与oracle数据库交互案例
************************************************************************ ****原文:blog.csdn.net/clark_ ...
- 探索Oracle数据库升级6 11.2.0.4.3 Upgrade12c(12.1.0.1)
探索Oracle数据库升级6 11.2.0.4.3 Upgrade12c(12.1.0.1) 一.前言: Oracle 12c公布距今已经一年有余了,其最大亮点是一个能够插拔的数据库(PD ...
随机推荐
- 【Unity3D】把相机视角放置到编辑器当前位置视角
[Unity3D]把相机视角放置到编辑器当前位置视角 零.问题 Unity开发过程中,经常要将相机调整值对应位置,但是通过数值来调有时候不怎么方便,有什么方法可以快速让相机的视角与编辑器当前视角同步呢 ...
- ASP.NET 自定义DataTable数据
using System.Data; //DataTable try { DataTable dt = new DataTable(); dt.Columns.Add("Bu ...
- leetcode每日一题:转换二维数组
题目 2610. 转换二维数组 给你一个整数数组 nums .请你创建一个满足以下条件的二维数组: 二维数组应该 只 包含数组 nums 中的元素. 二维数组中的每一行都包含 不同 的整数. 二维数组 ...
- 使用MCP C# SDK开发MCP Server + Client
大家好,我是Edison. 近日被MCP刷屏了,刚好看到张队发了一篇文章提到MCP的官方C# SDK发布了预览版,于是手痒痒尝了一下鲜,写了一个DEMO分享给大家. MCP是什么鬼? MCP,全称是& ...
- 独家推荐!这款端到端AI测试工具 Testim,让效率飙升!(支持移动端、Web端)
在当今快速发展的软件开发时代,确保软件质量成为每个开发团队的首要任务. 随着人工智能(AI)和机器学习(ML)技术的飞速发展,AI测试工具应运而生,为软件测试领域带来了革命性的变化.今天,我要向大家强 ...
- 多模态自动驾驶混合渲染HRMAD:将NeRF和3DGS进行感知验证和端到端AD测试
基于3DGS和NeRF的三维重建技术在过去的一年中取得了快速的进步,动态模型也变得越来越普遍,然而这些模型仅限于处理原始轨迹域内的对象. HRMAD作为一种混合方案,将传统的基于网格的动态三维神经重建 ...
- Linux设置每晚定时备份Oracle数据表
先新建目录 该路径:/home/oracle/backup 该名称:DATA_PATH shell脚本 export ORACLE_BASE=/home/oracle/app export ORACL ...
- python中执行命令的3种方法
python中执行命令的3种方法小结 1. 使用os.system("cmd") 特点是执行的时候程序会打出cmd在linux上执行的信息. import os os.system ...
- Spring创建Bean的三种方式及Bean的生命周期
目录 Spring创建Bean的三种方式及Bean的生命周期 Spring创建Bean的三种方式 第一种方式:使用默认构造函数创建 第二种方式:使用普通工厂中的方法创建对象 第三种方式:使用工厂中的静 ...
- termux添加ll命令
cd ~ vim .bashrc 添加如下内容 alias ll="ls -l" 保存退出 :wq source .bashrc 参考:https://www.cnblogs.co ...