标签归档:Exadata

Exadata上的Writeback和Writethrouth-2-SSD篇

在了解Exadata上的Flash Card的使用方式之前,我也先给自己科普了一下SSD的相关知识,具体如下: SSD,也就是我们常说的固态硬盘(Solid State Disk),他是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成,好一点的还可以多一个缓存芯片。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致。 从发展实践来看,1970年,StorageTek公司(Sun StorageTek)开发了第一个固态硬盘驱动器。1989年,世界上第一款固态硬盘出现。 固态硬盘(Solid State Drives),是用固态电子存储芯片阵列而制成的硬盘,其芯片的工作温度范围很宽,商规产品(0~70℃)工规产品(-40~85℃)。这些指标都的使用范围都远超过硬盘的工作规范,因此,我们常说固态盘适应的环境更多…… Exadata上的Writeback和Writethrouth-2-SSD篇

发表在 FAQ, 体系架构 | 标签为 , , | 留下评论

Exadata的磁盘自动管理-3-磁盘自动管理的操作规则

Exadata的磁盘自动管理-1-教你读懂cell alert中的磁盘相关信息 Exadata的磁盘自动管理-2-Cell上各种磁盘相关的概念 Exadata的磁盘自动管理-3-磁盘自动管理的操作规则 磁盘自动管理的一些条件和限制: 1. Griddisk 的状态改变时(OFFLINE/ONLINE): 如果一个griddisk的状态变为临时不可用(temporarily unavailable),那么它会在ASM中被自动的变更为OFFLINED。 如果一个griddisk的状态变成可用的(available),那么它会在ASM中被自动的变更为ONLINED 2. Griddisk的DROP磁盘的操作 如果一个物理盘(physicaldisk)失效了,所有在这个物理盘之上的griddisk都会在ASM中自动的以FORCE选项DROP。 如果一个物理盘(physicaldisk)的状态变为’predictive failure’,所有在这个物理盘之上的griddisk都会在ASM中被自动DROP。 ‘predictive failure’的概念参见前面的《Exadata的磁盘自动管理-1-读懂cell alert的磁盘信息》 如果一个flashdisk出现性能降级,相应的griddisk都会在ASM中自动的以FORCE选项DROP。 3. Griddisk的ADD磁盘的操作 如果更换了一个物理盘,该物理盘上对应的celldisk和griddisk都会被重新自动的创建,并且在创建后自动的加入到ASM中。当然,这个是要求换盘之前这个盘是完全自动管理的,也就是之前他是被自动的在ASM中drop的。 如果手工的drop了griddisk(不带force选项),那么就需要手工的将盘加回到ASM中。 如果griddisk是NORMAL状态,并且在ONLINE模式,那么使用FORCE选线drop了磁盘(这个模式通常必须使用FORCE选项),他也会被自动加回到ASM中。 4. 对CELL进行rolling upgrade时,Griddisk 的状态发生改变:OFFLINE/ONLINE Before the upgrade all griddisks will be inactivated on the storage … 继续阅读

发表在 内部机制 | 标签为 , , , , , | 留下评论

Exadata的磁盘自动管理-2-Cell上各种磁盘相关的概念

Exadata的磁盘自动管理-1-教你读懂cell alert中的磁盘相关信息 Exadata的磁盘自动管理-2-Cell上各种磁盘相关的概念 Exadata的磁盘自动管理-3-磁盘自动管理的操作规则 首先明确一些Cell上各种磁盘相关的概念: 每个cell上有12块Physicaldisk,每个盘的容量相同,目前,X2的可以有600GB, 2TB和3TB(2T盘已经停产了),X3的只能有600GB和3TB,X4可以有1.2T和4T盘。 每块物理盘对应一个LUN(前面的2块盘,分别会划去一部分空间用来管理OS。后面的10块盘分别直接对应一个LUN),每个LUN对应一个CELLDISK。 每个cell上前两块盘的前面42G左右的空间做成软RAID1,后面的557G空间和其他10块盘使用方法一样,都是作为一个独立的celldisk的。 注意,celldisk是一个逻辑盘的概念。 这个信息在cell的配置文件中有明确说明 : 还可以使用下面的命令查看celldisk的容量: [root@dm01cel11 ~]# cellcli -e list griddisk where celldisk=CD_02_dm01cel11 attributes name,size,offset 每个cell上有16个Flashdisk(每个cell上4个PCI闪存卡,每个卡上集成4块flashdisk),X2是每个24G,X3是每个100G,X4是每个200G。 每一个Flashdisk对应一个Flash LUN,每个Flash LUN对应一个Cell Disk。 普通硬盘,即disktype=HardDisk的盘上创建的Celldisk缺省命名为CD_00_cellname,CD_01_cellname, …CD_11_cellname 基于FlashDisk的盘,即disktype=flashdisk的盘上创建的Celldisk缺省命名为FD_00_cellname, FD_01_cellname … FD_15_cellname. GridDisk是一些创建在一个或者多个celldisk上的逻辑盘。在Exadata的标准安装流程中,Griddisk只是使用基于硬盘创建的celldisk,而不使用基于Flashdisk创建的celldisk。 一般我们使用基于flashdisk创建的celldisk来做flashcache和flashlog。 在Exadata环境中,ASM DISK其实就是一个的griddisk。 在Exadata的标准安装中,一般会创建3个磁盘组,其中DATA DG和RECO … 继续阅读

发表在 内部机制 | 标签为 , , | 留下评论

Exadata的磁盘自动管理-1-教你读懂cell alert中的磁盘相关信息

Exadata的磁盘自动管理-1-教你读懂cell alert中的磁盘相关信息 Exadata的磁盘自动管理-2-Cell上各种磁盘相关的概念 Exadata的磁盘自动管理-3-磁盘自动管理的操作规则 从11.2.3.2.x开始,系统可以自动识别磁盘性能下降,并自动从当前配置中移除。 出现性能下降的磁盘会影响系统整体的性能表现,因为所有的工作负载是平均的分布到所有的磁盘的。 举个例子,如果一个磁盘有相对于其他的磁盘有30%的性能下降,那么整体的系统IO能力就会下降30%。 当检测到磁盘性能下降时,系统自动从当前配置将该盘移除。Exadata会执行一些列性能测试,如果这个磁盘的问题是临时问题,那么系统会自动将其放回原来的配置中。如果这个磁盘不能通过测试,那么就会被标记为性能不佳(pool performance),并自动开启一个ASR(Automatic Service Request)来请求更换磁盘。 这一特性对于硬盘和flash盘同样有效。 说到Exadata的IO能力和管理,必要要提到众所周知的CELLSRV。 CELLSRV是Exadata上存储服务器的主要组成部件,它是一个多线程服务器,主要针对简单的块请求和智能扫描请求(如投影和筛选的表扫描等)提供服务,另外,CELLSRV也与DBRM协同工作来计量各种数据库和客户组在发送IO时所用IO带宽。 CELLSRV收集与操作相关的大力统计信息。Oracle数据库和ASM进程使用LIBCELL和CELLSRV通信,LIBCELL使用iDB协议将IO请求转换为要发送给CELLSRV的消息。 CELL上跟IO相关的主要进程还有MS和RS。 MS(管理服务器),MS提供Exadata cell管理和配置的功能。它与命令行界面CELLCLI协同工作,每个CELL有CELLCLI进行单独管理。 CELLCLI是一个本地化的管理工具,也就是说他需要在某个特定CELL中管理该CELL。 不过,在Exadata上,可以用dcli实现远程地对多个CELL运行同一个CELLCLI命令来达到集成管理或者统一管理。dcli是一套集成的工具包,本质是通过SSH进行集成管理,可以单独配置(比如你自己有很多非Exadata的linux环境,可以根据需要配置dcli)。 另外,在CELL上,除了CELLSRV负责收集主要的统计信息外,MS也负责发送警报和收集其它统计信息。 RS(重启服务器),RS用于启动和关闭CELLSRV和MS服务,并监控这些服务进程的状态,在必要时负责重新启动cellsrv和ms。 前面说到CELLSRV会自动检测磁盘的性能,并自动更改配置。当CELLSRV检测到磁盘性能下降时,cell disk的状态就会更改为’normal – confinedOnline’,物理盘的状态更改为’warning – confinedOnline’。 这意味着磁盘已经进入了性能表现不佳的第一个阶段,这个阶段是个过渡阶段,磁盘状态不会停留在这个阶段很长时间。 通常磁盘的常见状态会有4种: HEALTH_BAD_ONLINE HEALTH_BAD_OFFLINE HEALTH_GOOD HEALTH_FAIL 这些检测和状态的变化,会有CELLSRV记录到alert中,例如: 同样的信息,在alerthistroy总也有可以观察到: 我猜测,上述信息是通过类似:下面这样的命令完成的: list griddisk attributes … 继续阅读

发表在 内部机制 | 标签为 , , | 留下评论

Exadata上HCC表的数据块结构—3-HCC块(compress for query low)

关于EHCC表的测试参见: Exadata上的HCC测试(EHCC)——1 Exadata上的HCC测试(EHCC)—2—:DBMS_COMPRESSION.GET_COMPRESSION_RATIO Exadata上的HCC测试(EHCC)—3—分区表的压缩 HCC(Hybrid Columnar Compression )是数据以CU(compression units )的方式存储,一个CU是由一组连续的block组成的,比如常见的是32k(即,4个连续的8k的block)。每个CU内部都是按列存储的数据,每一列都分别进行压缩,但是每一行数据都可以在一个CU内完全找到。 下面以”compress for query low”为例的数据块为例: 这次测试只dump了一个数据块,因此,不是一个很理想的说明,下次测试我会每个表多dump一些block,再加上表数据的内容,进行对比分析,这样才清晰。O(∩_∩)O哈哈~

发表在 Internal, 内部机制 | 标签为 , , | 留下评论

Exadata上HCC表的数据块结构—2-BASIC Compress和OLTP Compress

OLTP 和 BASIC的压缩是符号表(a symbol table)的方式,老熊的blog已经讲的很清晰了,我怎么也不可能比老熊讲的清晰,不赘述了,看图:

发表在 Internal, 内部机制 | 标签为 , , | 留下评论

Exadata上HCC表的数据块结构—1-非压缩数据块结构

普通表的数据块结构网上已经铺天盖地了,我就不赘述了,看图:

发表在 Internal, 内部机制 | 标签为 , , | 留下评论

Exadata上的HCC测试(EHCC)—3—分区表的压缩

Exadata上的HCC测试(EHCC)—2—:DBMS_COMPRESSION.GET_COMPRESSION_RATIO Exadata上的HCC测试(EHCC)——1 在分区表内部,不同分区可以不同的压缩类型:建立测试表 (注意,还可以按照列选择不同分区,具体参见文档的语法) 对比插入普通的表(Basic Compress)的时间和插入分区表(不同分区类型)的时间: 检查分区表各个分区的分区类型: 检查每种分区中的记录数据: 还可以按照rowid来查看压缩情况,输出为一个数字,代表压缩类型,具体的含义上面都有了:

发表在 POC和性能调整 | 标签为 , , | 留下评论

Exadata上的HCC测试(EHCC)—2—:DBMS_COMPRESSION.GET_COMPRESSION_RATIO

Exadata上的HCC测试(EHCC)——1 Exadata上的HCC测试(EHCC)—3—分区表的压缩 今天累了不多说了,官方文档都有: 使用DBMS_COMPRESSION时需要注意,不能两个会话同时使用,否则会报错,类似(2个会话会分别报下面的两个错误): 貌似从MOS还是哪里找到的脚本,很好用,其主要是利用了DBMS_COMPRESSION.GET_COMPRESSION_RATIO进行压缩率的测算: 上面的例子是Compress For Archive High,其他依此类推,测试用例参见:《Exadata上的HCC测试(EHCC)——1》 –Compress For Archive Low: –COMP_FOR_OLTP: –Compress For Query High: –Compress For Query Low: –COMP_NOCOMPRESS:

发表在 POC和性能调整 | 标签为 , , | 留下评论

Exadata上的HCC测试(EHCC)——1

Exadata上的HCC测试(EHCC)—2—:DBMS_COMPRESSION.GET_COMPRESSION_RATIO Exadata上的HCC测试(EHCC)—3—分区表的压缩 Oracle 从8.1.5开始引入了“Index key compression”压缩,也就是重复的索引键值可以被压缩。 . 从9.2开始引入了“Data segment compression”,也就是我们说的“Basic compression”,但是该功能只有在批量数据加载时才生效(比如直接路径装载,CTAS等)。 . 从Oracle11.1版本引入了Advanced Compression,支持OLTP的压缩,也就是说可以支持INSERT,DELETE,UPDATE操作的压缩。 (正式发布的11g最早版本是2008年OOW上的11.1.0.6.x,2009年我就有客户用这个版本的了,而且一次上了4中平台的RAC,O(∩_∩)O哈哈~) . 当然,从11g开始,Oracle很多其他操作也支持压缩,比如,非结构化数据压缩(SecureFile数据压缩),Data Pump数据压缩,以及RMAN备份压缩等等,这里不做赘述。 支持OLTP的压缩,不代表每个DML语句执行时都会启用同步压缩,也就是说,只有当数据块中未压缩的数据达到一个阀值的时候,才会启动压缩,而不是每个DML语句之后都会压缩。如图: 关于压缩表的限制: 更多内容请参考 Notes 882712.1。 这里主要讨论下EHCC(Exadata Hybrid Columnar Compression ),官方文档说明如下: 关于测试创建各类压缩表的创建消耗的时间和IO的统计如下,我就不说了,有兴趣的自己看吧,O(∩_∩)O哈哈~

发表在 POC和性能调整 | 标签为 , , | 留下评论