122Architecture 全面解读 - 第一篇 全局解析+ADG+IM模块

简介:

上周五早上,风和日丽。小明和小强在上班路上相遇了。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

呀不好意思,来晚了,我们已经打烊了。不过呢,看在大家都热爱学习的份上,我们将会分享课程视频给大家。


Oracle自发布12.1之后,就一直声称要全面转云,在之后的三四年里,一直杳无音信,大家都在猜测,Oracle又在憋什么大招,果然,2017阳春三月,大招来了!今年三月份,在广大用户的热切盼望中,Oracle终于发布了12c Release2。


与此同时,云和恩墨专家迅速投入到新特性的研究当中,在12.2发布不到2个月的时间里,并设计出了全球最新版的Oracle 12.2体系架构图。先来一饱眼福吧

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


很多同学跟我们说,这张图信息量太大看不懂表示很绝望。为了让大家更好地学习,云和恩墨推出系列课程“全面解读Oracle 12.2的体系架构图” ,上周四第一课QQ群火热直播,反响热烈。


接下来我们简要概括一下课时一的内容要点:


体系架构图组成

Oracle 12.2体系架构图基于最基本的Oracle数据库访问模式,延伸出包含Active DataGuard,Sharding,Multitenant,Flex Cluster,Flex ASM等多个解决方案的模块。课时一主要介绍了整个图的内容组成,并展开详细解读了模块一(ADG+IM)的部分。

 

在第一个模块,我们展开讨论了以下的内容要点

1、在ADG中,逻辑standby和物理standby的数据同步与应用;

2、12.2中,支持ADG上部署IM列存储,并讨论了三种部署方案;(可参考以下文章:【12.2新特性】在Oracle Active Data Guard上部署列式存储

3、Oracle的零数据丢失同步方案:Far Sync实例的配置;

4、在12.2中DG上的一些新特性,比如远程AWR,standby上的SQL tuning等,可参考以下文章:Oracle 12.2新特性掌上手册 - 第六卷 ADG的性能与诊断);

5、在12.2中IN-MEMORY的新特性,比如:join group,faststart等。


好了话不多说,想学习的同学请观看视频。原文链接下载。


不少朋友问讲师要ppt,实话实说,讲师(只有脑子)真没有ppt,不过倒有几张经典的参考图送给各位,为大家简单讲解一下。


reference picture1

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


根据白求恩对中国的Oracle用户使用Oracle数据库现状分析,在10g以前的版本中,有部分用户在使用裸设备作为数据库存储方式,11g以后已经很少见,12c已结没有人使用裸设备了。ASM和文件系统将成为最主要的两种文件存储方式,而ASM则是集群环境下的最佳存储选择。(了解白求恩请点击:Bethune,你最佳的运维小助手。)


reference picture2

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


在12.2以前,ADG架构中,若有多个节点,则多个节点的RFS进程可以同时接收来自主库的日志,但在日志应用过程中,只有一个MRP进程进行,因此多个节点的日志应用的串行的。


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

在12.2中,ADG中多节点standby,日志可以并行应用。会在每个节点都启动一个MRP进程。


reference picture3

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


最简单的Far sync的配置模式:在主库附近(实现同步的距离限制范围内)配置far sync实例,主库与far sync实例之间进行同步传输,far sync与备库之间进行异步传输,这样,即使主备之间的连接出现连接问题,主库的数据都在far sync实例中,实现数据零丢失。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


Far Sync的高可用配置:虽然far sync提供零丢失的数据同步,但一切都会出故障,为了避免主库与Far Sync之间的连接出现问题导致数据丢失,在主库上配置两个Far Sync实例,当其中一个连接中断的时候,自动切换到另一个Far Sync实例。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


Far Sync的扩展配置在需要做主备切换的环境中,为了保证切换后的数据传输不受影响,在两个节点上都配置Far Sync实例,当然,在同一时刻,只有一个Far Sync实例处于活动状态,也就是与当前主库靠近的Far Sync实例处于活动状态。


reference picture4

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


在12.2的IM中,支持三种格式的数据存储:关系型数据,虚拟列和JSON格式。并且可以将JSON对象的虚拟列直接存放在IM的虚拟列,使得针对JSON对象的操作非常方便。


