数据库管理-第217期 Oracle的高可用-02(20240704)
数据库管理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架构


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 负载均衡

3.2 只读服务失败转移


3.3 多主复制


3.4 ADG/OGG负载均衡

总结
本期简单介绍了GDS,全局数据服务,可以用于应用连续访问数据库。
老规矩,知道写了些啥。
相关文章:
数据库管理-第217期 Oracle的高可用-02(20240704)
数据库管理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 多主复制…...
搭建基础库~
前言 项目中会用到工具库、函数库以及一些跟框架绑定的组件,如果这些基础模块每个项目都实现一套,维护起来那真的头大,你说呢😉 搭建流程 准备工作 创建文件夹myLib、安装Git以及pnpm 目录大概就系这样子: myLib ├…...
深入了解Linux中的udhcpc:动态主机配置协议客户端
目录 什么是udhcpc?安装udhcpc配置网络接口使用udhcpc获取IP地址配置静态IP地址自定义udhcpc脚本高级选项udhcpc常见问题及排查方法1. 无法获取IP地址2. DNS配置不正确3. IP地址冲突4. 无法连接到默认网关5. 无法执行自定义脚本 在Linux系统中,网络配置是…...
O2OA(翱途) 开发平台之HTTP端口规划
O2OA(翱途) 开发平台[下称O2OA开发平台或者O2OA]采用相对灵活的系统架构,支持三种服务器运行的方式。本篇主要阐述合并服务运行独立服务运行代理端口运行三种服务器运行方式。 一、先决条件: 1、O2Server服务器正常运行,系统安装部署请参考文…...
以创新思维驱动下的盲盒小程序:重塑用户体验
一、引言 在数字化浪潮的推动下,小程序以其便捷、高效、无需下载安装的特性,迅速成为移动互联网的新宠。其中,盲盒小程序以其独特的玩法和惊喜感,吸引了大量用户的关注和参与。然而,随着市场竞争的加剧,如…...
设计资料:520-基于ZU15EG 适配AWR2243的雷达验证底板 高速信号处理板 AWR2243毫米波板
基于ZU15EG 适配AWR2243的雷达验证底板 一、板卡概述 本板卡系北京太速科技自主研发,基于MPSOC系列SOC XCZU15EG-FFVB1156架构,搭载两组64-bit DDR4,每组容量32Gb,最高可稳定运行在2400MT/s。另有1路10G SFP光纤接口、1路40G…...
晋级国赛!卓翼飞思技术引领,助力辽宁赛区机器人及人工智能大赛圆满收官
近日,第二十六届中国机器人及人工智能大赛—辽宁赛区选拔赛在大连海事大学圆满收官。本次大赛吸引来自辽宁工业大学、大连理工大学等知名高校的10余支队伍参与,充分展现各高校在机器人及人工智能领域的深厚实力和创新精神。其中,由卓翼飞思实…...
react ts 封装3D柱状图,支持渐变
留档,以防忘记 bar3D.tsx import React, { useEffect, useRef, useState } from react; import * as echarts from echarts; import echarts/lib/chart/bar; import echarts/lib/chart/pictorialBar; import echarts/lib/component/grid; import echarts/lib/comp…...
css---before和after伪元素
1.什么是伪元素 伪元素不是真正的页面元素,html没有对应的元素,但是其所有用法和表现行为与真正的页面元素一样,可以对其使用如页面元素一样的CSS样式,表面上看上去貌似是页面的某些元素来展现,实际上CSS样式展现的行…...
下载后端返回的图片,而不是打开图片
使用 window.location.href 和 window.open 后都是打开图片,原因是,当浏览器发现是浏览器支持的文件类型,例如 jpg、png、svg 等,默认是浏览器打开。 解决 fetch createObjectURL fetch 转换为 blob 对象 createObjectURL() 静…...
ELISA实验前,需要做好哪些准备?
进行ELISA试剂盒实验前,需要进行周密的准备工作以确保实验的顺利进行和实验的准确性。那么,具体应该做哪些准备呢?欣博盛生物为您总结了一些关键的准备工作步骤: 1. 阅读说明书 仔细阅读ELISA试剂盒的说明书,了解试剂…...
浅谈 Linux 中的 core dump 分析方法
文章目录 一、什么是 core dump二、发生 core dump 的原因1. 空指针或非法指针引起 core dump2. 数组越界或指针越界引起的 core dump3. 数据竞争导致 core dump4. 代码不规范 三、core dump 分析方法1. 启用 core dump2. 触发 core dump2-1. 因空指针解引用而崩溃2-2. 通过 SI…...
自研直播系统-直播系统实战
文章目录 1 流媒体基础本文教程下载地址1.1 流媒体1.2 流式传输方式1.2.1 顺序流式传输1.2.2 实时流式传输 1.3 流媒体传输协议1.3.1 rtmp协议1.3.2 HLS协议1.3.3 RTSP协议1.3.4 视频流的对比 1.4 视频编码(codec)1.5 分辨率的规范分辨率簡介:1.5.2 分辨率單位 1.6 …...
python数据分析入门学习笔记
目录 一、 数据分析有关的python库简介 (一)numpy (二)pandas (三)matplotlib (四)scipy (五)statsmodels (六)scikit-learn 二、 数据的导入和导出 三、 数据筛选 四、 数据描述 五、 数据处理 六、 统计分析 七、 可视化 八、 其它是编译过程中的一个阶段,它在编译器进行实际编译之前对源代码进行处理。预处理器提供了一系列的指令,用于条件编译、文件包含、宏定义等操作。以下是一些常见的预处理器指令: 宏定义ÿ…...
MySQL—创建查看删除备份恢复数据库
创建数据库 创建数据库 LLF_DB01CREATE DATABASE LLF_DB01删除数据库DROP DATABASE LLF_DB01创建一个使用utf8字符集的数据库并带校对规则的数据库CREATE DATABASE hsp_db03 CHARACTER SET utf8 COLLATE utf8_bin 查看、删除数据库 显示所有的数据库SHOW DATABASES显示数据库…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...
【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...
Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...
Vue ③-生命周期 || 脚手架
生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...
redis和redission的区别
Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...
