实战: 如何掌握Oracle和业务IO知识

640?wx_fmt=jpeg作者 | Hardy

来源 | 架构师技术联盟

      今天,笔者打算梳理下Oracle架构相关的知识,让读者快速全面掌握Oracle和大数据领域知识。

Oracle系统结构由内存结构、物理和逻辑结构等几个部分组成。其中,与阵列密切相关的物理结构包括数据文件、控制文件、联机重做日志文件和归档日志文件。如果是RAC集群,还包括Voting File和OCR。

640?wx_fmt=png

      

OCR负责维护整个RAC和Clusterware资源的配置信息,包括的信息有节点成员、数据库、实例、服务和应用程序等。

IO特征:RAC 启动和停止时访问,IO 大小为512B 和4KB,随机读写。

      Voting Disk用于管理集群的节点成员身份,在出现“脑裂”时,仲裁哪个Partition获得集群的控制权,其他Partition必须从集群中剔除。

IO特征:每一秒做一次IO 操作,数据块大小为512B 和256KB,访问位置固定。

      数据文件是oracle存储的物理结构,由多个操作系统文件组成,存储了数据库的所有数据(包含表、索引等)。

IO 特征:随机读写,绝大多数数据块的大小为8K,并可通过参数设置。

      控制文件用于存放数据库物理结构信息(包含数据库名、联机重做日志的名字和位置等),是一个很小的二进制文件。打开或恢复数据库时都需要用到控制文件中的信息。

IO 特征:负载很小,数据块大部分为16KB,少量4KB,极小范围内随机读写,读比例80%,注重可靠性。

      联机重做日志文件,当用户提交事务后,由后台进程LGWR将用户提交的事务写入重做日志条目而形成的文件,它记录了所有数据的改变,当数据库数据丢失时可以用它来恢复数据库。

IO 特征:OLTP 应用中联机重做日志的访问非常频繁,数据模型为多路小IO 顺序写,日志归档时,增加一路高负载的大IO 顺序读。

      归档日志文件,在归档模式下,当重做日志填满后,由oracle后台进程ARCn将填满的重做日志复制到一个或多个路径下形成的文件,主要用于数据库的恢复。

IO 特征:进行联机重做日志归档时,为顺序写;进行归档日志备份时,为顺序读。综上所述,Oracle数据库各文件的I/O特点总结如下。

640?wx_fmt=png

OLTP应用的IO特征

      OLTP通常是指事务性非常高的在线系统,以小的事务以及小的查询为主,评估其系统的时候,一般看其每秒执行的Transaction以及Execute SQL的数量。在这样的系统中,单个数据库每秒处理的Transaction往往超过几百个,或者是几千个,Select语句的执行量每秒几千甚至几万个。典型的OLTP系统有电子商务系统、银行、证券等。OLTP应用的IO特征如下。

  • 每个I/O非常小,通常为2KB~8KB

  • 访问磁盘数据的位置非常随机

  • 至少30%的数据是随机写操作

  • 联机重做日志是写入非常频繁的顺序写

      OLTP系统最容易出现瓶颈的地方除了服务器的CPU,就是存储系统IOPS处理能力。因为在OLTP环境中,硬盘物理读一般都是db file sequential read,即单个数据块物理读,但是这个读的次数非常频繁。如果频繁到硬盘子系统都不能承载其IOPS的时候,就会出现大的性能问题。

OLAP应用的IO特征

      OLAP系统,也称为DSS决策支持系统,就是我们说的数据仓库。在这样的系统中,绝大多数时候数据库上运行着的是报表作业,执行基本上是聚合类的SQL 操作,比如Group by,同时扫描非常多的行,一个查询将花费数小时,甚至数天,一次读取的数据量大;一般无数据修改,或者只有非常少的数据修改,OLAP应用的IO特征:

  • 单个I/O很大,典型的值为64KB~1MB

  • 读取操作为顺序读取

  • 当读取操作进行时,发生的写操作通常在临时表空间内

  • 平常对在线日志写入很少,除非在批量加载数据时

      OLTP系统最容易出现瓶颈的地方是存储系统的带宽。阵列的带宽则往往取决于主机到阵列的前端网络和后端硬盘的个数,这个时候,阵列CACHE基本是没有效果的,数据库的读写类型基本上是db file scattered read与direct path read/write。

