数据库管理-第217期 Oracle的高可用-02(20240704)

news2024/11/19 14:26:12

数据库管理217期 2024-07-04

  • 数据库管理-第217期 Oracle的高可用-02(20240704)
    • 1 GDS简介
    • 2 GDS架构
      • 2.1 全局数据服务池
      • 2.2 全局数据服务域
      • 2.3 全局服务管理
      • 2.4 全局数据服务目录
      • 2.5 Oracle通知服务
    • 3 GDS简图
      • 3.1 负载均衡
      • 3.2 只读服务失败转移
      • 3.3 多主复制
      • 3.4 ADG/OGG负载均衡
    • 总结

数据库管理-第217期 Oracle的高可用-02(20240704)

作者:胖头鱼的鱼缸(尹海文)
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数据库其实提供了多种方案来解决应用连续性的问题,本期介绍第一个,GDS。最早接触GDS其实是在Oracle Sharding之中,GDS可以用于Sharding也可以用于解决应用连续性的问题。

1 GDS简介

数据库是整合信息技术基础设施以提高业务效率的关键部分。大多数数据库需要维护本地和远程副本,原因为:

  • 业务连续性和灾难恢复
  • 高可用性
  • 针对本地客户端的性能优化
  • 内容本地化和缓存
  • 遵守当地法律

在任何一组数据库副本中,由于高负载或高网络延迟,一些数据库可能查询响应时间较慢,而能够提供较快响应时间的其他数据库可能利用不足。跨数据库副本的最佳查询性能和资源利用率需要一个工作负载管理解决方案,该解决方案可以跨副本提供客户端连接和工作负载请求的动态负载平衡。
许多企业使用自主开发的解决方案来跨数据库副本进行工作负载管理。这些解决方案无法提供关键功能,如运行时负载平衡和副本之间的可靠数据库服务故障切换,因为它们没有与Oracle软件完全集成。
Oracle数据库提供了一个强大的工作负载管理功能,称为数据库服务(Database services)。数据库服务是一个或多个数据库实例的命名表示。数据库服务允许您对数据库工作负载进行分组,确保客户端请求路由到提供服务的最佳实例,并在发生计划内或计划外实例中断时,通过透明地将客户端连接故障转移到幸存实例来提供高可用性。
Oracle Global Data Services(GDS,全局数据服务)通过被称为Global Data Services Configuration(全局数据库服务配置)实现跨副本数据库的Oracle数据库服务模型。
全局数据服务配置对于数据库客户端来说就像一个虚拟的多实例数据库。它通过全局服务提供客户端访问,全局服务在功能上类似于单实例或Oracle Real Application Clusters(Oracle RAC)数据库提供的本地数据库服务。本地和全局服务都提供负载平衡、高可用性和资源管理。全局服务和本地服务之间的本质区别在于,全局服务跨越多个数据库的实例,而本地服务跨越单个数据库的实例。
全局数据服务配置及其全局服务是使用GDSCTL命令行界面创建和管理的,该命令行界面类似于用于管理Oracle RAC数据库及其服务的SRVCTL命令行接口。
全局数据服务配置可以由托管在异构或非异构服务器平台上的多实例或单实例Oracle数据库的任意组合组成。Oracle Data Guard、Oracle GoldenGate或任何其他数据库复制技术可用于同步全局数据服务配置中的数据库。
Global Data Services是跨复制数据库进行自动工作负载管理的高效解决方案,无论是与许多广泛分布的数据库和客户端一起使用,还是与单个数据库、本地副本和少数客户端一起使用。

2 GDS架构

image.png
image.png

2.1 全局数据服务池

Global Data Services pool(全局数据服务池)是GDS配置中由一个数据库命名的自己提供的一组唯一的全局服务,同时属于同一个管理域。将GDS配置数据库划分为多个池简化了服务管理,并允许由不同的管理员管理每个池,从而提供更高的安全性。

2.2 全局数据服务域

Global Data Services region(全球数据服务域)是GDS配置中数据库和数据库客户端的命名子集,它们共享网络邻近度,使得域成员之间的网络延迟通常低于不同域成员之间。一个域通常对应于局域网或城域网(LAN或MAN)。例如,托管一个或多个GDS配置数据库的数据中心和地理位置接近该数据中心的数据库客户端可能属于同一域。
一个域可以包含多个全局数据服务池,并且这些池可以跨越多个域。
出于高可用性的目的,GDS配置中的每个域都应该具有指定的buddy region(伙伴域),该域包含Global Service Managers(全局服务管理),如果本域中的全局服务管理变得不可用,则伙伴域的全局服务管理可以提供对GDS配置的持续访问。

2.3 全局服务管理

