Oracle 并行服务器介绍 Chao_ping@163.com.

Slides:



Advertisements
Similar presentations
Copyright © All Rights Reserved. 《小飞侠考试改卷系统》下载地址: 一线信息技术教师的烦恼 学生拨掉网线或禁 用网卡或乱改 IP , 或用软件终止电子 教室客户端 … 学生人数太多, 无法识别,难以.
Advertisements

© 2012 IBM Corporation IBM 中国系统与科技研发中心 --- IBM i 实验室之旅 利用工具分析 IBM i 程序性能 应锦鑫, IBM i 性能工具高级软件工程师 IBM 中国系统与科技研发中心.
Copyright © by ARTCOM PT All rights reserved. 大众媒体与医患关系 山东大学口腔医学院 郭春晓.
一张图读懂 中国乳制品行业现状及 发展趋势和前景.
An Introduction to Database Systems
Information Resource Management
苏炳华 教授 上海第二医科大学 生物统计学教研室
从简单维护到价值提升 kaseya——卓越的IT自动化领导者
昆山华东信息科技有限公司 Copyright © 2009 ECI Corporation, All Rights Reserved
存储基础知识 V1.1.
CHAPTER 9 虛擬記憶體管理 9.2 分頁需求 9.3 寫入時複製 9.4 分頁替換 9.5 欄的配置法則 9.6 輾轉現象
Foundations of Computer Science
优质护理的指导思想  以科学发展观为指导,贯彻落实《2011年公立医院改革试点工作安排》关于“推广优质护理服务”的部署和要求,结合全国卫生系统创先争优活动和“服务好、质量好、医德好,群众满意”的“三好一满意”活动,深化“以病人为中心”的服务理念,紧紧围绕“改革护理模式,履行护理职责,提供优质服务,提高护理水平”的工作宗旨,充分调动临床一线广大护士工作的积极性,按照《医院实施优质护理服务工作标准(试行)》,为人民群众提供全程、全面、优质的护理服务,保障医疗安全,改善患者体验,促进医患和谐。
大型、高负载网站架构和应用初探.
穆公(朱金清 微博:淘穆公 阿里HBase业务设计实践 穆公(朱金清 微博:淘穆公
Database Architecture, not only DBA
颈椎移位.
对存储系统发挥特殊作用的文件系统 2006年5月 - 北京.
中国(成都)斯宝特房地产营销策划有限公司 2007年5月22日
生命本是一个完整的过程, 但这个过程, 我们画得不圆。
网格 及其应用的一些相关技术 高能所计算中心 于传松
信息系统 应急解决方案 北京神州讯安科技有限公司
MySQL資料庫安全管理.
Network Storage and System Virtualization Technology
第6章 資料庫管理系統 6-1 關聯式資料庫管理系統 6-2 SQL Server資料庫管理系統
HADOOP的高能物理分析平台 孙功星 高能物理研究所/计算中心
Oracle WebLogic 数据库连接原理及案例探讨
第四章 存储体系.
数据库原理与应用     制作人:王春玲         黄金燕         张惠萍         陈志泊 人民邮电出版社.
性能测试培训 在组设置中可使用此模板作为演示培训材料的起始文件。 节
“服务器服务于Internet”报告会 倪光南 1999年7月6日
Chapter 13 輸入/輸出系統 (I/O Systems)
读秀学术搜索 读秀的图书搜索. 能够为我们解决一个 什么问题? 是什么东西? 读秀 1. 读秀知识库是以 170 万种中文图书、 6 亿页 全文资料为基础的超大型数据库。 2. 为读者提供深入到图书内容章节和全文的精 度检索,全面立体的多面检索,部分文献的 原文试读,以及参考咨询服务,是一个真正.
联想DSS并行存储 张莫穷, 联想HPC团队
HDS 資料保護解決方案更新.
Benjamin Armstrong 高级项目经理 微软
Oracle数据库入门.
第十五章 常見的資料庫管理系統 目的 Oracle 微軟SQL Server 微軟Access MySQL Oracle 應用伺服器
Alibaba 数据库高可用架构 Alibaba
解振宇 客户技术经理 客户售前技术部 微软中国有限公司广州办事处
淘宝核心系统数据库组 余锋 利用新硬件提升数据库性能 淘宝核心系统数据库组 余锋
数据仓库和数据挖掘 DATA WAREHOUSING AND DATA MINING 经济科学室验室
Chap 3 資料庫模型與處理架構.
Flash数据管理 Zhou da
从TDW-Hive到TDW-SparkSQL
第四讲 数据库对象(视图、序列、同义词、索引)
An Introduction to Cloud RDBMS
邹佳恒 第十八届全国科学计算与信息化会议 • 威海,
凌宁 系统工程师 亚洲区嵌入式系统事业群 微软(中国)有限公司
Exchange 2007 系統部署 -- 儲存預測與測試
<Insert Picture Here>
可愛的鍬形蟲 五年四班2.
计算机系统结构(2012年春) ----存储层次: Cache基本概念
大豆有望继续跨年度牛市行情 各位领导,各位同仁,大家下午好,我是浙商期货的徐文杰,今天下午我们团队将要讲的题目是 大豆有望展开跨年度牛市行情
模式与实践:Windows Mobile 5.0应用程序架构
DIC集团简介 2016年7月 COPYRIGHT © DIC CORPORATION ALL RIGHTS RESERVED.
Speaker : Chang Kai-Jia Date : 2010/04/26
5/4/2019 4:42 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
名以清修 利以义制 绩以勤勉 汇通天下 新晋商理念 李安平
耿志刚 应用整合产品技术专家 专业解决方案部 微软中国
百万亿次超级计算机诞生记 姓名 Xiangyu Ye 职务 微软中国技术中心资深HPC顾问 公司 微软中国
11 Overview Cloud Computing 2012 NTHU. CS Che-Rung Lee
2017学考复习 信息管理(导引P37).
中国区部分高性能计算行业用户名单 中石油北京勘探开发 研究院 中海油南方基地 中石化物探研究院 中石油东方物探(BGP) 中科院数学所
第6章 硬盘实用程序 GHOST 6.0 硬盘克隆(Clone)、硬盘分区拷贝工具
ADX series Configuration
資料庫應用與實作 一到六章重點、習題.
Experimental Analysis of Distributed Graph Systems
客家獅中的青獅(文的)和 黃獅(武的) 青獅(比較溫和;美濃才有) 黃獅(比較凶;內埔.萬巒才有).
第4章 体系结构 本章概述 本章要点 教学过程.
Presentation transcript:

                            Oracle 并行服务器介绍 Chao_ping@163.com

Agenda 1。什么是并行服务器: --OPS的体系结构和实现机理 2。为什么要使用并行服务器: --OPS系统的可以带来哪些优点 3。 使用并行服务器的注意点 --针对OPS系统的优化 4。具体实例研究 --OPS系统优化实例 5。讨论

一。什么是并行服务器 Oracle并行服务器是利用多个节点的计算能力来增强服务器性能,提高服务器的可用性而推出的一种技术。 它充分利用了多个节点的处理能力,允许系统处理单个节点处理不了的任务量,并且可以减少处理大任务所需要的时间。

OPS实现方法-1:Cluster

OPS实现方法-1:Cluster 实现: 所有节点共享相同的磁盘阵列,每个节点有自己的CPU,内存,本地磁盘,每个节点之间采用高速互联设备 优点: 可用性更高,单个节点失败不影响系统可用性 增加节点容易 在实际中被广泛采用

OPS实现方法-2:MPP 节点 MPP 体系结构:以高速总线互联 High Performance Switch Twin Twin - - tailed tailed connections connections 本地磁盘 2 2 - - 18 18 Copyright 觹 Oracle Corporation, 1998. All rights reserved.

OPS实现方法-2:MPP 实现: 每个节点有自己单独的磁盘,节点通过Virtual DiskLayer来存取别的节点的数据 优点: 1。对于某些能够有效分割的应用非常合适 2。节点数据不受磁盘阵列的限制 3。磁盘阵列可以非常大

Cluster结构的OPS实现 关键组件: 高速互联总线 节点1 节点2 1.Cluster Manager 2.分布式锁管理器(DLM) OPS Instance A 关键组件: OPS Instance B IPC IPC 高速互联总线 Cluster Manager Comm. Layer Comm. Layer Cluster Manager Shared Disk Driver Shared Disk Driver 节点1 节点2 1.Cluster Manager 2.分布式锁管理器(DLM) 3.节点之间的通信机制 4.磁盘子系统

二。为什么要使用并行服务器 使用OPS系统具有下面几个优点: 高可用性(HA) 高伸缩性(Scale Up) 系统性能提升(Speed Up) 对用户程序透明 减少管理上的负担

1.高可用性:24×7 OPS的解决方案: 节点软件失败 节点硬件失败(N-1个节点失败) 外围设备,电源,网络 操作系统,数据库实例,中间层 节点硬件失败(N-1个节点失败) 外围设备,电源,网络 一个实例恢复期间允许用户在别的节点上操作 最终用户感觉不到实例/单节点失败 (采用OCI接口编程)

Fail over 只要有一个节点存活,就可以保持可用性 如果使用合适的编程方法,可以做到TAF(Transparent Application Failover) 要做到更快的Failover,可以预先同时连接到两个节点 Tnsnames.ora

2。高伸缩性 随着事务数目的增加、数据量的增加和连接用户,单个节点已经处理不过来 通过使用OPS系统,通过简单的增加节点就可以达到要求,原有的节点不必废弃,可以保留投资 某些大型任务不是单个节点能够处理的,而大型机过于昂贵,OPS是理想选择 使用OPS系统,可以加快某些大型任务的响应时间,处理更大的数据量

高伸缩性(2) 单节点系统 并行系统 Hardware 100% Task Time Hardware Time 200% Task

3。性能的提升 注: 这种情况只是对某一类应用而言 单结点系统 并行服务器 Hardware 100% Task Time Hardware

4。对用户程序透明 在原来普通Oracle上开发的程序可以直接移植到OPS系统上直接运行 要达到更加好的运行效果,应用应该对OPS进行优化

5。减少管理上的负担 只需要管理一个数据库,而不是多个 在Oracle8开始,提供了GV$视图,可以在单个节点上检查整个OPS系统 新的管理工具都智能识别OPS系统,如OEM,DBCA, OUI等。

三。使用并行服务器面临的问题和具体解决方案 1。OPS系统的特有概念/面临的问题: 同步 DLM(Distributed Lock Manager) PCM Lock (Parallel Cache Management Lock) PING, False PING 2。解决方案 :尽量减少PING和False PING 进行适当的应用分割和用户分割 进行适当的表分割 合理配置表空间,数据文件 尽量使用sequence 合理分配PCM Lock和Non-PCM Lock

同步 关键: 同一个时间,只允许一个实例拥有某一资源的修改权 同步就是指OPS系统中不同节点之间并发任务的协调:如对Data Block,Dictionary Cache,Row Cache,SCN的同步 OPS系统使用DLM和PCM Lock,Non-PCM Instance Lock来实现资源的同步 成功应用OPS系统的关键是减少同步所需的成本,包括合理分割应用,合理分割表数据,合理配置锁参数

DLM(分布式锁管理器)

续:DLM DLM是在OPS环境下,用来协调多个节点对共享资源的并发访问的。所有Oracle进程要访问共享资源,都必须和DLM打交道 接收来自server进程的请求 记录某一资源的当前用户 当资源可用时通知Server进程 当别的进程需要某一资源时,通知当前用户释放资源 和OPS节点的LCKn进程通信,

PCM Lock Non-PCM Instance Lock PCM Lock(parallel Cache Management Lock): 控制数据文件中各个Block和Lock之间的对应关系 通过gc_files_to_locks和gc_rollback_locks参数来设定 Non-PCM Instance Lock: 控制对数据文件,控制文件SGA的并发访问 比如DFS queue locks, DFS locks 两个队列记录这些信息:granted queue, convert queue

获得各类锁所需的时间 锁的种类 获得锁需要的时间 相对时间 Latch 1分钟 Local Enqueue 1毫秒 16小时 Instance Locks 或者Global Enqueue 0.1秒 69天

PCM Lock的类型 根据是否releasable分为Fixed 和Releasable lock 根据Lock和Block对应关系,分为fine grain和hashed lock Releasable Fixed Fine grain Hashed

PCM Lock 节点2 节点1 block1 Block3 Dml/select row4 Block2 PCM Lock :一个Lock保护两个Block

PING和False Ping Ping: False Ping: 关键在于在OPS环境下,同一时间只允许一个实例修改某个Block。 R/R,R/W,W/R,W/W:只有的一种情况下不会发生Ping的现象。 8i引入了Cache Fusion技术可以减轻ping带来的影响 False Ping: 关键在于PCM Lock不是一个锁Lock一个Block。 如果采用fine grain lock就可以消除false Ping。

DML操作和 Ping - Instance 1 Instance 1 5 Instance 2 Instance 2 IDLM memory area 4 6 15 7 IDLM IDLM 14 8 13 16 3 17 Shared global area Shared global area 1 2 LCK LCK 2 1 9 11 18 Server Server DBWR process process 10 19 OPS database -

DML操作和 Ping(2) 节点2上的server进程检查本地的SGA,看是否已经以Exclusive模式拥有它将要DML的那个Block的PCM Lock。如果已经得到这个Lock,则跳到第16步。 节点2上的Server进程给LCK进程发消息,表示需要以Exclusive模式拥有某个Block的Lock LCK 进程向DLM发出请求,要求获得该Block上的Exclusive Lock。 节点2上的DLM进程检查锁状态,如果没有发现,则 让别的节点上的DLM进程检查状态 DLM进程最后发现是节点1上的某个server进程拥有该Block的Lock 节点2上的DLM向节点1上的DLM进程发消息,请求获得该Block的Lock 节点1上的DLM进程收到请求,向本级的LCK进程发出消息,别的机器请求该Lock。 节点1上的LCK进程向DBWR进程发出命令,把该Block的胀数据写入到磁盘

DML操作和 Ping(3) 10. 节点1上的DBWR接到命令,把脏数据写回到磁盘 11. 节点1上的DBWR进程向LCK进程发消息,表示已经完成任务 12. 节点1上的LCK进程修改SGA里面该Block的Lock状态 13. 节点1上的LCK进程向DLM进程报告,已经释放该锁,别的节点可以使用该锁了。 14. 节点1上的DLM告诉节点2上的DLM,表示它已经释放了该Block上的LCK, 15. 节点2上的DLM更新该进程PGA里面该Block的Lock状态, 16. 节点2上的DLM进程通知LCK进程,表示允许它现在Lock该Block 17. 节点2上的LCK进程更新SGA里面该Block的状态 18. 节点2上的LCK进程通知原来那个请求的Server进程,表示已经获得了它需要的Lock. 19. 节点2上的Server进程现在可以从磁盘读取该Block的数据,并且可以对它进行修改了

不同类型应用程序的可伸缩性 操作类型 May not scale Data warehousing Low Internet Applications with large databases 数据的可分割程度 Departmentalized applications OLTP with data partitioning High Scale well 操作类型 No changes Heavy changes

2.解决方案 进行适当的应用分割和用户分割 进行适当的表分割 合理配置表空间,数据文件 尽量使用sequence 合理分配PCM Lock和Non-PCM Lock Oracle8i/9i Cache Fusion

进行适当的应用分割 DSS类型(R/R): 非常适合,不必专门对OPS进行特别的设计和优化 OLTP类型,具体分析: 按照各个模块的不同,分别连接到不同节点 按照用户性质的不同,分别连接到不同节点 最好是在进行应用程序设计的时候,就对OPS应用进行适当的考虑

表分割 表分割的策略: 用Freelist Groups对数据进行分割 用分区表进行数据分割

用Freelist Groups进行分割 优点: 缺点: 通用性好,从Oracle7到8i都支持 必须重新建表才能进行修改 进行导入导出之后,Freelist, Freelist group信息丢失 手工allocate extent的话,HWM增加,全表扫描时间增加

用表分区技术进行分割 优点: 可以把不同分区放到不同的表空间/物理磁盘上,减少PING同时,还可以平衡IO 缺点: 只能用于Oracle8及以上版本 需要单独购买Partition Option

对表空间数据文件的考虑 把只读数据放入只读表空间 把表和索引放到不同的表空间 把只有一个节点存取的数据放到一个数据文件里面 根据表分区的结果,把属于不同实例存取的数据放到不同的表空间里面 把由不同实例存取的数据文件放到不同的物理磁盘上 定义标准的RAW设备大小

合理使用Sequence 合理设置Cache Size 使用Sequence来产生主键 例子:产生主键的两种方法的比较: 1. SELECT MAX_ID INTO i_MAX_ID_out FROM MAX_ID WHERE TABLE_NAME = i_TABLE_NAME AND AREA_ID = i_AREA_ID FOR UPDATEe ; 2.IF i_table_name='ADDR' THEN SELECT addr_id_seq.nextval INTO o_max_id FROM DUAL; 合理设置Cache Size

PCM Lock和Non-PCM Instance lock的配置 首先要对应用和表进行适当的分割 根据表空间和数据文件的特性来分配PCM Lock数目 对只读表/主要为读的表分配较少的Lock 如果整个表空间为只读,只需给这个表空间一个锁就够了 对于DML频繁的表,而且应用/表分割不完全的数据文件/表空间,分配较多的锁 总是在gc_files_to_locks里面为每个数据文件指定锁的数目

Oracle8i Cache Fusion Select Node A Node B Database buffers 高速互联设备 Node A Node B Data transfer BSP Select Database buffers Database buffers Svr 对于R/W类型的PING, 可以通过节点之间的高速互联设备 直接从Lock一方传送到Read一方 数据文件

四-OPS系统优化实例 系统大概情况 分析当前系统瓶颈所在 考虑优化方案 实施及主要改进

系统概况 系统属于OLTP/DSS混合系统,主要为OLTP性质 有大约250个并发连接用户 有5个主要模块,模块之间耦合比较紧密 两个小型机,分别为2G内存,4个CPU 模块,用户随机连接到两个节点 系统反应过慢,用户抱怨不绝

确定系统瓶颈所在 尝试用单节点运行,反应和原来双节点相差不远,说明OPS的Scale Up很差,Speed Up更加不用说了。 检查V$SESSION_WAIT,V$SYSSTAT,发现主要等待事件是OPS特有的,V$LOCK_ACTIVITY,发现有过多的锁的转换过程 在典型运行时间做了一个report,分析结果是需要对OPS进行优化 在此之前已经对系统进行过一次优化,但是没有考虑到OPS的情况

进一步对瓶颈进行定位 检查GV$PING等OPS视图,确定那些PING现象最严重的表 检查Freelist wait事件,确定哪些表需要加大Freelist groups 检查False ping情况,发现也比较严重 检查数据文件的PCM Lock的分布,发现无论使用如何,都是同样数目的锁数目

考虑优化方案 应用程序的各个模块耦合太紧密,应用分割较难,考虑主要使用表分割,结合应用分割 鉴定一张表(MAX_ID)用来产生很多表的唯一主键,竞争特别严重,改用sequence来产生主键,消除竞争。 对PING现象严重的表进行考察,发现其中有一个列是所有表都有的,而且可以作为分割的关键列 对那些Freelist等待较多的表,用SQL*Navigator倒出建表语句,用exp倒出表的数据,修改Freelist groups参数,重新建表,导入数据 Consistent Read特别严重,考虑使用Oracle 8i版本,引入Cache Fusion技术,减少PING带来的负面影响

考虑优化方案 进一步考虑如何进行表分割 版本为Oracle8.0.6,使用表分区技术 经过仔细应用和表分析,决定根据其中的某个列AREA_ID来分割。使用range partition,AREA_ID属于1-3的分割到分区1,4-8的分割到分区2,分区分别放到两个不同的表空间。 根据AREA_ID的不同,让AREA_ID在1-3的用户连接到节点1,4-8的连接到节点2。 其中某个模块比较独立,让所有这个模块的用户都连接到第一个节点。

实施及主要结果 MAX_ID表已经丢弃不用,改用sequence,不再产生PING的情况 由于表分割的结果,已经把不同节点要存取得数据放到两个独立的表空间,因此采用hashed fixed lock,修改初始化参数gc_files_to_locks。检查V$PING等视图,PING和FALSE PING现象得到很有效的缓解 对一些Lookup表,放到只读表空间,用一个PCM Lock 检查V$SESSION_WAIT, ,和对系统作report,等待事件基本是db file sequential read, OPS事件(如DFS Lock acquisition, DFS enqueue Lock acquisition,Lock Element Cleanup,DFS Lock Convert等) 也减少很多,FALSE PING基本消失 升级到oracle8i尚未进行,因此Cache Fusion的好处不能看到

其他注意事项 在每个实例的init.ora里面指定thread, instance_number,rollback_segs, 下列参数必须在所有实例上相同 gc_files_to_locks gc_rollback_locks log_archive_format (推荐一致) 每个实例必须自己的回滚段和重做日志 重做日志、控制文件和数据文件必须放到裸设备上

讨论