Oracle ASM配置建议


      ASM是Oracle 10g引入的新特性,在Oracle 11g中进一步强化。作为专门为Oralce数据库文件创建的集成文件系统和卷管理器,ASM提供了媲美裸设备的性能,同时又具备类似文件系统的易管理性,实现高效灵活的数据库存储及文件管理。

Oracle 数据库ASM结构

      ASM在linux平台的架构如图所示,阵列的一个LUN映射给操作系统,会形成一个系统盘,一个系统盘分区对应一个ASM Disk。Oracle建议一个系统盘只创建一个硬盘分区。

640?wx_fmt=png

数据库配置建议

      在创建ASM Diskgroup时,需要设置必要的冗余级别。冗余级别共有三种:EXTERNAL, Oracle不做镜像处理,依赖外部存储冗余;NORMAL实现数据2路镜像;HIGH实现数据3路镜像。对于Voting Disk,NORMAL是3路镜像,HIGH是5路镜像,同时Oracle建议Voting Disk为奇数个。

      为了方便文件管理和提高数据库性能,建议按文件类型存放在不同的ASM磁盘组中。AU是ASM磁盘组的最小存储单位,默认值1M,对于顺序大IO业务,Oracle建议AU大小为4M,此时应将操作系统I/O设置为最大。Oracle临时表空间主要用来做查询和存放一些缓冲区数据,对查询的中间结果进行排序。如果是存在大量group by查询的系统,建议为临时表空间创建单独的ASM Diskgroup,保证足够的硬盘空间。

存储配置建议

      Oracle ASM Diskgroup建议使用多个LUN,能提高硬盘利用率和加大带宽。但是,如果ASM Diskgroup中Disk都是来自同一个阵列的同一个RAID组,且该RAID组为FC、SAS、或SSD盘,则建议每个ASM磁盘组规划两个ASM Disk,双控负载均衡;如果是SATA盘,则建议规划一个ASM Disk。如果ASM Diskgroup中Disk是来自多个RAID组,建议ASM Disk个数与RAID组个数对应,一个RAID组只创建一个LUN,并对应一个ASM Disk,多控制器间负载均衡。

      AU是ASM最基本的存储空间分配单位,在设置LUN的分条单元时,应该保证分条大小与ASM的AU大小一致。

      OCR 、数据文件、控制文件都是随机小IO,Oracle建议用RAID10,可以有效的避免热点数据的产生,同时能在硬盘故障期间提供更佳的性能,这几种文件读写都比较频繁,容量小且对性能要求高,建议不采用SATA盘。归档文件数据量大,且为顺序大IO,从成本考虑,建议用SATA盘RAID6。

      联机重做日志文件归档和归档文件备份时,都是1M的顺序IO,建议预取策略设置为固定预取1M。

SSD盘优化读工作负载

      列阵列提供了多种读预取功能,对于读请求来说,请求的数据如果保留在CACHE中,会立即得到服务,而不会产生额外的磁盘I/O。直接从CACHE中获得服务,而未造成硬盘访问的读取操作,称为读命中。如果读操作未命中,请求的数据不在CACHE中,那么CACHE必须从硬盘上检索出这些数据。由于传统硬盘固有的机械延迟,读操作未命中将造成 I/O 响应时间增加。

      对于顺序读工作负载,CACHE读命中率较高,它们获得服务的速度已经达到内存访问速度,因此将这类工作负载部署在SSD盘,性能不会明显提高。因此,SSD盘适合用来部署CACHE命中率较低的随机小I/O读负载。数据库中随机读取的工作负载有以下两种:

  • OLTP应用的数据文件。如果SSD盘容量允许,建议将数据文件都放在SSD盘,提升数据库性能。但是,通常数据库的数据文件都比较大,而SSD盘的容量有限,无法放下所有的数据文件,建议将选取热点表空间放在SSD盘。如果SSD盘容量还是无法满足热点表空间需求,建议只将热点索引放在SSD盘。

  • OLAP应用当用户或查询并发很高时,对于存储系统来说,这样的数据文件也是随机负载。同时如果SSD容量允许,建议将数据库的临时表空间放在 SSD 上。这样可以帮助缩短复杂的 “group by” 或 “order by” 查询所需的排序时间。

