Oracle数据库的DevOps实践_第1页
Oracle数据库的DevOps实践_第2页
Oracle数据库的DevOps实践_第3页
Oracle数据库的DevOps实践_第4页
Oracle数据库的DevOps实践_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Oracle数据库的DevOps实践技术创新,变革未来Oracle 2015: All About CloudIntegratedEasy Migra/on Security Oracle 2014: All About Cloud Microso+ Market vision: consists ofNoSQL (Azure DocumentDB and Azure Tables), cloud oerings (including hybrid cloud) Its vision for in-memorycompuMng across products, hybrid cloud imp

2、lementaMons and a cloud rst strategy is ahead of its compeMtors.Cloud:改变数据库领域竞争格局云上的竞争,改变数据领域格局。Source: Gartner (October 2015)Magic Quadrant for OperaMonal Database Management SystemsAmazon Web Services (AWS) oers the Amazon RelaMonal Database Service (RDS, for Aurora, Microso+ SQL Server, MySQL, Or

3、acle and PostgreSQL) and Amazon DynamoDB (a NoSQL document and key-value DBMS). Oracle全堆栈:不断的革新 走进云时代InfrastructureInfrastructure as a Service (IaaS)PlaWormPlaWorm as a Service (PaaS)AppsSo+ware as a Service (SaaS)592SaaS Cloud Applica/ons70M+Users/Day33B+Transac/ons/Day19 of 20Top Cloud Providers R

4、un onOracle24Cloud PlaLorm ServicesDevelopers Worldwide 9M+Cloud DBA:自后向前置的运维转变 DevOps:开发和运维磕磕碰碰“Code is wri*en.its your problem now”Hey Ops - Heres our code.good luck! DevOps:从全局视角看运维DevPaid to add new featuresDevOpsOpsPaid to keep system stable, fastand availableNew goal:Add new features and keep

5、the system stable, fast and availableCultural movement enabled by technology DevOps:从全局视角看运维引自:王津银 精益运维论Dev与Ops冲突的根源、表现形式及其解决方案 拆墙:研发运维团队把彼此的作 用力触达到对方,感受到彼 此的要求和能力;换舞台:把底层的舞台给换了,“经济基础决定上层 建筑”,底层换了,上面的 思路也就随之变化。云带来的数据库运维改变 云带来的数据库运维改变运维DBA也被称为“系统DBA”,更专注于数据库本身及相关技术体系,需要熟 悉DB、OS、网络、硬件,职责包括数据库安装、备份、监控、

6、诊断等 工作,还负责提出数据库性能优化方案、高可用方案等基础性工作。产品DBA有时也被称为“开发DBA”,通常要求熟悉业务逻辑,了解业务架构,参 与业务模型设计、数据架构规划,进行SQL审核,甚至要负责复杂逻辑 SQL开发。 DevOps 最佳实践:辅助开发SQL审核基于前端开发的SQL审核服务 实现优化前置SQL是一项专业的技能 Oracle SQL Language Reference 2000 页由于开发人员的技能差异、变化频繁,很多SQL隐患在开发环节被埋入系统;SQL审核通过专业的工具和SQL专家服务,守住上线关卡,实现规范落地;300%SQL执行效率大幅提升 应用系统效率大幅提升

7、系统资源充分利用SQL中子查询使用的是否合理表连接方式及顺序是否合理执行计划是否有效SQL编写是否符合统一标准通过对其进行综合性的分析,设计出最佳索引。实现以最少的索引个数满足最多读取要求的目标。SQL审核SQL开发SQL培训线上SQL以表为单位,搜集SQL的Access Path。审核优化 案例一:从Dev细微处提炼Ops规则WHEREt.dict_kind = investobj ANDtrim(t.dict_key) IN(41)不一致 大道至简 从基本的语法语义出发SELECTt.* FROMt_dict t查询条件与列类型select t.* from t_dict tWHERE t

8、.dict_kind = investobj AND trim(t.dict_key) IN (41)select t.* from t_dict tWHERE t.dict_kind = investobj AND trim(t.dict_key) IN (41)重写select t.* from t_dict tWHERE t.dict_kind = investobj AND trim(t.dict_key) IN (41)select t.* from t_dict tWHERE t.dict_kind = investobj AND t.dict_key IN (41)重写大道至简

9、从基本的改写优化出发重写1:保证传入值类型与列定义一致 案例一:从Dev细微处提炼Ops规则规则一:确保参数类型一致,避免不必要的隐式转换;重写2:修复表tsys_dict_item字段dict_item_code数据,去除空格,SQL上去掉trim函数规则二:确保数据标准化和必要清洗,避免进一步的函数处理;案例二:Dev 编写不规范引发Ops故障 在大规模的开发团队,规范的制定、贯彻与落实,都面临着巨大的挑战。子查询和父查询使用了相同的表别名,导致查询 歧义,结果集错误,笛卡尔积;规则三:同一SQL查询,避免出现同样的对象别名,防范错误关联;案例三:从Dev SQL逆向推理应用架构单条SQL

