Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >从被动到主动,换个角度看DB

从被动到主动,换个角度看DB

作者头像
用户5548425
发布于 2020-09-10 08:22:57
发布于 2020-09-10 08:22:57
5090
举报
文章被收录于专栏:韩锋频道韩锋频道

近期做了次分享,主题是从被动到主动,换个角度看DB。之所以讲这个题目,是我个人经历多年对数据库的管理,也是经历了这个过程。随着自己对数据库的理解逐步深入,看待数据库的角度也逐步发生变化。走过了从被动式管理,到主动式预防的过程。希望这次的内容,能开阔大家对数据库的思考角度。

在开始之前,我们先看下DBA的三种状态,相信大家都会同感。第一种状态,是“救火队员”类型。这个时期的DBA,主要是忙于处理系统的各种故障问题,处于一种疲于奔命的状态。在这个阶段,DBA对数据库是不了解的,各种问题隐患无法了然于胸,只能等到问题暴露后,才能解决处理。当然,大家都不喜欢这个阶段,个人疲于解决问题,压力很大;业务也会因为服务降级而遭受损失。随着我们对数据库的问题的了解,各种故障类的隐患问题被消除,此时就进入了第二个类型,我称之为“海量事务”。这个时期,DBA往往会陷入大量事务性的工作。这些工作日常繁琐,如果及时处理就影响系统的稳定性,甚至会酿成故障。因此,DBA会日复一日地处理此类问题,枯燥而且繁琐。例如:处理上线异常SQL性能低下问题,处理方法很简单。往往就是杀掉SQL,前端限流屏蔽入口,分析问题提出优化建议,推动研发修改再次上线。这个阶段的问题在于,我们对数据库本身有了更多的了解,知道问题本身,但不知其所以然,进而无法在前期给予解决。如果我们能更深入地了解数据库,变换看待问题的角度,进而从被动处理到主动预防阶段,也就达到了第三种状态“高枕无忧”类型的。我相信大家都是希望达到这个状态的,那如何才能达到这个阶段呢?下面谈谈我的理解。

要达到第三种状态,首先要做的就是了解你的DB。这里所谈的了解,是分为不同层次的。比较简单的,就例如左侧的状态。就像每个人的做的体检一样,对你的数据库是有个详细的报告。针对数据库的系统、实例、对象直到语句级,都会做到信息的完全掌握。这是我们对数据库了解的基础,也是最基本的信息获取。帮我们解决的是“过去发生了什么?”、“正在发生什么?”的问题。数据库自身一般提供了一些能力,获取这方面的信息,但不同数据库之间这方面的能力差异还是比较大的。有些商业数据库提供了非常完善的工具或手段来获取;而某些数据库(特别是开源产品),这方面做到是比较差的,这时就需要人工或自研工具来弥补。随着我们对数据库了解程度的加深,在左侧体检报告的基础之上,将技术指标能做到特征提取、抽象进而关联到业务上,就会形成类似右侧的结果,我称之为“画像”。其实,大家经常说的某某数据库有什么脾气,其实就是再说这个问题。所谓脾气,就是数据库行为的的一些规律描述。这时就可以帮助我们来解决预测类的问题,即“将要发生什么”。只有能做到上述两个层次的了解,才能说对数据库有了比较全面的掌控。这也是我们后面做很多架构、优化的基础所在。

这里我们先来看看,一份合格的体检报告-Oracle AWR。Oracle中的AWR,是Oracle自动负载信息库的简称。其本质是收集了大量数据库运行态的信息,存储起来,方便DBA做事后或事中的分析、排查、诊断工作。左侧看到的AWR报告,只是其表现形式之一。可以说它为我们提供了一个很好的平台,如上面材料中的比喻部分,就是对AWR的一个很好的描述。迄今为止,Oracle AWR还是我在各个数据库中见过的最好的负载记录平台。可以说有了它之后,针对Oracle数据库问题处理有了强有力的抓手。当然不是说,它做的就十分完美了,其实还是有很大的提升空间。举两个例子,现有的AWR中提供了若干种的报告展示方式,但这些报告一方面对阅读者的要求较高,就如同不同能力的大夫对片子的解读不同;另一方面很多信息还没有直观表现出来,后面也可以看到我也自己开发了一些小工具,通过挖掘AWR的数据提供更为丰富的报告。第二个例子,就是对于信息的分析粒度,还可以进一步增强。比如“top sql”问题,这些SQL语句往往是我们解决问题的入手点。它的收集依据一般是来自于执行特征或某些指标的排期Top来获得。但我们仔细思考下,你去处理一个SQL的初衷是什么,往往不是其执行慢了,而是其执行的行为跟之前不同。也就是说我们要处理的是哪些执行特征发生变化或即将发生变化的语句。我个人之前曾经有个想法,就是从数理统计的角度分析SQL执行特征,进而找出哪些最应该优化的“top sql”。如果一条语句的执行时长方差越来越大,显然后面其出现问题的概率将增大,这要比去单纯比较其执行时长平均值来的有意义。当然我还没有看到有数据库产品可以做到这样的分析,可能某些大厂在其内部有实现,但对外还没有看到。