注意,对于JSON的文档,一般要求文件大小不大于32M,否则可能不会带来好的性能提升。


reference picture5

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


在没有join group的情况下,表的关联查询是如何实现的:

假如vehicles表和sales表需要做关联查询。

1、扫描Vehicles表,并将满足条件的行解压并发送到hash 连接

2、使用vehicles中获取的做连接的列创建hash列表

3、扫描sales表,过滤出符合条件的行

4、解压过滤得到的行,并发送至hash连接

5、使用vehicle表的ID值进行探测,找到匹配的行

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

使用join group后的连接访问方式如下:

1、扫描vehicles表,将符合条件的以压缩的方式发送至hash 连接

2、对上步中压缩的结果中的不同值创建数组

3、扫描sales表

4、将匹配的行以压缩的方式发至hash 连接

5、对数组中压缩的值做全连接

 

因此我们看到,没有使用join group的时候,最后在选择行的时候是扫描二维的hash表获得,而使用join group之后只需要扫描一个数组,这样就加快了查询效率。


文章转自数据和云公众号,原文链接

相关文章
|
24天前
|
存储 缓存 算法
Python中collections模块的deque双端队列:深入解析与应用
在Python的`collections`模块中,`deque`(双端队列)是一个线程安全、快速添加和删除元素的双端队列数据类型。它支持从队列的两端添加和弹出元素,提供了比列表更高的效率,特别是在处理大型数据集时。本文将详细解析`deque`的原理、使用方法以及它在各种场景中的应用。
|
1天前
|
JavaScript IDE 编译器
TypeScript中模块路径解析与配置:深入剖析与最佳实践
【4月更文挑战第23天】本文深入探讨了TypeScript中模块路径解析的原理与配置优化,包括相对路径、Node.js模块解析和路径别名。通过配置`baseUrl`、`paths`、`rootDirs`以及避免裸模块名,可以提升开发效率和代码质量。建议使用路径别名增强代码可读性,保持路径结构一致性,并利用IDE插件辅助开发。正确配置能有效降低维护成本,构建高效可维护的代码库。
|
21天前
|
数据挖掘
深入解析ERP系统的人力资源管理模块
深入解析ERP系统的人力资源管理模块
23 1
|
21天前
|
监控 BI
财务智慧:全面解析ERP系统的财务管理模块
财务智慧:全面解析ERP系统的财务管理模块
18 0
|
24天前
|
数据采集 数据挖掘 Python
Python中collections模块的Counter计数器:深入解析与应用
在Python的`collections`模块中,`Counter`是一个强大且实用的工具,它主要用于计数可哈希对象。无论是统计单词出现的频率,还是分析数据集中元素的分布情况,`Counter`都能提供快速且直观的结果。本文将深入解析`Counter`计数器的原理、用法以及它在实际应用中的价值。
|
4月前
|
缓存 安全 网络安全
2021年中职“网络安全“江西省赛题—A模块解析
2021年中职“网络安全“江西省赛题—A模块解析
106 1
2021年中职“网络安全“江西省赛题—A模块解析
|
1月前
|
XML 数据采集 前端开发
深入解析网页结构解析模块BeautifulSoup
深入解析网页结构解析模块BeautifulSoup
24 0
|
3月前
|
JSON JavaScript 前端开发
C++ Qt开发:运用QJSON模块解析数据
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QJson`组件的实现对JSON文本的灵活解析功能。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,也易于机器解析和生成。该格式是基于JavaScript语言的一个子集,但它是一种独立于语言的数据格式,因此可以在许多不同的编程语言中使用。
34 0
C++ Qt开发:运用QJSON模块解析数据
|
3月前
|
传感器 自动驾驶 算法
探索Apollo感知模块:解析世界的关键元素
探索Apollo感知模块:解析世界的关键元素
38 0
|
3月前
|
负载均衡 监控 Dubbo
【Dubbo 解析】模块分包解析
【1月更文挑战第11天】【Dubbo 解析】模块分包解析
【Dubbo 解析】模块分包解析

推荐镜像

更多