Global Service Managers(全局服务管理)是全局数据服务的核心组件,在GDS配置中提供服务级别的负载平衡、故障切换和服务的集中管理。全局数据服务客户端使用全局服务管理来执行所有GDS配置操作。
全局服务管理器类似于Oracle RAC数据库中的远程监听,不同之处在于全局服务管理程序为多个数据库提供服务。全局服务管理执行以下操作:

  • 充当域监听,客户端使用该监听连接到全局服务
  • 为客户端提供连接时负载平衡
  • 管理跨GDS配置域的全局服务
  • 从GDS配置中的数据库收集性能指标,并监控配置域之间的网络延迟
  • 创建运行时负载平衡建议并将其发布到客户端连接池
  • 监控数据库实例和全局服务的可用性,并在失败时通知客户端。

全局服务管理与一个且仅与一个GDS配置相关联。GDS配置中的每个域必须至少有一个全局服务管理。建议在每个域配置多个全局服务管理,以提高可用性和性能。GDS配置中的每个全局服务管理都管理该配置支持的所有全局服务。

2.4 全局数据服务目录

Global Data Services Catalog(全局数据服务目录)是存储全局数据服务配置和该配置提供的所有全局服务的配置数据的存储库。
一个目录只与一个GDS配置相关联。目录必须位于12c或更高版本的数据库中,并且该数据库可以位于相关GDS配置的内部或外部。对于大规模GDS配置,建议将GDS目录托管在GDS配置中的数据库之外。GDS目录可以与RMAN或Oracle Enterprise Manager的目录一起托管。
Oracle强烈建议使用Oracle RAC、Oracle Data Guard和Oracle Clusterware等高可用性技术来增强全局数据服务目录所在数据库的可用性。

2.5 Oracle通知服务

GDS客户端使用Oracle Notification Service(ONS,Oracle通知服务)接收来自全局服务管理的运行时负载平衡建议和高可用性事件。
Oracle通知服务(ONS)服务器与每个全局服务管理器位于同一位置。一个域内的所有此类ONS服务器都是互连的。全局服务的客户端在其域及其伙伴域内订阅ONS服务器网络,并从这些ONS服务器网接收FAN通知。

3 GDS简图

3.1 负载均衡

image.png

3.2 只读服务失败转移

image.png
image.png

3.3 多主复制

image.png
image.png

3.4 ADG/OGG负载均衡

image.png

总结

本期简单介绍了GDS,全局数据服务,可以用于应用连续访问数据库。
老规矩,知道写了些啥。

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

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

相关文章

7.1 动态规划背包问题综述

动态规划中的背包问题是一类经典的优化问题,主要涉及到在给定的限制条件下(如背包容量),如何选择物品集合以达到某种最优目标(如价值最大)。这类问题通常可以细分为几种类型,包括0-1背包问题、完…

Android的图书交易APP-计算机毕业设计源码25753

摘 要 在数字化与移动互联网迅猛发展的今天,人们对于图书的需求与消费方式也在悄然改变。为了满足广大读者对图书的热爱与追求,我们倾力打造了一款基于Android平台的图书交易APP。这款APP不仅汇聚了海量的图书资源,提供了便捷的交易平台&…

.Net Core + DDD基础分层

基础设施层 基础设施层使用的相关知识:Code First ,EF Core,Autofac依赖注入,仓储模式的实现接口,领域服务的实现接口,缓存,以及各种基础工具类 一,Code First:使用Cod…

大学生竞赛管理系统-计算机毕业设计源码37276

大学生竞赛管理系统的设计与实现 摘 要 随着教育信息化的不断发展,大学生竞赛已成为高校教育的重要组成部分。传统的竞赛组织和管理方式存在着诸多问题,如信息不透明、效率低下、管理不便等。为了解决这些问题,提高竞赛组织和管理效率&#x…

新书速览|UML 2.5基础、建模与设计实践

《UML 2.5基础、建模与设计实战》 本书内容 UML是以面向对象图形的方式来描述任何类型的系统,应用领域非常广泛,其中常用的是建立软件系统的模型。《UML 2.5基础、建模与设计实践》基于draw.io开源免费软件,全面讲解UML 2.5的基本概念和建模…

SpringCloud集成Oauth2.0看完这个基本就理解原理了

目录 1.技术栈准备工作 2. 模块架构介绍 3.网关模块(gateway) 3.1 网关模块(gateway) 3.2 附上主要依赖包 3.3 bootstrap 相关配置 3.4 gateway.yaml 3.5 UserAuthGlobalFiter 全局拦截器配置 4.授权认证模块(auth) 4.1 启用web安全认证&#xff…

移动硬盘传输中断后无法识别:深度解析与数据救援指南

在日常的数据存储与传输过程中,移动硬盘凭借其大容量、便携性成为众多用户的首选。然而,当我们在复制或移动大量数据时遭遇传输中断,随后发现移动硬盘无法被电脑识别,这无疑是一场数据安全的紧急警报。此情此景,不仅影…

RestTemplate、MockMVC、Swagger

rest代码风格 硬编码的部分在实际开发中都是会替换成枚举对象 SpringMVC会自动把json格式的post请求转化为对应接收的 对象 响应请求时,也会自动把 对象转化为 json格式的 RestTemplate 浏览器的地址栏只能提供get请求访问后端,如果要使用post方式发送…

400G SR4和800G SR8光模块在AI集群中的应用

人工智能(AI)技术的快速发展下,AI集群的计算能力和数据传输需求不断提升。为了满足这一需求,光模块技术也在不断进步。高速率光模块作为新一代高速光通信解决方案,正在逐步应用于AI集群中,为其提供更高效、…

Python函数缺省参数的 “ 坑 ” (与C++对比学习)

我们都知道Python函数的缺省参数可以降低我们调用函数的成本,但是一般我们的缺省参数都是不可变对象,如果是可变对象,我们对其多次调用会发生什么呢? def func(arr[]):arr.append(Hello)print(arr)func() func() func() 这貌似…

phpcms 升级php8.3.8

windows 2008 server 不支持php8.3.8,需升级为windows 2012 1.下载php8.3.8 PHP8.3.9 For Windows: Binaries and sources Releases 2.配置php.ini (1.)在php目录下找到php.ini-development文件,把它复制一份,改名为php.ini (2.)修改php安装目录 根…

盘点2024年六大好用的安全管理软件!

“安全管理”始终是国家和社会关注的焦点,因为安全管理包括了人身安全、企业运营安全、设备稳定以及社会和谐等多个维度。在当前的社会和技术背景下,企业为追求降本增效且能更加高效的管理安全问题,也在不断探索和尝试各种安全管理软件。我凭…

游戏AI的创造思路-技术基础-计算机视觉

让游戏的AI具备“眼睛”和“视觉”,就是通过计算机视觉的方法进行的。现在,越来越多的游戏,特别是动捕类游戏都在使用这个方法。当然,计算机视觉不仅仅用于游戏,越来越多的应用使用到这个技术 目录 1. 定义 2. 发展历…

【面向就业的Linux基础】从入门到熟练,探索Linux的秘密(九)-git(1)

Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。 文章目录 前言 一、git是什么 二、git基本概念 三、git基本命令 总结…

02-android studio实现下拉列表+单选框+年月日功能

一、下拉列表功能 1.效果图 2.实现过程 1&#xff09;添加组件 <LinearLayoutandroid:layout_width"match_parent"android:layout_height"wrap_content"android:layout_marginLeft"20dp"android:layout_marginRight"20dp"android…

vue配置sql规则

vue配置sql规则 实现效果组件完整代码父组件 前端页面实现动态配置sql条件&#xff0c;将JSON结构给到后端&#xff0c;后端进行sql组装。 这里涉及的分组后端在组装时用括号将这块规则括起来就行&#xff0c;分组的sql连接符&#xff08;并且/或者&#xff09;取组里的第一个。…

细说MCU的ADC模块单通道连续采样的实现方法

目录 一、工程依赖的硬件及背景 二、设计目的 三、建立工程 1、配置GPIO 2、选择时钟源和Debug 3、配置ADC 4、配置系统时钟和ADC时钟 5、配置TIM3 6、配置串口 四、代码修改 1、重定义TIM3中断回调函数 2、启动ADC及重写其回调函数 3、定义用于存储转换结果的数…

30斤用什么快递便宜?大件物品怎么寄划算省钱?

大学生小李最近因为毕业要搬家&#xff0c;不得不把一堆书籍、衣服和一些生活用品寄回家。作为一个精打细算的“穷学生”&#xff0c;小李可是不愿意在快递费上花冤枉钱的。于是&#xff0c;他开始研究各种寄快递省钱的方法&#xff0c;今天我们就来看看小李是怎么操作的。一、…

【Python画图-seaborn驯化】一文学会seaborn画散点图scatterplot、swarmplot技巧

【Python画图-seaborn驯化】一文学会seaborn画散点图scatterplot、swarmplot 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 免费获取相关内…

用免费的可视化工具制作3D智慧城市大屏,融合数字孪生,引领数据升级

在如今数据驱动的时代&#xff0c;越来越多的场景中都有可视化大屏的身影&#xff0c;许多企业和政府部门也从常规的二维看板渐渐地转向更加炫酷&#xff0c;立体的3D可视化大屏。3D可视化大屏成为了展示复杂数据、实时监控业务动态的重要工具。本文将详细介绍如何使用免费的数…