承接上面,例如针对AWR的数据,就可以进一步挖掘使用。上面材料中的一些图表就是我个人针对AWR数据做的扩展,从更多的角度去看待你的数据库。例如从系统负载维度、从用户对象及SQL维度、从资源使用维度(这里的资源可以包括存储资源、计算资源等)。当然,我们还可以进一步挖掘,将数据库的行为数据与业务数据相结合。举个例子,你负责的是一个订单库,将订单的实时数据与数据库负载相关联,就可以大致评估出现在数据库的承载能力。这对于我们在大促、迁移、升级等评估时,都是非常具有意义的。如果发散起来,不在局限在数据库上,其实是可以做到将业务与整个IT系统基础能力相关联。从前端的网络接入、到应用处理、到缓存、数据库处理、直到后端存储,将整个链路全局管控起来,就可以比较容易发现出当前短板及主要风险点。有很多APM工具,其实就在致力于从这个方面来解决问题。

我们还可以从更细粒度来看待你的数据库。上面材料中是之前笔者在公司做的一个开源数据库审核平台-Themis,其可以从数据结构、SQL等角度更为详细地评估系统的问题。其核心是基于若干种总结的规则,抓取当前系统执行情况,来做分析。后面针对这块,还会有更为详细的说明。

上面我们谈到的是针对现有系统如何去观察,那么针对新建系统或者扩容升级的系统如何来看待呢?也就是说,如何用发展的角度来看待这个问题。上面给出一些思路。例如通过对业务系统的描述,建立业务模型与数据库模型的对象的关联。通过如右上角问题抽象加上左侧的问题实现相结合,从(业务)发展的角度看待你的数据库。在项目评估早期,技术方案评估中,使用这种方式建立数据结构、基础数据,通过对业务抽象描述总结出业务过程,通过测试平台工具完成业务过程的模拟,收集整体性能表现。利用上面的方法,就非常适用。此外,针对迁移、重构、优化等均可以采取类似的方式。

回顾总结一下,上面我们谈到的是从另外角度观察你的数据库。从更多维度、更细粒度、发展角度去观察,所有做这些的一切,是为了满足从被动到主动运维模式转变的基础。只有有足够多的观察结果,才能有明确的目标;有明确目标后,才能有的放矢。后面我将谈谈有了目标之后,如何具体完成目标的一些个人观点。

首先谈到的一点就是,解决问题都是有套路的,所谓套路就是都有一种可规范遵循的方法。以常见的优化来说,当你去解决某个优化问题时,初始是面对一个纷繁复杂的现场,需要从一团乱麻之后找到核心,然后遵循方法论来执行。上述过程,可简单用几个步骤来说明:

  • 收集报告 收集报告,其实就是对应前面的过程,即从多角度去观察数据库。
  • 分析问题 分析问题的阶段,玩玩是最难的。面对同样的信息输入,不同人可能有不同的解读。这也是很多来自于经验积累的结果。现在有很多云厂商,通过提供的智能诊断系统,就是通过积累的海量数据、人工智能模拟了上述过程,将优化的门槛降低。这对于普通用户来说,是很有价值的。分析之后的结果,就是给出问题结论。
  • 建立优化模板 为解决提出的问题,需要建立起个优化模板。这个模板可能包含很多,不仅仅局限在数据库层面,可能包括应用、系统、业务等等。
  • 提出优化方案 针对上面提出的优化模块,进一步整理优化方案,这是比较细化的输出的,到可具体执行的层面。这里谈的方案,可能是单一技术解法,也可能是多种的组合。还需要考虑成本、影响、风险等因素,有所取舍后的结果。
  • 验证优化影响 针对具体的方案,需要仔细评估优化的影响。所有要执行的方案都会是有利也有弊的,需要评估后两者做出选择。例如:有个报表SQL,执行时长1小时,每天执行1次;通过优化后可以将执行时长压缩到半个小时,那会同时影响一定执行100万次的业务SQL,从20毫秒延长到30毫秒;这种优化结果我们应该做吗?答案是No!
  • 评估优化结果 实施评估后的方案,并验证执行结果,判断是否达到预期。这里有个关键点在于对“预期”的判断。在我们最开始指定优化模板的时候,就需要给出明确的优化目标,因为优化本身是没有止境的,没有完美的优化方案,只有适合的方案。不要去做无明确目的的优化,要“有的放矢”。
  • 重复上面步骤 如仍然不满足优化目标,则重复上述过程。重新收集数据开始整个过程。

