《Oracle性能优化与诊断案例精选》——1.6 理想实践,开发运维一体化

简介:

本节书摘来自异步社区出版社《Oracle性能优化与诊断案例精选》一书中的第1章,第1.6节,作者:盖国强 , 李轶楠 ,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.6 理想实践,开发运维一体化

在数据行业那么久,我们总希望能够通过自己的努力,将好的想法落地,渐渐地改变行业中的不合理之处,让这个技术世界变得美丽一点点。

那么这个行业里有什么迫切需要改变的?

作为资深的DBA你可能会发现,我们10年前处理的问题和今天没有什么不同。针对数据库的运维巡检日复一日,SQL优化应对全表扫描或是隐式转换,转眼就耗费了经年的时光。所以我们有一个理想,不要让DBA重复在这些无休止的工作上,或者至少能够做得更有价值,也力争能够改变用户在使用数据库的过程中,屡见不鲜的事后救火。

所以我们第一个在国内提出了“SQL审核”“智能巡检”等理念,希望真正能够通过自动化运维、工具化约束,去改善SQL开发质量、发现和凸显问题,从而防患于未然,提升系统稳定性,改善数据库运维的现状。我们相信通过规范化、标准化、智能化,才能够不断推动业界向前。

早在2011年,我们基于对于业界的思考,就开始开发了一款SQL审核产品,称为z3,如图1-10所示。它可以审核开发测试阶段的SQL,发现问题,提出建议,希望由此将运维DBA和开发结合起来。我们从未想过,这居然就是今天最热门的DevOps所讨论的范畴。

image

通过不断地呼吁和倡导,今天我们非常欣喜地看到国内很多企业都开始去开发这方面的工具,去推行SQL审核的理念。

那么什么是DevOps呢?维基百科的定义如下所示。

DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

从这个定义可以看出DevOps实际上是一种文化上的改变。开发和运维通过更多的沟通达成更可靠的系统输出,从而为企业的共同目标而加注动力。在2015年Gartner的技术成熟度曲线上,DevOps正处于巅峰。

而根据多年的行业经验,我们认为DevOps在Oracle数据库的最佳实践应该就是SQL审核。江苏移动技术专家戴建东的一段感触之言为我们提供了来自实践的依据,他明确提到:

“其实在生产中,绝大多数Oracle的业务系统出现问题都是SQL导致的。但是大多DBA,尤其是偏运维的DBA对SQL并不擅长,这些DBA承担着数据库运维和维护稳定性的职责,而他们对这些问题可能又无能为力。原本SQL的质量应该是开发层负责的问题,但目前的现状是,开发人员管不了,运维人员不擅长。所以当系统出现问题的时候,就需要专业人员“救火”,而事发或事后救火往往是业务已经遭受了损失。”

SQL审核的理念就是,将这些“开发人员管不了,运维人员不擅长”的核心SQL问题抽取出来,作为DevOps的范畴。通过来自运维的经验,指导和辅助开发完成高性能的SQL改写,并且不断通过自动的SQL审核工具和专家的修改建议相结合,推进开发质量的提升,改善系统的稳定性,将性能事故消弭于无形。这也正是DevOps的理想所在。

对于开发团队来说,持续的进行SQL培训我认为非常重要,开发的SQL能力提升了,对于DBA只有好处,数据库的稳定性自然会得到提升。DBA也有职责去和开发沟通,对他们进行面向运维高性能培训。在Oracle DevOps时代,DBA要勇于承担责任,去推进变化。而且在DBA的学习过程中,就是要不断深入去了解各个层面的知识,才能不断进步、融会贯通,找到如鱼得水、游刃有余的感觉。也才能从工作中找到自信和乐趣,进而培养和巩固兴趣,在完善自我的同时帮助他人,提升团队。

在今天的云时代,各个领域都在发生变化,DBA的领域同样面临挑战,表达一下我的观点。

(1)DBA从后端走向前端才能更充分的体现其技术价值。

(2)应用向着预防问题方向演进永远比事后救火更重要。

所以慢慢很多企业开始在开发环节,以开发DBA来进行把关,以SQL审核优化来控制质量。我建议DBA们关注一下这个方向和变化。在现实中,解决单个问题往往是简单的,但是我们应该思考如何去防范一类问题,让更多的人免于重复落入类似的故障。

从经验到规范,从规范到规则,这是DBA工作更高价值的体现。当我们能够将经验固化成SQL、算法或者程序之后,才能帮助到更多的人。我想,只要我们每个人在自己熟悉的领域都能够努力一点点,就能够一起将我们所从事的行业变得美好一点点,从而也会使得我们的世界变得美好一点点。

云和恩墨在云的时代,正在致力于以团队智慧和经验,衍生产品,以产品服务更多的客户和DBA们,进而推进行业的进步

