Oracle CloudWorld 2022 - 使用Oracle MAA实现应用程序的连续可用性
每每谈到Oracle MAA,大家条件反射般就会想到Oracle的RAC和ADG等核心选件,当然,这些技术有口皆碑,也的确是MAA的构建基础,但本文我们不再过多谈这些耳熟能详的技术,而是来跟大家探讨下在此基础之上,我们如何将基础MAA优化到业务连续性MAA这个程度,最终实现应用程序的连续可用性。
在本次OCW大会上,下面几位大咖就在演讲中探讨了这个话题:

现在就让我们跟着专家的思路,一起来看下该如何使用Oracle MAA实现应用程序的连续可用性:
1.为什么建议选择透明的应用程序连续性
我们先看下Oracle最大可用性体系架构的概览:

架构里面红框标注的AC部分,也随着版本演进有了TAC,但其实两种方式并不是替代关系,而是有各自的适用场景:

针对文章开头提到的基础MAA和业务连续性MAA,基础MAA可以提供数据库级别的最大可用性,而业务连续性MAA则是在基础MAA之上,面向业务和最终用户所演进出的增强版MAA:

在Oracle自治数据库中,TAC就是默认配置的,提高了自治数据库的业务连续性:

2.确保业务连续性的高可用性要求
配置业务连续性时,需要指定数据库服务,这里需要特别注意我们要使用用户定义的数据库服务,而不要使用默认的服务。

笔者之前就遇到过有客户因为使用了默认服务而导致部分场景异常的问题,最终修正为用户自定义的服务之后,一切回归正常。
确认使用正确的服务之后,继续来看下应用连接串的连接最佳实践参考:

然后我们需要了解下FAN和排空的基础概念:

下面这张图非常关键,非常清晰的说明了AC/TAC的整个处理过程逻辑:

在第一个箭头指向的时间点,节点1首先进行排空操作,也就是继续处理节点1上未完成的事物,不再接受新的连接,此时新的连接都会连接节点2,当到达设置排空的超时时间窗口后,节点1上还未完成的事物将会被强制中断,然后到节点2上重放这些未完成的事物,整个过程,对应用程序或用户而言,是感知不到错误信息的。
3.如何有效使用TAC应对计划内维护和计划外停机
现实客户场景中,针对停机有两种情况:一是计划内的维护,会提前申请停机窗口;二是计划外的停机,因为各类软硬件故障导致突发的停机。有效使用TAC可以应对这两种情况:

此外,需要注意存在一些例外情况,无法启用回放功能:

4.当透明应用程序连续性不适合时该怎么办
前面提到,AC/TAC两种方式并不是替代关系,而是有各自的适用场景,当TAC不适合时,可以考虑AC是否能够满足你的需求,下面是两种方式的简单对比:

如果上面的对比表格还不够清晰,那么下面的指引会让你更容易的选择究竟是AC还是TAC更适合你的场景。

此外,针对使用套装应用软件的用户,也不用太过于着急,因为很多主流的套装软件都开始支持或部分支持AC/TAC,且不支持的部分也基本都在积极的开发过程中:

5.客户案例分享
最后,我们跟大家分享一例来自真实客户的实践,该客户使用Oracle 19c 透明应用连续性功能,通过简化应用程序工程师的弹性设计,提高了整个公司的应用程序弹性:

客户在整个实践过程中还总结了一些经验供大家参考:

客户的直观感受,在遵循了所有指导并满足要求后,发现TAC真是一项惊人的功能,给用户也带来了惊奇的感觉!如果屏幕前的你也想进一步为你的企业提升业务连续性,却还没有体验过AC/TAC功能的话,就赶快在自己的环境实际去测试感受下吧。
说明:本文是笔者在甲骨文云技术公众号发布的文章。
图片来源是依据OCW演讲者的英文PPT翻成中文的,另外图片中所有的字体,按要求,都是 先刷Noto sans SC regular、再刷Oracle Sans的方式统一调整优化过。
Oracle CloudWorld 2022 - 使用Oracle MAA实现应用程序的连续可用性的更多相关文章
- Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之ORACLE集群概念和原理(二)
ORACLE集群概念和原理(二) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...
- 【转】Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之ORACLE集群概念和原理(二)
阅读目录 目录 Oracle集群概念和原理 RAC概述 RAC 集成集群件管理 RAC 的体系结构 RAC 的结构组成和机制 RAC 后台进程 RAC 共享存储 RAC 数据库和单实例数据库的区别 ...
- 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 工作原理和相关组件(三)
RAC 工作原理和相关组件(三) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...
- 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 特殊问题和实战经验(五)
RAC 特殊问题和实战经验(五) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...
- ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档
ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档 2015-10-21 12:51 525人阅读 评论(0) 收藏 举报 分类: Oracle RA ...
- Part 1: Running Oracle E-Business Suite on Oracle Cloud
You can now run Oracle E-Business Suite on Oracle Cloud. EBS customers can take advantage of rapid ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:4.安装Oracle RAC FAQ-4.3.Oracle 集群节点间连通失败
1.检查节点连通性的错误 [grid@linuxrac1 grid]$ ./runcluvfy.sh stage -post hwos -n linuxrac1,linuxrac2 -verbose ...
- .net远程连接oracle数据库不用安装oracle客户端
asp.net远程连接oracle数据库不用安装oracle客户端的方法下面是asp.net连接远程Oracle数据库服务器步骤: 1.asp.net连接oracle服务器需要添加Sytem.Data ...
- .net远程连接oracle数据库不用安装oracle客户端的方法
.net远程连接oracle数据库不用安装oracle客户端的方法步骤: 1.添加Sytem.Data.OracleClient命名空间. 2.连接时需要ConnectionString字符串,出现在 ...
- oracle全托管驱动Oracle.ManagedDataAccess
oracle官方的托管驱动,发布只需一个6M多的dll,支持EF 支持分布式事务,使用步骤如下: 1,Download ODP.NET, Managed Driver .zip file to a d ...
随机推荐
- 聊聊MAUI、WinUI3和WPF的优势及劣势
今天在群里聊到WinUI3的学习及发展,还有他那堪比玩具的使用体验,正好梳理一篇关于WinUI3.MAUI和WPF优劣势,我整理的不是很好,所以又让ChatGPT在生成了一遍,感觉整体还可以.看完可以 ...
- Python 九九乘法表的多种实现方式
简介 九九乘法表是初学者学习编程的必要练手题目之一,因此各种语言都有对应的实现方式,而 Python 也不例外.在 Python 中,我们可以使用多种方式来生成一个简单的九九乘法表. 本文共介绍了七种 ...
- C++ Tips of the Week-01 string_view
1: string_view ref https://abseil.io/tips/1 函数参数需要是一个字符串的时候,通常的实现有以下几种: // C Convention void TakesCh ...
- 1. Mybatis 简介
1. Mybatis历史 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code.随着 ...
- React后台管理系统 02样式初始化,引入reset-css
上一篇中,我们已经对项目的整体结构进行了搭建,现在需要对不需要的东西进行删除,最后留下这些东西. 现在需要对全部的样式进行清除,使用命令导入依赖:npm i reset-css 然后在main.tsx ...
- 我在使用Winform7.0开发海康相机应用的时候系统悄无声息的退出
一.简介 1.说明一下 最近,我在开发一个玻璃幕墙检测的项目,这个项目需要使用到海康的相机系统.业务是这样的,相机按着指定的坐标,扫描玻璃幕墙的每块玻璃,通过算法查看是否有损坏的,如果有就发出报警信息 ...
- 你一定要用这个API管理工具,看完你就知道为什么了
以下是经常发生在程序员之间的对话: 小张:你知道为什么程序员不喜欢写文档? 小王:因为代码就是最好的文档啊!谁还需要写那些冗长的说明呢? 小张:那你知道为什么程序员也不喜欢别人不写文档吗? 小王:当然 ...
- unity协程(IEnumerator)开始和结束
快速阅览: 一.结束协程无效:协程方法需要单独存一份地址,在开始和结束不直接传入方法名,而是使用这份保存的地址进行开始和结束. 二.再次开启协程时少跑了几行代码:再次开始同一个方法名的协程时,不是从第 ...
- 2023年郑州轻工业大学校赛邀请赛myh
赛程回顾和赛后总结 赛程回顾 although 昨天刚复盘的,但还是记不住题号.就口胡下是那类型题吧. 刚开始时,我和队长先看的a,让jc去找签到题.我们看了下a,队长说可能dp,但还是感觉没啥思路就 ...
- 【Dotnet 工具箱】推荐一个使用 C# 开发的轻量级压测工具
你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具和组件,希望对您有用! 轻量级压测工具 LoadTestToolbox 是一个使用 C# 开发的轻量级压测工具,基于 .NE ...