在我们具体制定方案的时候,是有个层次问题,即优化层次。要解决一个问题,可能在不同的层次解决,从最底层的语句级、对象级,一直到上面的业务架构级,不同层次的方案的影响范围、成本、风险也各不相同。一般我们可以从瓶颈点的分析,来大致判断出层次。

  • 语句级 这个影响范围最小,作为“安全”的一种做法。可精细到某一条SQL,有针对性地进行修改。此时做好必要的测试工作,可对整体的优化效果有个明确的评估,风险、成本等也是比较清楚的。对于上线后的系统,一般建议用这种方式。
  • 对象级 如需要修改到对象的属性、结构等部分,其影响范围较前者扩展了。跟对象相关联的语句都可能会受到影响,特别是某些核心对象,其语句可能有数百、数千条,这种情况下是需要做更大范围的测试评估工作。针对主要的语句,最好可实现带有业务负载的端到端测试,来评估可能的性能变化。
  • 实例级 到了实例层面,影响的范围更大,例如需要调整数据库的参数等。此时,不仅需要考虑影响范围,还需要考虑可行性。例如是否需要重启实例等。一般不建议在线上系统,做实例级的调整修改。包括对数据库版本的升级、迁移,都是面临此类问题,如需要做往往是个浩大的工程,需要针对方方面面,做全方位的测试。
  • 资源层 有的时候,可在考虑在资源层面对优化。其风险较之前反而更小。业务会有一定经济成本的投入,但相较于前面投入的人力成本及面临的风险而言,这种方式我反而比较推荐。例如,从使用HDD到使用SSD,简单的存储介质的更换,往往会取得不错的优化效果,而且风险可控。如果能从这个角度解决,一定不要羞于提出,能达到目的就是好方案。
  • 应用架构 到了这个层面,就不在局限于数据库领域。有些问题,是需要上升到应用架构层面去考虑。例如是否可做些前端限流、是否可使用缓存等,都是从减少数据库流量的方式来优化,而不是仅仅从数据库一端去考虑解决问题。一个好的应用架构,往往是可不依赖于底层数据库实现,就可以满足需求并且具有良好的弹性扩展能力的。
  • 业务架构 回到优化的本质,是为了解决业务问题。当上述手段仍不能解决问题时,可以考虑从业务架构去优化。一个非常典型的问题,就是业务一定要这么做吗?是否有可降级的方式?所以说,数据库人员和应用人员,了解业务是很有好处的。此时,可以更多从业务角度去考虑这个优化问题。

在针对具体优化问题上,其解决思路可简化为上述两点。也就是说,可以从两个角度去考虑你的优化策略。

  • do less or not do 翻译过来就是让数据库尽量做的少或干脆不做。举了例子,如索引优化。索引之所以能加速查询,其本质就是让数据库少做了耗费资源的事情(扫描数据块或排序等)。而尽量不做事情则更为极端,例如架构中引入缓存,让很多需要数据库完成的工作在缓存中完成,这样的优化效果当然更好。
  • if must do ,do it fast 承接上面,如果数据库要做的事情必须完成,则尽量让其集中精力完成的快一些。什么时候,数据库是运行最快的,那就是on cpu的时候,如果数据库在执行中大量耗费在上下文切换、资源等待的过程中,其效率是不高的。

在执行的时机上,通常有自顶向下和自底向上两种方式。前者一般是遵循系统设计、优化、上线的流程完成,其比较系统性地解决问题;而后者则是救火式的,针对个案的解决问题。相较于前者,后者方案往往不是最优的,甚至很多时候是妥协的结果。因此,尽量能采用自顶向下的方式是更好的选择。

在具体问题的处理上,可有些更为系统化的解法。上面是我之前在处理数据库审核问题的方法,通过团队经验总结的规则,结合公司实际情况,自研平台的方式,并取得了不错的效果。

