数据库管理-第220期 Oracle的高可用-03(20240715)

数据库管理220期 2024-07-15

  • 数据库管理-第220期 Oracle的高可用-03(20240715)
    • 1 AC/TAC
    • 2 配置Service
    • 3 用户权限
    • 4 端口开放
    • 总结

数据库管理-第220期 Oracle的高可用-03(20240715)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database(Oracle与MySQL)
PostgreSQL ACE Partner
10年数据库行业经验,现主要从事数据库服务工作
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP、年度墨力之星,ITPUB认证专家、专家百人团成员,OCM讲师,PolarDB开源社区技术顾问,HaloDB外聘技术顾问,OceanBase观察团成员,青学会MOP技术社区(青年数据库学习互助会)技术顾问
圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著名社恐(社交恐怖分子)
公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭

其实吧这一期的内容才是我写Oracle高可用系列主要想写的,前面通过MAA架构介绍了Oracle的各种基于物理复制或逻辑复制的高可用架构,而在系列第二期中介绍了GDS。虽然对业务是透明的,但是GDS运行在数据库架构之外如果出现异常影响较大,同时GDS本身需要一定的学习和维护成本。

1 AC/TAC

AC,Application Continuity,可译作业务连续性,是Oracle 12c引入的的一项功能,是Oracle Real Application Clusters (RAC)、Oracle RAC One Node 和 Oracle Active Data Guard 选件的一个特性。仅需进行极少的配置变更,无需修改业务应用代码即可实现在计划内维护和计划外事件发生事务中断后,通过恢复正在进行的数据库会话,对最终用户和应用程序屏蔽数据库级别的中断,提高了依赖Oracle数据库的应用程序的容错能力。这样,在应用看来中断只是一次稍有延迟的执行。通过AC,在补丁滚动升级、参数变更重启甚至是数据出现崩溃时,应用程序也不受影响。
TAC,Transparent Application Continuity,透明应用连续性,是TAF(Transparent Application Failover,透明应用程序故障转移,可以重放/继续查询)的延续。会透明地跟踪和记录会话和事务状态,以便在出现可恢复的中断之后恢复数据库会话。在TAF仅支持SELECT的基础上,扩展支持INSERT、UPDATE、DELETE操作。在不需要修改应用程序代码的情况下,允许为您的应用程序启用透明的应用程序连续性。应用程序透明性和故障转移是通过使用状态跟踪信息来实现的,这些信息在应用程序发出用户调用时被捕获。能够为数据库的日常维护提供方便,有效消除应用服务的停机时间顾虑能够有效应对数据库实例的机器、网卡、系统等突发异常事件;甚至能够让应用端透明地实现数据中心灾备冗余架构下的主备中心切换。

2 配置Service

下面是AC和TAC的在Service配置上的区别:
image.png
这里以TAC为例按照下面的RAC集群参考进行Service配置:
image.png

srvctl add service -db dbaas -pdb PDB1 -service tac_srv -preferred dbaas1,dbaas2 -available dbaas3,dbaas4 -failover_restore AUTO -failoverretry 30 -failoverdelay 10 -commit_outcome TRUE -failovertype AUTO -replay_init_time 1800 -retention 86400 -notification TRUE -drain_timeout 300 -stopoption IMMEDIATEsrvctl start service -db dbaas -service tac_srv

Service配置完成后pdb1对应的服务tac_srv会在dbaas1和dbaas2上运行,当dbaas1或dbaas2出现异常时,会根据节点负载情况从dbaas3或dbaas4启动对应服务,以满足配置的节点数量要求,避免出现性能问题。

3 用户权限

有些数据库函数在每次调用的时候都会返回新的值,这些函数称为可变函数,包括sysdate、systimestamp、local_timestamp、current_timestamp、sys_guid、sequence.nextval。
如果一个未完成的事务是由PL/SQL语句块组成,并且语句块中用到了可变函数,那么当 TAC在可用实例上尝试重放这个事务时,可变函数的返回值是变化了的,那么这个重放就会被拒绝。为 了在重放时能够使用原来的返回值,需要在数据库端对可变函数或对象赋KEEP权限:

