分享

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

 数据和云 2020-07-01

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

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

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

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

很多同学跟我们说,这张图信息量太大看不懂表示很绝望。为了让大家更好地学习,云和恩墨推出系列课程“全面解读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

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

reference picture2

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

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

reference picture3

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

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

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

reference picture4

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

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

reference picture5

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

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

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

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

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

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

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

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

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

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

3、扫描sales表

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

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

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

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多