相关文章
|
5天前
|
运维 监控
构建高效运维体系:从理论到实践
在当今快速发展的信息化时代,高效的运维体系是保障企业信息系统稳定运行的关键。本文旨在探讨如何构建一个高效、可靠的运维体系,通过分析当前运维面临的挑战,提出相应的解决策略,并结合实际案例,展示这些策略的实施效果。文章首先介绍了高效运维的重要性,接着分析了运维过程中常见的问题,然后详细阐述了构建高效运维体系的策略和步骤,最后通过一个实际案例来验证这些策略的有效性。
|
6天前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
17 2
|
5天前
|
机器学习/深度学习 数据采集 人工智能
智能运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的兴起背景、核心组件及其在现代IT运维中的应用。通过对比传统运维模式,阐述了AIOps如何利用机器学习、大数据分析等技术,实现故障预测、根因分析、自动化修复等功能,从而提升系统稳定性和运维效率。文章还深入分析了实施AIOps面临的挑战与解决方案,并展望了其未来发展趋势。 ####
|
14天前
|
人工智能 运维 监控
构建高效运维体系:理论与实践的深度融合####
本文旨在探讨高效IT运维体系的构建策略,通过理论框架与实际案例并重的方式,深入剖析了现代企业面临的运维挑战。文章开篇概述了当前运维领域的新趋势,包括自动化、智能化及DevOps文化的兴起,随后详细阐述了如何将这些先进理念融入日常运维管理中,形成一套既灵活又稳定的运维机制。特别地,文中强调了数据驱动决策的重要性,以及在快速迭代的技术环境中保持持续学习与适应的必要性。最终,通过对比分析几个典型企业的运维转型实例,提炼出可复制的成功模式,为读者提供具有实操性的指导建议。 ####
|
16天前
|
机器学习/深度学习 人工智能 运维
智能运维:AIOps在大型系统运维中的实践与挑战
【10月更文挑战第28天】随着云计算、大数据和人工智能的发展,AIOps(人工智能运维)应运而生,旨在通过算法和机器学习提高运维效率和质量。本文探讨了AIOps在大型系统运维中的实践与挑战,包括数据质量、模型选择和团队协作等方面,并通过一个异常检测案例展示了其应用。尽管面临挑战,AIOps仍有望成为未来运维的重要方向。
46 5
|
12天前
|
运维 负载均衡 Ubuntu
自动化运维的利器:Ansible入门与实践
【10月更文挑战第31天】在当今快速发展的信息技术时代,高效的运维管理成为企业稳定运行的关键。本文将引导读者了解自动化运维工具Ansible的基础概念、安装步骤、基本使用,以及如何通过实际案例掌握其核心功能,从而提升工作效率和系统稳定性。
|
14天前
|
运维 资源调度 监控
提升运维效率的关键技术与实践
在当今快速发展的信息技术时代,运维工作面临着前所未有的挑战和机遇。本文旨在探讨如何通过采用先进的技术和实施最佳实践来提高IT运维的效率和效果。我们将深入分析自动化工具、监控策略、灾难恢复计划以及持续集成/持续部署(CI/CD)等关键领域,展示它们如何协同工作以优化运维流程。此外,文章还将提供一些实际案例研究,帮助读者更好地理解这些概念的应用。无论是对于初创公司还是大型企业,掌握这些技术都将是提升竞争力的关键。
|
23天前
|
运维 应用服务中间件 持续交付
自动化运维的利器:Ansible入门与实践
【10月更文挑战第21天】在现代IT基础设施的管理中,自动化运维已成为提升效率、降低错误率的关键。Ansible,作为一种简单而强大的自动化工具,正被广泛应用于配置管理、应用部署和任务自动化等领域。本文将引导你了解Ansible的基本概念,通过实际案例展示如何利用Ansible简化日常运维工作,并探讨其在现代IT运维中的应用价值。无论你是新手还是有经验的系统管理员,这篇文章都将为你开启Ansible的高效之旅提供指导。
|
26天前
|
存储 Oracle 关系型数据库
数据库数据恢复—Oracle ASM磁盘组故障数据恢复案例
Oracle数据库数据恢复环境&故障: Oracle ASM磁盘组由4块磁盘组成。Oracle ASM磁盘组掉线 ,ASM实例不能mount。 Oracle数据库故障分析&恢复方案: 数据库数据恢复工程师对组成ASM磁盘组的磁盘进行分析。对ASM元数据进行分析发现ASM存储元数据损坏,导致磁盘组无法挂载。
|
29天前
|
运维 自然语言处理 开发者
作为一名运维人员,使用通义灵码个人版处理日常工作中的代码相关任务,极大地提升了我的工作效率。以下是我使用通义灵码的具体实践场景、效果和心得,以及相应的截图。
作为一名运维人员,我使用通义灵码处理日常工作中的代码任务,效率提升了30%。通义灵码帮助我快速理解复杂代码、生成准确的代码注释,并能从自然语言生成代码示例,大幅减少了代码编写和理解的时间。
57 3

推荐镜像

更多