排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
Oracle Database 23ai 新特性:全球分布式数据库支持Raft复制
Oracle Database 23ai 新特性:全球分布式数据库支持Raft复制
甲骨文云技术
2024-05-09
1390
分布式数据库因其管理大型复杂数据集的能力、可伸缩性、灵活性以及与现代应用程序设计和架构的兼容性而越来越受欢迎。对全球部署和横向扩展的需求、对数据主权的要求正在推动企业采用Oracle全球分布式数据库。
Oracle全球分布式数据库作为一个单一逻辑数据库,可将数据自动分散到多个物理数据库(分片)上,在企业内部、云或多云环境的不同计算机上部署;它是支持全球分布式、线性可扩展的多模数据库,不需要专门的硬件或软件;在实现所有这些功能的同时,还提供了强大的一致性、SQL处理能力、多模态数据管理以及 Oracle 数据库生态系统;它满足数据主权要求,并支持需要低延迟和高可用性的应用程序。
在分布式数据库扩展时,弹性与可用性是重要的考虑因素,因为企业需要努力保证在整个可用区/可用性域 (AZ/AD) 或云提供商发生故障时业务仍可正常运行。
近日,Oracle新发布的Oracle Database 23ai中引入了一个值得注意的功能:Raft复制,这是一种基于共识的复制协议,有助于跨所有分片自动配置复制。Raft复制与应用程序无缝集成,提供操作透明度。Oracle全球分布式数据库内置Raft复制功能,无需配置和管理 Oracle Data Guard 或 Oracle GoldenGate 即可实现高可用性。与Data Guard 或GoldenGate复制不同,在添加或删除分片时无需重新配置Raft复制,也无需主动管理副本;Raft 复制会在分片主机发生故障时或在分片数据库中增删分片时自动重新配置复制。系统采用声明性方法来配置复制因子,确保指定数量的副本始终可用。
Raft 复制的一个重要特性是可实现快速自动故障转移,且不会丢失任何数据。如果所有分片都位于同一数据中心,则能实现亚秒级故障转移。Raft 复制处于活动/活动状态;每个分片都可以处理数据子集的读写。此功能提供统一配置,没有主分片或备用分片。
复制单元(RU)
启用 Raft 复制后,Oracle全球分布式数据库包含多个RU(
复制单元
)。RU是一组具有相同复制拓扑的区块。每个 RU 都有三个副本放置在不同的分片上。Raft共识协议用于在发生故障、网络分裂、消息丢失或延迟时保持副本间的一致性。
每个分片都包含来自多个 RU 的副本。这些副本中有些是领导者,有些是追随者。Raft复制试图在分片中保持领导者和追随者的平衡分布。默认每个分片是两个RU的领导者,并且是其他四个RU的追随者。这使所有分片都处于活动状态,并可充分利用硬件资源。
Raft 组
每个复制单元只包含一个块集,并具有一个领导者和一组追随者,这些成员形成一个 raft 组。在不同分片中,复制单元的领导者及其追随者包含相同块集的副本,如下图所示。分片可以是某些复制单元的领导者,也可以是其他复制单元的追随者。
特定数据子集的所有DML操作首先在领导者中执行,然后复制到其追随者。
复制因子
复制因子 (RF) 决定了 RAFT 组中的参与者数量。
这个数字包括领导者及其追随者。
RU需要在多数副本可用时才能执行写操作。
RF = 3: 容忍一个副本失败
RF = 5: 容忍两个副本故障
在 Oracle 全球分布式数据库中,为整个分片数据库指定了复制因子,即数据库中的所有复制单元都具有相同的 RF。追随者的数量限制为两个,因此复制因子为3。
Raft日志
每个RU都与一组Raft日志和操作系统进程相关联,这些进程维护Raft日志并将更改从领导者复制到追随者。这允许多个 RU在单个分片内和多个分片间独立并行运行。它还可以通过更改 RU 的数量来扩展和缩减复制。
DML 对数据所做的更改记录在 Raft日志中,提交记录也会记录在每个用户事务的末尾。Raft日志独立于重做日志进行维护,并包含对行的逻辑更改。逻辑复制减少了故障转移时间,因为追随者对传入事务持开放态度,并且可以快速成为领导者。
Raft协议保证追随者以领导者生成日志记录的相同顺序接收日志记录。只要有一半的追随者确认收到提交记录并将其写入 Raft 日志,就会在领导者上提交用户事务。
交易
在繁忙的系统上,会同时确认多个提交。
事务提交记录的同步传播提供零数据丢失。
但是,将 DML 更改记录应用于追随者是异步完成的,以尽可能减少对事务延迟的影响。
领导者选举流程
根据 Raft 协议,如果追随者在指定的时间段内没有收到来自领导者的数据或心跳,则开始新的领导者选举流程。
默认心跳间隔时间为 150 毫秒,随机选举超时(最多150 毫秒)可防止多个分片同时触发选举,从而导致分裂投票。
节点故障
节点故障和恢复以自动化方式处理,对应用程序的影响极小。
当可用区之间的网络延迟小于10毫秒时,故障转移时间不到3秒;这包括故障检测、分片故障转移、领导者变更、应用程序重连到新领导者,以及继续业务交易。
通过在 JDBC 驱动程序中配置重试,可以进一步减少对应用程序的影响,客户的体验将是请求耗时更长,而不是报错。
下面是一个分布式数据库的图示,其中所有三个分片都处于正常状态。应用程序请求能够到达所有三个分片,并且领导者和追随者之间的复制正在分片间进行。
领导者节点故障
当复制单元的领导者不可用时,追随者将使用 Raft 协议启动新的领导者选举流程。
只要大多数节点(仲裁)仍然正常,Raft 协议将确保从可用节点中选出新的领导者。
当其中一个追随者成功成为新的领导者时,会
主动
向领导变更的客户端驱动程序发送通知,客户端驱动程序后续会将请求路由到新的领导者分片。路由客户端(如UCP)通过ONS收到通知,以更新其分片和块映射,确保它们将流量路由到领导者。
在此故障转移和重新连接期间,应用程序可以配置为等待和重试,并使用 JDBC 驱动程序配置中的重试间隔和重试计数设置。这些配置与当前的 RAC 实例故障转移配置非常相似。
连接到新的领导者后,应用程序将继续像以前一样运行。
下图显示第一个分片失败,复制单元的原领导者(曾经位于第一个分片上)已被第二个分片中的新领导者替换。
Oracle全球分布式数据库在GDSCTL CLI中提供了命令和选项,用于在系统管理的分片数据库中启用和管理 Raft 复制。有关配置和管理 Raft 复制的详细内容请参阅Raft复制配置和管理官方文档
[1]
。
采用 Raft 的 Oracle 全球分布式数据库
Oracle全球分布式数据库作为一个单一逻辑数据库,支持数据在物理数据库之间分布和复制,以实现超大规模和容错,为用户提供极致的扩展性和业务连续性;同时可以将不同地区数据存储在不同的特定地理位置,从而满足数据主权需求,帮助企业实现全球化部署。
在23ai中,Oracle全球分布式数据库内置Raft复制,将数据库内部的复制与基于 Raft 的协议相集成,简化了容错分布式数据库的创建和管理,并减少了维护多活可用性时需要的手动流程,可在几秒内实现自动故障转移,且不会丢失任何数据。
Oracle 可以跨本地、云和多云部署分片;Oracle云中还为用户提供全球分布式自治数据库服务,消除分布式数据库的运营复杂性并降低成本。
如需了解有关 Oracle 全球分布式数据库的更多信息,请您访问全球分布式数据库官方网页
[2]
。
参考链接:
[1]
https://docs.oracle.com/en/database/oracle/oracle-database/23/shard/raft-replication.html
[2]
https://www.oracle.com/database/distributed-database/
编辑:萧宇
分布式数据库
oracle
raft
oracle 23ai
文章转载自
甲骨文云技术
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