SSD盘优化写工作负载

      阵列的Cache针对写业务,提供回写和透写功能。回写会进行IO合并,即把多个主机写请求归一为一个内部写请求,从而减少访问硬盘的次数,并且这个内部写请求足够大,往往是条带的整数倍。所以,在回写情况下,写请求总是写入缓存,不会造成物理磁盘存取而引起的延迟。

      Oracle数据库联机重做日志文件,要求必须每3秒或在事务提交时写入到磁盘,写入频繁,且对响应时间的要求很高。所以,联机重做日志文件的LUN必须选择回写功能,确保日志写操作直接从阵列缓存获得服务来确保响应时间。因此,联机重做日志文件未必需要放在SSD盘上。但是,如果数据库受累于大量的提交时间和较长的日志 I/O 延时,那么将联机重做日志放在SSD 将有所帮助。

640?wx_fmt=png

福利

扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!

640?wx_fmt=jpeg

推荐阅读:

  • mysql表设计要注意什么?

  • 漫话:如何给女朋友解释鸿蒙OS是怎样实现跨平台的?

  • 换脸软件 ZAO 刷屏:你在玩换脸,别人想要你的脸!

  • 只给测试集不给训练集,要怎么做自己的物体检测器?

  • 华为鸿蒙为什么非要碰物联网?

  • Dropout、梯度消失/爆炸、Adam优化算法,神经网络优化算法看这一篇就够了

真香,朕在看了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522086.shtml

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

相关文章

阿里云朱照远:AI打开新视界 8K时代已来!

摘要: 2018年4月11-12日,2018亚太CDN峰会在北京隆重召开,大会由亚太CDN领袖论坛、电视云论坛、短视频论坛、视频云论坛、新技术论坛、运营商论坛、国际云论坛等7大部分组成。在亚太CDN领袖峰会上,阿里视频云总经理朱照远&#xff…

星外主机销售系统源码_业务员大客户销售订货订单管理系统源码开发外包解析...

互联网IT外包15年,讲述外包那些事;让您外包项目少花钱,办好事!IT外包最大隐形成本-沟通成本:客户叙述大概需求,IT公司说一做一,最后开发项目细节大堆BUG,毫无用户体验感,最后项目一拖再拖,无限延期!究其原因,客户非IT行内人,对系统功能及流程…

两个分布的特征映射_跨语言分布表示学习方法概述

分布表示(distributed representation)与深度神经网络(deep neural network)极大地推动了近几年自然语言处理研究的发展。我们知道,分布表示指的是对于一个客观描述对象的低维、稠密、连续向量表示。不同于符号表示(symbolic representation),分布表示可…

2018亚太CDN峰会开幕,阿里云王海华解读云+端+AI的短视频最佳实践

摘要: 4月11-12日,2018亚太CDN峰会在北京隆重召开,在11日下午的短视频论坛中,阿里云高级技术专家王海华进行了《短视频最佳实践:云端AI》的主题演讲,分享了短视频的生命周期关键点和阿里云技术解决方案。 4…

数据科学家实操之路

摘要: Kaggle最近进行了一项旨在评估数据科学和机器学习当前发展状况的调查。 他们收到了将近17000份答卷,并利用这些答卷做出了大量的分析。Kaggle最近进行了一项旨在评估数据科学和机器学习当前发展状况的调查。 他们收到了将近17000份答卷&#xff0c…

快报:Java跌惨!Python背后或有推手?网友:心态已崩!

“愿你出走半生,归来仍学Python!”最近Python的slogan正在“变化”。原因是来自于PYPL官方发布2019年7月编程语言指数榜,Python连续半年夺冠,并且本月市场份额超高的28.08%。这简直是遇神杀神,遇佛杀佛的灭霸节奏&…

mybatis源码深度解析_30天消化MyBatis源码解析笔记,吊打面试官,offer接到手软

MyBatis 是一个优秀的 Java 持久化框架,SSM 框架组合(Spring SpringMVC Mybatis),依赖 MyBatis 搭建的项目更是数不胜数,在互联网公司的使用中,占据了大片江山,你在使用 MyBatis 吗?会使用你真的了解 MyB…

从司法领域看阿里云产业AI策略:生态联盟,技术赋能

摘要: 在日前结束的云栖大会深圳峰会上,除了阿里云全面进军IoT的战略宣布之外,持续不断的生态签约成了另一大亮点:全天的IoT合伙作伴签约,围绕“ET大脑”的千里马计划,以及司法领域重要IT服务商通达海的合作…

word表格怎么缩小上下间距_如何缩小word表格中的行距

