下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

论DBA在企业可持续发展中的价值有哪些

作者:课课家     来源: www.kokojia.com点击数:1015发布时间: 2015-11-14 23:02:54

标签:

让我们一起看看这个纷纷扰扰的文章

在当今竞争激烈的市场环境下oracle视频教程,成本控制毫无疑问是各个企业提升竞争力非常重要的一个部分,由于众多竞争对手会提供同质化产品和服务,企业必须从控制内部成本做起,做为企业内部开销相对比较大的IT部门,应该首当其冲最大化得挖掘系统的潜力。DBA要引进新方法,新思路,扩展自己的视野,不仅仅局限在数据库维护本身。总的来说,DBA能为这个目标做的事情基本上可以分为系统优化,应用优化,流程优化三个方面。
首先谈到系统优化,这是大部分dba都要接触到的工作。企业定出一个商业目标,IT主管需要把这个商业目标转换成系统的承载能力,要保证系统不会成为拖累。这个目标到了DBA这里,DBA需要把它分成主机与操作系统,存储,数据库3个部分。
主机方面的优化会从硬件选型开始,我们需要确定我们的系统目标容量是什么,需要采购什么硬件能够支撑这个容量,要有可量化的指标,有了可量化的指标后我们可以通过测试得出什么机器能满足性能,最后要综合成本考虑,选定一款能符合目标容量并且性价比最高的机器。由于硬件的升级换代非常迅速,一般2年时间就有新一代主机推出,所以在选择机器的时候只选够用的机器而不去追求一次采购到位,任何高端的机器2年过后必然被更高端的机器所代替。一般来说在企业发展的初期,采用LINUX的pc server是最优化的方案,相比较windows系统,linux系统的长时间运行的稳定性更强,与unix系统相比,linux又体现了经济性。在企业的业务迅速发展后,对系统可用性更高的情况下,我们需要考虑采用UNIX系统的服务器,采用各种高可用方案保证系统的稳定性,为业务发展提供支撑。当系统搭建完毕,我们需要把注意力回到主机和操作系统上,对系统的运行状态持续跟踪,对系统的瓶颈进行优化。
存储方面的优化需要DBA对各种存储体系非常了解,对DAS,NAS,SAN的优缺点要了然于胸。要为不同的应用选取不同的存储方案,举个例子,packet tracer如果一套系统的对性能的要求不是第一位,但是非常注重经济性,那么DAS可能会是一个好的选择。如果一套系统要求有快速可以移植能力,那么NAS可能将会是首选。如果一套系统追求的是性能,那么SAN可以做为它的解决方案。另外,当今各个存储厂商也都提出了自己的数据生命周期管理实现方案,大家的目的也都是为了让用户把最重要的数据放在核心存储上,次要的系统和历史数据可以分布在成本比较低的二级或**存储上,尽可能为用户节省成本。另外对于存储方面细节的优化我们可以集中到raid的划分,storage read/write cache划分,存储的iops,throughput和cpu utilization,response time的监控。DBA首先要做到能做正确的事(为不同的应用选对合适的系统),其次要能做到正确的做事(关注技术细节,关注性能,把知识合理得运用到优化中去)。


数据库上的优化DBA首先要做的是找到一种阶段化的优化手段,一般来说针对数据库优化都会经过下列步骤:
1、设定优化目标;
2、记录当前性能;
3、寻找当前瓶颈;
4、优化瓶颈所在;
5、实施优化策略;
6、测量并记录优化后的性能;
7、重复步骤3-6直到达到优化目标为止。
般来说在企业里面优化目标基本会跟数据库的吞吐量,数据库请求响应时间挂钩。在确定优化目标后,我们可以去查看当前性能,查看数据库性能监控报表,查看数据库的等待事件,查看top n sql,联合操作系统上的性能报表一起定位到瓶颈,然后对这些瓶颈做出相应的优化,再比较优化前后性能的差别,反复这个过程,最终达到优化目标。因为企业的应用系统可能天天在变化,dba必须每天都关注性能问题,优化是一个长期持续的过程,最终目标都是为了发挥出系统的最大能量。
接下来说到应用优化,其实很多时候当系统负载比较高的时候都是因为应用里面有性能很差的sql语句引起的,控制sql语句的质量是dba的头等大事。我自己也曾经帮别人优化过很多系统,通常出现问题的时候都是由于sql语句写的不好,该建立的索引没有建,不需要关联的语句去关联,高并发的全表扫描导致系统负载相当高,这时候一些公司的就会考虑去升级硬件,升级存储,升级主机,通常会选用高出实际容量很多的硬件,能用pc server的去选用小型机,能用小型机的选用rac,实际上如果有一个比较专业的dba,那么经过优化后的系统完全没必要升级,这其中的IT投入都可以省掉。
对于自己开发应用程序的公司,DBA要主动建立sql培训体系,定期给开发人员讲解sql相关知识,最好是把已经出现问题的sql做为案例分析进行讲解,这样效果会比较明显。这样做的目的是因为sql语句是程序员写在应用里面识,要能挖掘一切能优化的地方,换个角度去想新方法,新思路,不仅仅局限于数据库本身的优化。
最后说到流程优化,需要有一套完善的体系保证数据库系统的稳定快速运行。从设备选型开始,需要组织一个选型团队,把设备选型当作一个项目在做,需要有DBA(SA),测试工程师,开发人员很多人员组成一个项目团队,需要有PM来负责监督整个项目。
DBA负责数据的准备,测试系统的搭建,测试工程师负责编写测试用例,开发人员负责整理搭建和配置application server,PM协调整个项目的资源和控制项目时间。测试完毕采购完成,DBA要做为PM制定系统升级方案,也是要控制好项目的资源和时间安排,做好和各个相关部门的沟通。硬件上线后需要有测试流程保证程序员开发的应用没有sql方面的问题,只有测试通过才能上线系统。应用发布后DBA要收集有问题的sql,返回给程序员修改这些sql语句,同时针对这些sql对开发人员做阶段性的sql知识培训。DBA团队内部也要建立起培训体系,力求整个DBA TEAM能分享业务知识,提高全体DBA的技术水平。我们所做的这些事情目的都是为了使数据库系统能实现最优化,利用流程规范少犯错,少走弯路,使用最少的资源获得最大的效果。
DBA在现代的企业中不仅仅只是单纯的数据库维护人员,dba要提供高附加值的服务,要利用自己的知识和技能不停的优化系统,减少IT支出,提高企业
竞争力。要做一个优秀的DBA,可持续发展的数据库从业人员,不仅仅要掌握上面说到的掌握操作系统,存储,数据库,良好的沟通技能,项目管理的能力,也要对业界的最新技术有敏锐的嗅觉,具备全局的IT构架规划能力,永远都在不断的学习中成长。

总的来讲,IaaS是让服务环境去适应项目程序,你需要花精力去做运维工作配置好适合的运行环境;PaaS是让项目程序去适应服务环境,你需要限制程序开发的自由度按照PaaS服务的一定规范去开发你的项目。最终选择何种服务器,可以考虑因素的大小来进行决定。总有一款适合你。更多资讯以及数据库可登录课课家官方网进行查询。
 

赞(103)
踩(3)
分享到:
华为认证网络工程师 HCIE直播课视频教程