快捷搜索:

从开发人员到开发DBA需要哪些技术加持

  【IT168 技术】DBA在企业中有着举重若轻的地位,很多问题的解决都是起承转DBA,但是在很多小型公司中由于受规模和成本的限制没有专门的DBA,在这种情况下就需要开发人员去充当DBA的角色,监测和维护数据库的性能,解决一些常规性的问题。那么开发人员应该学习哪些方面的知识才能快速顶替DBA呢?

  很多项目都是一开始很小,但是随着时间的推移,复杂性就会慢慢增加,所以在数据库或系统的原始设计中一开始是一个很好的决定可能之后就会变成一个次优的决定。小型企业,尤其是初创企业为了快速实现产品价值,往往追求速度而忽略了质量,导致很多问题的出现。

  开发人员DBA的三个核心问题应该是系统稳定性、数据完整性或数据质量、速度,基于这三点考虑,我们将介绍一些对这三方面有利的东西。

  成为开发人员DBA应该掌握的数据库知识

  开发人员DBA首先要做的一件事情就是了解数据库的架构和用途,如果能够有一个懂行的人带领你那是再好不过了,如果没有的话,那也没关系,现在市面上有很多商业或免费的工具可供你使用。

  开发人员DBA需要了解的基础信息:

  (1)确认数据库的备份和恢复

  顾名思义,没有数据库就没有DBA,所以开发人员DBA第一步要做的第一步就是确保数据库的备份和恢复,平时要适时的对数据库进行备份和还原,必要时可以做一些测试工作。

  (2)确定数据来源、哪些表拥有较多的数据、运行速度

  通过运行一系列脚本来获得数据库的状态信息,并制定下一步计划。找出哪些表具有最多的数据,哪些表最常更改数据,哪些表具有潜在的索引问题,哪些索引占用比实际数据更多的空间等。

  (3)找出表之间的关系

  找出表之间的依赖关系,更加深入的了解数据库的设计。

  (4)了解数据如何进出(数据采集/报告)。

  找出数据是进入数据库的方式以及何时会失效,并寻找在数据的进入路线上寻找潜在的故障点。

  (5)研究数据的转换方式和目的。

  有些系统会把数据转换成表格、模型或其它数据类型,所以找出数据转换的位置、方式和目的就变得尤为关键,尤其是在数据出错的时候,例如一个表中数据的插入可能会触发触发器,导致另一个看起来不相关表的删除或更新。

  (6)做记录。

  如果你使用的是一个没有文件记录的系统,那么你要做的工作就是记录数据库的变化。

  (7)使用内置报告。

  MS SQL是指微软的SQLServer数据库服务器,它是一个数据库平台,提供了一些即用型系统报告,可以帮助你实时的监控数据库的变化,选择数据库后,右键单击并运行你所需的报告即可。

开发人员应该掌握的DBA技术


  如何让你的数据库更健壮

  使用数据时,健壮的代码是至关重要的,需要注意的事项是事务,错误捕获和日志。 在对数据库结构和架构设计时,一定会面临存储过程的选择,存储过程是指在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。当使用C#写服务代码或使用JavaScript写前端代码时,允许有错误的处理,出现问题时也会被记录在日志中。但是存储过程就不一样了,它很少与用户交互,所以在使用过程中一定要注意以下三个方面:

  (1)如果允许,请把脚本写到事务块中

  事务是指要么不做要么全做,也就是说,它必须一切正常工作,否则就会返回到之前的状态。

开发人员应该掌握的DBA技术


  (2)使用try...catch...来捕获错误信息

  如果脚本发生数据转换错误,数据不匹配或可用性等问题时,我们需要知道错误的原因,这时我们可以利用try...catch...来捕获错误信息。下面的示例是通过插入已经存在的主键来模拟错误。

开发人员应该掌握的DBA技术

  示例输出如下:

  (3)记录错误信息

您可能还会对下面的文章感兴趣: