数据库管理-第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架构

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.mzph.cn/news/866435.shtml

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

相关文章

项目基础知识

1.JDBC编程和MySQL数据库 数据库的连接(以前写qq项目时的代码) package com.wu.Util; import java.sql.*; public class JDBCUtil {private static JDBCUtil jdbcUtil null;private JDBCUtil() {}public static JDBCUtil getJdbcUtil() {if (jdbcUtil…

剧本杀小程序:助力商家发展,提高游戏体验

近几年,剧本杀游戏已经成为了当下年轻人娱乐的游戏社交方式。与其他游戏相比,剧本杀游戏具有强大的社交性,玩家在游戏中既可以推理玩游戏,也可以与其他玩家交流互动,提高玩家的游戏体验感。 随着互联网的发展&#xf…

Vue通过Key管理状态

Vue通过Key管理状态 Vue 默认按照“就地更新”的策略来更新,通过 v-for 渲染的元素列表。当数据项的顺序改变时,Vue 不会随之移动 DOM 元素的顺序,而是就地更新每个元素,确保它们在原本指定的索引位置上渲染。为了给 Vue 一个提示…

VIO(Virtual_Input_Output) IP 使用笔记

VIO(Virtual Input/Output)IP 核,即虚拟输入输出 IP,可以通过调试界面模拟 IO 的变化,这可以在板子没有按键等外设、或外设不足的情况下,来模拟外部输入。然而网上关于 VIO 的教程都说的不是很清楚&#xf…

html高级篇

1.2D转换 转换(transform)你可以简单理解为变形 移动:translate 旋转:rotate 缩放:sCale 移动:translate 1.移动具体值 /* 移动盒子的位置: 定位 盒子的外边距 2d转换移动 */div {width…

【python】OpenCV—Nighttime Low Illumination Image Enhancement

文章目录 1 背景介绍2 代码实现3 原理分析4 效果展示5 附录np.ndindexnumpy.ravelnumpy.argsortcv2.detailEnhancecv2.edgePreservingFilter 1 背景介绍 学习参考来自:OpenCV基础(24)改善夜间图像的照明 源码: 链接&#xff1a…

Linux 文件系统以及日志管理

一、inode 与block 1. inode 与block详解 在文件存储硬盘上,硬盘的最小存储单位叫做“扇区”,每个为512字节。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取…

PyMuPDF 操作手册 - 09 API - Page属性方法和简短说明

文章目录 一、Page属性方法和简短说明一、Page属性方法和简短说明 https://pymupdf.readthedocs.io/en/latest/page.html Method/Attribute属性方法Short Description简短说明Page.add_caret_annot()仅限 PDF:添加插入符号注释Page.add_circle_annot()仅限 PDF:添加圆圈…

微服务粒度难题:找到合适的微服务大小

序言 在微服务架构风格中,微服务通常设计遵循SRP(单一职责原则),作为一个独立部署的软件单元,专注于做一件事,并且做到极致。作为开发人员,我们常常倾向于在没有考虑为什么的情况下尽可能地将服…

头歌资源库(20)最大最小数

一、 问题描述 二、算法思想 使用分治法,可以将数组递归地分割成两部分,直到数组长度为1或2。然后比较这两部分的最大、次大、次小、最小数,最终得到整个数组中的最大两个数和最小两个数。 算法步骤如下: 定义一个函数 findMinM…

Java - 程序员面试笔记记录 实现 - Part3

4.1 线程与进程 线程是程序执行的最小单元,一个进程可以拥有多个线程,各个线程之间共享程序的内存空间以及一些进程级资源,但拥有自己的栈空间。 4.3 Java 多线程 方法一:继承 Thread 类,重写 run 方法;…

二分法查找有序表的通用算法(可查链表,数组,字符串...等等)

find_binary函数 注意事项: (1)你设计的迭代器模板中必须有using value_type T,且有加减运算功能,其本上能与C标准库std中一样。 (2)集合必须是有序的。 下面是函数代码: /// &…

一次建表语句触发的ORA-600报错分析

​ 某次在客户Oracle数据库执行一条建表语句时,报出ORA-600错误。 报错代码如下: ORA-00600: 内部错误代码, 参数: [rwoirw: check ret val], [], [], [], [], [], [], [], [], [], [], [] 相关的建表语句如下: ​ 在报错发生后,…

Android studio开发入门教程详解(复习)

引言 本文为个人总结Android基础知识复习笔记。如有不妥之处,敬请指正。后续将持续更新更多知识点。 文章目录 引言UITextView文本基本用法实际应用常用属性和方法 Button按钮处理点击事件 EditText输入框基本属性高级特性 ImageView图片ImageView的缩放模式 Prog…

Qt中udp指令,大小端,帧头帧尾实际示例

前言 虽然QT中,udp发送和接收,其实非常简单,但是实际工作中,其实涉及到帧头帧尾,字节对齐,以及大小端序的问题。比如网络中,正规的一般都是大端序,而不是小端序,大多数的…

不到 5 元的随身 WiFi 刷 Debian 系统 做轻量家庭服务器

本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 前不久在某宝均价 5 元买了两个随身 WiFi,拆机看了看丝印都是 MSM8916 ,正好是红米 2 同款的骁龙 410 的芯片,可以刷个 Debian 当作家庭服务器来跑一些轻量的服务。 不过手气不是很好,两个都是 512M + 4G 的配置…

单机安装基于LNMP结构的WordPress网站 web与数据库服务分离

网站的类型: Jave:LNMT PHP:LNMP Python: LNMU 项目部署: 1.项目的类型(项目的开发语言) 2.项目运营平台的技术选择 3.尽快让项目运行起来 all in one部署 4. 架构的优化 配置ansible管理环境 配置nginx 配置数据库服务…

day11_homework_need2submit

Homework 编写—个将ts或mp4中视频文件解码到yuv的程序 yuv数据可以使用如下命令播放: ffplay -i output yuv-pix_fmt yuv420p-s 1024x436 要求: ffmpeg解析到avpacket并打印出pts和dts字段完成解码到avframe并打印任意字段完成yuv数据保存 // teminal orders on bash cd ex…

11.SQL注入-盲注基于(base on boolian)

SQL注入-盲注基于boolian案例利用 首先总结一下sql语句中的函数意思 #查看当前所在的数据库 mysql> select database(); ------------ | database() | ------------ | pikachu | ------------ 1 row in set (0.00 sec)#函数substr里1是从第几位开始取字符,2…

油猴Safari浏览器插件:Tampermonkey for Mac 下载

Tampermonkey 是一个强大的浏览器扩展,用于运行用户脚本,这些脚本可以自定义和增强网页的功能。它允许用户在网页上执行各种自动化任务,比如自动填写表单、移除广告、改变页面布局等。适用浏览器: Tampermonkey 适用于多数主流浏览…