10、引发雪崩-导致系统不可用 案例三:从Dev SQL逆向推理应用架构FOR UPDATE锁表?LOCAL索引访问效率低?ROWNUM绑定变量的值改变? COUNT STOPKEY没有生效? PARTITION HASH ALLSELECT UNICARD_NO FROM TF_R_UNICARDWHERE PRESENT_TAG = 0AND LIMIT_DATE + 0 SYSDATE + 90 AND UNICARD_STATE|NULL = 0AND UNICARD_VALCODE|NULL = :B3AND ROWNUM = :B2 AND RESERVED1 = :B1AND (RES

11、ERVED2 99 OR RESERVED2 IS NULL) FOR UPDATELIMIT_DATE + 0 SYSDATE + 90UNICARD_STATE|NULL = 0UNICARD_VALCODE|NULL = 04ROWNUM = 1RESERVED1 = 0422(RESERVED2 99 OR RESERVED2 IS NULL) ;selectedLIMIT_DATE + 0 SYSDATE + 90UNICARD_STATE|NULL = 0UNICARD_VALCODE|NULL = 04ROWNUM = 1RESERVED1 = 0422(RESERVED2 99

12、 OR RESERVED2 IS NULL) ;electedLIMIT_DATE + 0 SYSDATE + 90UNICARD_STATE|NULL = 0UNICARD_VALCODE|NULL = 04ROWNUM = 1RESERVED1 = 0422(RESERVED2 99 OR RESERVED2 IS NULL) ;selectedSQL SELECT UNICARD_NO2FROM UCR_CARD_01.TF_R_UNICARD PARTITION(P1)3WHERE PRESENT_TAG = 04AND SQL SELECT UNICARD_NO5AND2FROM U

13、CR_CARD_01.TF_R_UNICARD PARTITION(P2)6AND3WHERE PRESENT_TAG = 07AND4ANDSQL SELECT UNICARD_NO8AND5AND2FROM UCR_CARD_01.TF_R_UNICARD PARTITION(P3)9AND6AND3WHERE PRESENT_TAG = 07AND4ANDno rows8AND5AND SQL SELECT UNICARD_NO9AND6AND2FROM UCR_CARD_01.TF_R_UNICARD PARTITION(P4)3WHERE PRESENT_TAG = 07AND4AN

14、D LIMIT_DATE + 0 SYSDATE + 90 no rows s8AND5AND UNICARD_STATE|NULL = 09AND6AND UNICARD_VALCODE|NULL = 047AND ROWNUM = 1no rows8AND RESERVED1 = 04229AND (RESERVED2 99 OR RESERVED2 IS NULL) ;no rows selected案例三:数据架构设计形成逻辑炸弹SQLSELECTUNICARD_NO2FROMUCR_CARD_01.TF_R_UNICARDPARTITION(P5)3WHEREPRESENT_TAG=

15、04ANDLIMIT_DATE+0SYSDATE+905ANDUNICARD_STATE|NULL=06ANDUNICARD_VALCODE|NULL=047ANDROWNUM=18ANDRESERVED1=04229AND(RESERVED299ORRESERVED2ISNULL);UNICARD_NO- 13XXXXXXXXXXXX 案例三 调整索引缩减数据访问范围SQL ALTER SESSION FORCE PARALLEL DDL;Session altered.SQL CREATE INDEX IND_UNICARD_RES_VALCODE_DATE ON TF_R_UNICARD

16、2(RESERVED1, UNICARD_VALCODE|NULL, UNICARD_STATE|NULL, LIMIT_DATE + 0) PARALLEL 8 ONLINE;Index created.SQL ALTER INDEX IND_UNICARD_RES_VALCODE_DATE NOPARALLEL;Index altered. DevOps 全生命周期管理 性能预警规则SQL ALTER SESSION FORCE PARALLEL DDL;Session altered.SQL CREATE INDEX IND_UNICARD_RES_VALCODE_DATE ON TF_

17、R_UNICARD2(RESERVED1, UNICARD_VALCODE|NULL, UNICARD_STATE|NULL, LIMIT_DATE + 0) PARALLEL 8 ONLINE;Index created.SQL ALTER INDEX IND_UNICARD_RES_VALCODE_DATE NOPARALLEL;Index altered.线性可扩展,性能弱衰减。 预警指标:逻辑读/返回行数规则四:量度单行记录返回效率,例如不超过 5,000 lr/row;案例四:Dev & Ops - 理解数据 理解索引SQL审核 去完成那20%最有价值的工作 全表扫描的原因并不单纯

18、SQL审核 去完成那20%最有价值的工作全表扫描的原因并不单纯案例四:Dev & Ops - 理解数据 理解索引规则五:在数据结构设计时尽量避免日期的空值,DEFAULT值设定是可选项之一; SQL审核 去完成那20%最有价值的工作全表扫描的原因并不单纯案例四:Dev & Ops - 空与不空 明心见性MOD(UNI_ID, 10) BETWEEN 6 AND 7潜在包含UNI_ID is not null 案例四:Dev & Ops - 空与不空 明心见性SQL审核 去完成那20%最有价值的工作全表扫描的原因并不单纯MOD(UNI_ID, 10) BETWEEN 6 AND 7潜在包含UNI_ID is not nullDevOps 最佳实践 从案例到规则 从规则到规范 从规范到工具云带来的数据库运维改变也被称为“系统DBA”,更专注于数据库本身及相关技术体系,需要熟 悉DB、OS、网络、硬件,职责包括数据库安装、备份、监控、诊断等 工作,还负责提出数据库性能优化方案、高可用方案等基础性工作。运维DBA产品DBA通过开发自动化工具改善数据库运维,提升 系统稳定性;甚至通过修改源码来解决问题;通常要熟悉业务逻辑,了解业务架构,和架构师一起参与业务模型设计、数据架构规划,进行SQL审核,甚至要负责复杂逻辑SQL开发。开发DBA DevOps 以自动化工具提升运维

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论