GRANT KEEP DATE TIME TO [db user];
GRANT KEEP SYSGUID To [db_user];
ALTER SEQUENCE [sequence_name] KEEP;
--如果sequence还被其他数据库用户使用 ,  需要给这些用户赋与KEEP权限
GRANT KEEP SEQUENCE ON [db_user.sequence_name]TO [other_user];

4 端口开放

由于在srvctl创建服务时,添加了-notification TRUE参数,开启了FAN通知功能,在开通防火墙策略的时候,除了开放一般Oracle Net Listener标准监听(默认为1521/tcp)对应的端口以外,还需要开启Oracle Notification Services (ONS)服务(默认为6200/tcp)的端口。以确保应用程序能正确、及时的接受到来自于FAN (Fast Application Notification)的关于集群情况(如节点维护、故障、负载等)事件的通知。

总结

本期讲解了在RAC集群上配置TAC的操作及相关事项,下一期将讲解应用侧配置相关内容。
老规矩,知道写了些啥。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/45367.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Modbus - 笔记

1 Modbus Poll/Slave 模拟器使用教程 Modbus Poll/Slave 模拟器使用教程_modbus poll 使用教程-CSDN博客 https://item.jd.com/67488830087.html

Node.js 爬虫开发实战:构建一个高效、优雅的网络数据抓取器

在大数据时代,从网页上自动抓取数据的需求日益增长。Node.js,以其异步非阻塞I/O模型,成为了构建高性能网络爬虫的理想选择。本文将引导你如何使用Node.js,结合axios和cheerio两个流行库,创建一个能够从目标网站抓取信息…

51单片机10(蜂鸣器介绍)

一、蜂鸣器介绍: 1、蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于电子产品中作为发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器。 (1)压电式蜂鸣器,它主要由多谐的一个增胀器…

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(八)-通过无人机进行无线接入

引言 本文是3GPP TR 22.829 V17.1.0技术报告,专注于无人机(UAV)在3GPP系统中的增强支持。文章提出了多个无人机应用场景,分析了相应的能力要求,并建议了新的服务级别要求和关键性能指标(KPIs)。…

电脑出现错误——找不到msvcp140.dll无法继续执行代码,有效解决错误dll文件

msvcp140.dll是一个属于 Microsoft Visual C Redistributable for Visual Studio 2015 的 DLL 文件。这个文件是许多Windows应用程序(尤其是使用 C 开发的程序)所必需的,因为它包含了标准 C 库的函数实现,用于处理数学运算、数据转…

【React Hooks原理 - useRef】

概述 在Function Component项目中当我们需要操作dom的时候,第一时间想到的就是使用useRef这个Hook来绑定dom。但是这个仅仅是使用这个Hook而已,为了更好的学习React Hooks内部实现原理,知其所以然。所以本文根据源码从useRef的基础使用场景一…

使用shell脚本打印99乘法表

一、简介 前一段时间在旧电脑上安装 antiX 23.1 操作系统,遇到一些问题需要使用shell脚本解决问题,所以专门学习了几天,打印99乘法表是其中的一个练习作业。 二、学习Linux可行的几种方式 虚拟机安装Linux进行学习直接双系统安装在实体电脑…

Ubuntu新系统的使用

1.安装显卡驱动 直接到软件与更新里面,就是一个A字图标的那个软件打开,到附加驱动里选择。要选择“server driver”的,选择后确认即可。 然后输入:nvidia-sim查看 别的方法太复杂,这个方法我亲测了两台电脑&#xff…

kubebuilder入门

1. 安装kubebuilder brew install kubebuilder 2. 需求描述 开发一个zk operator。 cr定义为ZooKeeperCluster 3. 开发过程 3.1 创建一个空的文件夹zk-operator mkdir zk-operator 3.2 进入该文件夹 cd zk-operator 3.3 执行初始化 kubebuilder init --domain my.doma…

MWA(Modern Web App)初学那些事-2-Basic HTML CSS