自己绘制表格,然后在表格属性里可以设置www.51dongshi.com防采集。word行距缩小的方法:本次操作以Dell电脑为例,具体操作步骤如下:产品名称:Dell产品型号:Dell 灵越5000系统版本:Windows 10软件…

全球云端数据仓库领导者 MaxCompute 将于本月10日正式开服美东节点

摘要: 作为全球云端数据仓库的领导者,阿里云MaxCompute为满足更多客户的业务需求,不断加快全球化部署的节奏。本月10日,美东(弗吉尼亚)节点会正式上线。届时,将会以最新版本产品向用户提供大数据…

给面试官讲明白:一致性Hash的原理和实践

戳蓝字“CSDN云计算”关注我们哦!来源 | 靳刚同学作者 | 靳刚“一致性hash的设计初衷是解决分布式缓存问题,它不仅能起到hash作用,还可以在服务器宕机时,尽量少地迁移数据。因此被广泛用于状态服务的路由功能”01—分布式系统的路…

mysql如何逻辑删除_mysql逻辑删除如何恢复

在项目中,一般会遇到这种情况:逻辑删除以及多关联不删除逻辑删除(软删除):逻辑删除就是对要被删除的数据打上一个删除标记,通常使用一个is_deleted字段标示行记录是不是被删除(或者使用一个status字段代表所谓的“删除”状态)&…

手把手,教你用MaxCompute+OpenSearch搭建分布式搜索引擎

摘要: 最近,经常有客户咨询如何低成本搭建高性能的海量数据搜索引擎,比如实现公众号检索、影讯检索等等。由于客户的数据在阿里云上,所以希望找到云上解决方案。笔者开始调研一些云上产品,很多人向我推荐了OpenSearch&…

再获绿色等级5A称号!揭开腾讯数据中心节能环保黑科技

9月3日北京,腾讯目前位于深圳最大的数据中心,“腾讯光明中国移动|万国数据数据中心二期”荣获运行5A绿色数据中心称号,达到了“数据中心绿色等级评估”的最高等级。该数据中心绿色分级评估由ODCC联合中国信通院、绿色网格TGGC发起&#xff0c…

MaxCompute_2_MaxCompute数据迁移文档

摘要: 乍一看标题会以为是不是作者写错了怎么会有从MaxCompute到MaxCompute迁移数据的场景呢在实际使用中已经有客户遇到了这种场景比如两个网络互通的专有云环境之间数据迁移、公共云数加DataIDE上两个云账号之间数据迁移、还有网络不通的两个MaxCompute项目数据迁…

printf 指针地址_指针搞都不懂,好意思说自己会C语言?

C语言面试必问知识点之「指针」一、指针相关概念指针与地址我们使用的计算机,系统为了更好地管理我们的内存,就为内存区的每一个字节都分配一个唯一编号,这就是“地址”。指针的实质就是地址,就是这一个个编号。指针变量变量在编译…

开启数据科学职业生涯的8个基本技巧

摘要: 本文为数据科学家开创数据科学事业铺平了道路。只要按照这八个小贴士来做,你就能让自己的职业生涯有一个良好的开端。Nick Bostrom(译者注:Nick Bostrom是牛津大学哲学系的教授,是人类未来研究院的创始人和主任。…

WIAC上,华为展区都有点儿啥?

戳蓝字“CSDN云计算”关注我们哦!谈及计算产业的变迁,我们了解到其先后经历了大型计算机、小型机/x86服务器阶段,并同时开创了敏捷、创新、体验好、省成本的Cloud 1.0以及Cloud 2.0时代,在云计算、5G与AI等创新技术不断叠加发展的…

【技术系列】浅谈GPU虚拟化技术(第一章)

摘要: GPU深度好文系列,阿里云技术专家分享 第一章 GPU虚拟化发展史 GPU的虚拟化发展历程事实上与公有云市场和云计算应用场景的普及息息相关。如果在10年前谈起云计算,大部分人的反应是“不知所云“。但是随着云计算场景的普及,概…

php如何删除数据mysql数据库_php如何删除数据库

php如何删除数据库1、首先查看有哪些数据库2、使用php删除test2<?php $dbhost localhost; // mysql服务器主机地址$dbuser root; // mysql用户名$dbpass root; // mysql用户名密码$conn mysqli_connect($dbhost, $dbuser, $dbpass);if(! $conn ){die(连接失败: . mysq…