在数据库架构上,有个观点就是“没有完美的数据库方案”。在早期的数据库架构中,受限于当时场景、规模及数据库技术发展局限,往往是通过单一数据库技术来解决所有问题。那个时候的选择是比较简单的,就是从几个商业数据库中选择其一即可。后来随着数据使用的深入,其对规模、性能、使用方式等有更高要求,场景化差异也很大,这时就衍生出多种架构的数据库来满足不同的需求。因此,在做架构选择时,先要搞清楚是属于那种架构。

在具体架构上,不同方案在数据规模、使用特点、存储特征等方面各有所长。其核心点是因为数据价值密度的差异。在OLTP为代表的事务型业务上,数据存储规模较小,存储结果采取的结构化方式,其数据价值密度很高、实时性要求也较高。例如典型的在线交易系统就是如此。到了OLAP为代表的分析型业务,其数据规模更大、价值减低、实时性要求也有所减低。到了NoSQL,领域也有其鲜明特点。当然目前有种趋势,就是融合的方式,各架构之间的差异没那么明显。我们在做选择时,对需求有个准确清晰认识就好。

上面谈到的数据价值密度问题,再展开说明下。数据库存储数据,其数据规模会随着时间的推移,数据量增大;而数据活跃程度,则会随着时间推移而下降。这里有个数据分层的概念,就是对价值密度、活跃程度(其本质是业务特征)不同的数据采取分层处理的方式,而不是集中在一个数据库中解决,主动为数据库减负。因为作为IT基础平台的核心部分,数据库仍然较其他组件来说,是扩展性最差的短板,尽量在架构阶段就对数据库做好合理的拆分非常必要。努力给你的数据库做做减法,很有好处。当你在数据库架构设计文档中,包含有数据转储、清理、归档、压缩设计时,就是对这点一个很好的体现。

随着技术的发展,现在也涌现出很多新的技术,这些对我们做架构有很大意义。考虑清楚这些新技术的特点、长处、短板,结合业务找到它们的着力点。不要为了上新技术而使用新技术,也不要因为不了解而忽视了新技术的出现。