初学MWA(Modern Web App)那些事-2-Basic HTML & CSS 目录 初学MWA(Modern Web App)那些事-2-Basic HTML & CSS前言一、本节学习目标二、HTML基础内容2.1关键元素2.4 Scripts 三、CSS 基础内容3.1 级联样式表-用于设置网页样式和布局3.2 CSS规则语…

springcloud使用微服务的搭建

微服务的搭建 1.配置对应信息 Springboot 、springcloud、springcloud alibaba对应关系 https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E 2.pom.xml的配置 2.1 总项目pom.xml引入依赖 <parent><groupId>org.sprin…

阿里通义音频生成大模型 FunAudioLLM 开源

简介 近年来&#xff0c;人工智能&#xff08;AI&#xff09;技术的进步极大地改变了人类与机器的互动方式&#xff0c;特别是在语音处理领域。阿里巴巴通义实验室最近开源了一个名为FunAudioLLM的语音大模型项目&#xff0c;旨在促进人类与大型语言模型&#xff08;LLMs&…

vue3在 setup 中访问路由和当前路由

报错信息&#xff1a; Cannot read properties of undefined (reading $router) 原因&#xff1a; 因为我们在 setup 里面没有访问 this&#xff0c;所以我们不能直接访问 this.$router 或 this.$route。 解决方案&#xff1a; 作为替代&#xff0c;我们使用 useRouter 和…

Oracle字符集修改

提示 Oracle数据库默认的字符集编码为US7ASCII&#xff0c;这个编码是不支持中文的&#xff0c;如果想要在数据库存储中文&#xff0c;就需要修改编码为ZHS16GBK或UTF-8 编码和字符集是一个意思&#xff0c;只是叫法不一样而已 前置条件 修改字符集的前提是知道我们现在用的是什…

跳妹儿学编程之ScratchJr(9):程序控制积木篇—短跑比赛

跳妹儿学编程之ScratchJr(7)&#xff1a;动作积木篇—爸爸去散步 跳妹儿学编程之ScratchJr(8)&#xff1a;外观积木篇—捉迷藏 跳妹儿学编程之ScratchJr(9)&#xff1a;程序控制积木篇—短跑比赛 引言 在之前的一篇文章中&#xff0c;我们了解了ScratchJr的动作积木和外观积…

std::getline

std::getline 是 C 标准库中的一个函数&#xff0c;用于从输入流中读取一行数据并存储到字符串中。它通常用于读取用户输入或从文件中读取文本数据。以下是 std::getline 的一般用法和说明&#xff1a; #include <iostream> #include <string>int main() {std::st…

skywalking 请求链路采样设置和原理

目标 skywalking 默认情况会采集大量 trace 数据&#xff0c;这样可以比较全的追踪所有请求调用链路的请求&#xff0c;但同时对 ES 存储资源要求非常高&#xff0c;需要我们投入很大的存储节点才可以。那么有没有一种采样的请求上报的机制呢&#xff1f;答案是有的&#xff0…

阿里云ECS服务器安装jdk并运行jar包,访问成功详解

安装 OpenJDK 8 使用 yum 包管理器安装 OpenJDK 8 sudo yum install -y java-1.8.0-openjdk-devel 验证安装 安装完成后&#xff0c;验证 JDK 是否安装成功&#xff1a; java -version设置 JAVA_HOME 环境变量&#xff1a; 为了确保系统中的其他应用程序可以找到 JDK&…

星火智能体创建指南,星火大模型智能体创建教程

一、什么是星火助手 星火助手是基于讯飞星火认知大模型&#xff0c;面向用户使用场景&#xff0c;打造的高效生产力工具。通过设置结构化的指令模板&#xff0c;用户即可完成助手功能设定&#xff0c;每个助手在对话的模式下能够快速满足场景需求。同时支持助手模板、数据集、…

Spring boot 2.0 升级到 3.3.1 的相关问题 (一)

文章目录 Spring boot 2.0 升级到 3.3.1 的相关问题 &#xff08;一&#xff09;拦截器Interceptor的变动问题介绍解决方案 WebMvcConfigurerAdapter 自定义Mvc配置问题介绍解决方案 Spring boot 2.0 升级到 3.3.1 的相关问题 &#xff08;一&#xff09; 拦截器Interceptor的…