除了新技术,对于很多传统的工作,我们可以做更多更精细化的工作。例如上面材料中的SQL优化路径,就是针对SQL优化这一问题总结的方法论;下面则是针对索引修改做的策略收集表格。从上面内容可以发现,将我们日常的工作,做了更为系统化、规范化的梳理,也非常具有意义。将这些工作做到极致,同样可以发挥出很大的价值。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 韩锋频道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
换个角度看DBA,其实没那么光鲜,也没那么闲
这是之前的一次调研,原来的萌新都成了熟手,而年轻的毕业生也走入工作岗位,我们来看看各家之言。
jeanron100
2019/10/14
1.8K0
解DBA之惑:数据库承载能力评估及优化手段
针对系统运行现状,建立性能基线。将业务指标与性能指标建立起对应关系。这里所说的性能指标包括CPU、MEM、DISK、NET等。在诸多资源中,肯定存在不均衡的情况,短板的资源最有可能成为业务增长后的瓶颈。在具体操作上,可首先确定一个业务高峰时间段,通过监控平台或监控工具收集系统各资源的使用情况。然后依据收集的信息,分析可能的性能短板在哪里。
宜信技术学院
2019/06/27
6270
解DBA之惑:数据库承载能力评估及优化手段
且听AWR之父解读AWR报告
AWR报告是数据库性能评估和优化的重要参考,将数据库的问题已量化的形式展现出来,给DBA带来了很多便利。然而AWR中的内容是非常多的,如何才能以最佳的方式解读AWR报告,最高效地找出数据库的性能问题所在呢? 在刚刚过去的OOW2017大会上,AWR之父Graham 做了一个主题分享,名为“AWR Analysis for Admins, Developers and Architects” 运维、开发及架构师都应该一读的AWR报告分析。演讲ppt已在oow官网公开,接下来我们简单解读一下分享的主要内容。希
数据和云
2018/03/08
1.3K0
且听AWR之父解读AWR报告
三谈去O之“数据库画像”
很多公司在考虑去O的时候,经常面临这样的问题—"对自己的数据库不够了解",也不免有这样一些疑惑:
用户5548425
2019/06/19
1.3K0
三谈去O之“数据库画像”
关于国产数据库的46个问题
近些年来,国产数据库成为较热门的话题。有越来越多的公司考虑采用国产数据库产品。近期在与twt社区的互动中,发现有大量相关的讨论,关注度也较高。特将自己回答的部分问题摘录如下,也算是对若干热点问题的个人观点。
用户5548425
2022/08/31
1.3K0
深入解析和定制Oracle优化工具
首先不会Oracle的我觉得也可以听懂。哈哈,因为我不会专门讲oracle里的太细的东西。这部分的内容比较通用,可以借鉴思路。 我会在我的平台里面糅合这些思想,总之有货有料之后,加上时间和精力,就好比阳光空气水。 ppt有一部分是我在InfoQ的一次大会上做的一个简单的分享,今天在原来的ppt基础上重新做了一番解读。 这是我眼中的一些问题,有些Oracle已经做好了,对于一个成熟的商业软件来说,尽管功能上满足了,还是有些地方值得改进,或者说他们做得还不够好的地方。 这也体现了处理问题的几个阶段,有
jeanron100
2018/03/22
8770
深入解析和定制Oracle优化工具
一个"TOP SQL"类产品的构想
作为一名DBA,SQL优化是工作中必不可少的部分。如何快速、准确的发现待优化的语句,是DBA经常需要考虑的问题。很多数据库都内置有慢查询、SQL报告等能力,这也是DBA作为SQL优化的通常入口。但在长时间的工作中也发现,系统提供出的SQL并不能全面反映语句运行情况,甚至会误导优化的方向。下文是笔者在数年前萌发的一个产品(暂定名MyTopSQL)想法,很遗憾因各种客观因素未能落地。近期看到多篇AI+DB结合的文章,颇受启发;特分享出此文。本文没有多么高端的算法理论,只是些简单的数理统计,但相信同样能具有不小的价值。如读者感兴趣想尝试实现,可与我沟通。
用户5548425
2019/10/24
6840
解读《数据库服务能力成熟度模型》
数据库,作为企业重要IT基础设施之一,在数字化中扮演着重要的角色。其是否运行平稳、是否处于最佳状态、是否可方便的扩展等,进而是否能满足业务现状及未来发展,这些对于企业至关重要。要达到上述目标,取决于两个方面:数据库产品自身能力、数据库服务能力。可以说“产品+服务”,决定了最终的结果如何。但在很长一段时间里,对于前者(产品)有很多手段去了解、评估;但对于后者(服务)却少有有效的衡量方法。在过去的三、四十年里,传统数据库市场主要是以国外大型商业数据库为主,其服务能力经过多年积累已相对成熟、完善,并构建起一整套标准及相应的配套服务团队。但随着近些年来数据库市场有了明显的变化,一是以开源为主导数据库方案在很多公司得以使用;二是国产数据库也层出不穷,并愈发呈现蓬勃发展之势;三是分布式、云化技术特点为代表的新数据库形态逐步被人认知并投入使用。针对这种新的变化,过去按单一产品作为衡量标准就不太合适,急需一种通用的行业标准来度量数据库服务能力。
用户5548425
2020/11/05
1.3K0
解读《数据库服务能力成熟度模型》
【DB笔试面试819】在Oracle中,什么是AWR?
ASH(Active Session History,活动会话历史信息)、AWR(Automatic Workload Repository,自动负载信息库)、ADDM(Automatic Database Diagnostic Monitor,数据库自动诊断监视工具)是Oracle性能调整的三把利剑,需要深入地了解,但是面试一般都问得比较简单,主要问到的是AWR。
AiDBA宝典
2020/06/17
1.7K0
告警数量减少95%:去哪儿数据库巡检报警系统做了哪些优化?
尤其是在节前高峰等重要时间点,提前进行风险和容量评估等工作显得更为重要和紧急,而如何利用巡检信息进行综合研判也就显得更有价值。
TakinTalks稳定性社区
2024/06/03
2520
告警数量减少95%:去哪儿数据库巡检报警系统做了哪些优化?
一个数据库十年老兵的思考与总结
作者介绍 王竹峰 去哪儿网数据库总监,擅长数据库开发、数据库管理及维护,一直致力于 MySQL 数据库源码的研究与探索,对数据库原理及实现有深刻的理解。曾就职于达梦数据库,从事多年数据库内核开发工作,后转战人人网,任职高级数据库工程师,目前在去哪儿网负责 MySQL 源码研究与运维、数据库管理和自动化运维平台设计开发及实践工作,是 Inception 开源项目及《MySQL运维内参》的作者, MySQL 方向的 Oracle ACE。 一、数据库开发 2011年从华中科技大学数据库与多媒体研究所毕业之后,
博文视点Broadview
2023/04/19
3820
一个数据库十年老兵的思考与总结
数据使用全过程的一点思考
数据,是我们对客观事物的数量、属性、关系等的抽象描述,进而方便人们对其保存、传输和使用。但其没有相关背景,不能表达具体含义。
用户5548425
2019/12/19
6010
长文:数据库架构面面观
本文为近期参加dbaplus社群在线直播活动摘录。作为一个数据库领域资深从业者(好吧,我是个70后)。近些年来,主要从事数据库产品、架构等工作。下面将以我个人感受,谈谈数据库架构工作的多方面影响因素及成长、实践话题。希望能给大家带来些思考。
用户5548425
2020/08/13
3730
长文:数据库架构面面观
DBA 有心眼,难搞的SQL实际案例分析--都是别人的错
Austindatabases公众号已经开启了,AI 文章分析,AI 文章问答,比如你想知道AustinDatabases 里面,说了多少种数据库,那些是讲 MySQL,那些是PostgreSQL, 那些是OB ,POLARDB ,MongoDB ,SQL Server, 阿里云的,问他他会列出来,同时如果有问题不明白,可以将文章的文字粘贴到公众号提供的专用AI ,公众号将通过众多文章(目前1300多篇)来进行尝试性的解释。使用方法,直接到微信公众号中点击服务,选择AI问答。如下示例
AustinDatabases
2025/04/16
840
DBA 有心眼,难搞的SQL实际案例分析--都是别人的错
假期结束了,DBA们又要忙起来了
春节长假结束了,打工人们陆续返回工作岗位了,做为DBA需要做哪些工作呢?
Yunjie Ge
2025/02/05
870
假期结束了,DBA们又要忙起来了
持续关注突发,数据库运维应该关注哪些潜在风险?
正式分享之前,先对最近热门的删库事件做一点反思。作为DBA应如何加强预防,改进措施防止再出现类似事件呢?我认为主要从三点出发:一是流程规范,二是技术支撑,三是安全制度。
腾讯云开发者
2020/04/07
8.1K0
我不会写代码,能做DBA吗?
本文转载自云加社区 导语 | 虽然数据库上云解决了传统数据库很多问题,但如何让云数据库发挥最优的效能,依然充满极大挑战。为解决这一难题,高速发展的云数据库正在走向“自治”。本文是对腾讯云数据库高级产品经理刘迪在云+社区沙龙online的分享整理,为大家带来腾讯云在数据库自治服务领域的探索和实践,希望与大家一同交流。 点击视频查看完整直播回放 一、数据库自治的演进 上图所示是一张关于数据库自治的宏观视图。 业内普遍定义的石器时代大概是在十几、二十年前,刚刚进入数据库发展的快速轨道,当时的技术方案和对于
腾讯云数据库 TencentDB
2020/08/13
1K0
做一名合格的DBA
Oracle DBA的角色定义 开发型DBA 数据库安装 数据库架构设计(架构和建模) 代码开发(存储过程,SQL) 运维型DBA 数据库日常监控 故障处理 性能优化 数据备份,容灾 数据库安全规划 DBA的操守 在自己的责任范围内 让数据库设计更合理,预防设计导致的性能或安全隐患 数据更安全 数据库性能更优 数据库日常管理更合理 故障发现,处理及时 数据库的架构设计 数据库架构 分布or单库 实例的冗余 RAC or single 数据库的安全和容灾 DG or streams or Rman 空间的考虑
职场亮哥
2020/10/10
4210
一条SQL引发的“血案”:
导读:笔者早年间从事了多年开发工作,后因个人兴趣转做数据库。在长期的工作实践中,看到了数据库工作(特别是SQL优化)面临的种种问题。本文通过几个案例探讨一下SQL优化的相关问题。
朱小五
2020/08/21
6880
一条SQL引发的“血案”:
Oracle AWR与警报系统
Oracle收集大量有关性能和活动的统计信息。这些信息在内存中积累,并定期写入数据库:写入到构成自动工作负荷知识库(Automatic Workload Repository,AWR)的表中。AWR作为SYSAUX表空间中的一组表和其他对象而存在。AWR与数据字典相关,但又与数据字典不同,因为AWR对于运行数据库而言并不是必需的。数据写入AWR,并存储一段时间,最终被最近的信息覆盖。
星哥玩云
2022/08/17
5560
相关推荐
换个角度看DBA,其实没那么光鲜,也没那么闲
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档