数据库 频道

如何入门学习一个新的数据库

最近这几年是我学习数据库种类最多的,自从三十年前学习Oracle之后,后来很少系统地学习某个新数据库了。不过最近这几年因为众所周知的特殊原因,我陆续学习了十多种国产数据库,除此之外还观察分析了40多种。

个人感觉无论如何从纸面上分析某个数据库,不去系统学习一下,还是了解得十分肤浅的。有一次一个朋友推荐给我一个数据库产品,我开始看资料觉得还是不错的,后来开始测试后,我对这个数据库的感受发生了反转。不去真实使用一下终归无法真正了解一个数据库产品,因此有时候还是需要去深入学习一下。今天我就给大家分享一下DBA如何去入门学习某个自己以前不太了解的数据库。

第一步是通过数据库的文档初步了解一下数据库的基础架构,主要特征,安装要求等基础的知识。通过一些材料阅读了解一下数据库的概貌会让你在后续的学习中少走不少弯路,这也是很多DBA同学不太喜欢干的事情,觉得看资料浪费时间。不过以我的经验,上来就开撸其实在以后的学习中会浪费更多的时间。

初步学习之后,就不要再深入去看其他资料了,下面该开始动手了。我们第一步需要自己动手安装一套数据库,通过安装进一步了解这个数据库的一些基本特性。安装数据库产品的时候会对数据库的架构、某些文件和数据的存储位置等有更深入的了解。也可以让我们知道数据库的主要日志文件在哪些地方,如何去查看。安装过程中所涉及的知识点在日后的运维工作中是十分常用的。我个人觉得如果不自己安装一套数据库,直接上手用别人装好的数据库,会跳过很多学习内容,在后面补课的时候需要花费更多的时间来学习。

安装完毕之后,就需要根据你对这个数据库的理解以及以前使用其他数据库的经验来简单地配置数据库。这时候你可能需要阅读一下相关的数据库管理手册,在阅读的过程中掌握一些关于这个数据库配置管理和优化的一些基本知识。学会修改配置文件,调整数据库参数,调整数据库的各种缓冲池的配置,以及调整数据库采集监控数据的行为。

完成上面的安装配置之后,我们需要找到一个工具来给数据库加压。Benchmarksql是十分易用的一个工具。一般来说,国产数据库都会带有一个benchmarksql的压测指南。如果没有也没关系,目前大多数国产数据库都和Oracle或多或少有些兼容性,因此把压测对象数据库当成Oracle数据库就大致没问题了,大不了修改一下建表的脚本。一般来说调整下JDBC驱动、数据库连接串,就可以把benchmarksql跑起来了。配置benchmarksql还可以让你了解远程连接数据库的一些配置。顺利地把benchmarksql跑起来,这个数据库的初步入门可以说是小成了。

接下来我们需要初步学习一些利用数据库可观测性能力监控数据库的知识了。通过阅读运维管理手册(目前国产数据库一般都有优化监控相关的文档章节),了解如何监控数据库的会话、指标、等待事件、事务、锁、如何采集TOP SQL是这个阶段的主要任务。这时候需要对官方的文档做一些仔细的阅读,了解日常需要如何对数据库进行监控,如何查看数据库日志文件中的各种告警信息。

学会了这些内容后,可以配合压测(可以通过调整参数来给数据库加压)进行观察了。通过观察指标、等待事件、会话、锁等待等情况,自己推测数据库的性能瓶颈在什么地方(此时如果官方文档这方面还有些可看的内容,可以看看这些文档,依照文档进行分析),然后通过调整数据库参数、benchmark建表脚本等方式来尝试进行一些优化。只要你的功夫下到了,应该还是能够学到一些优化方法的。

至此,你对这个数据库产品已经初步入门了,下一步就要通过阅读官方文档来进一步进阶。不过此时如果你还是只是在自己的测试环境里学习,就只能学习一些操作的技能了。

下一步你可以安装一个客户端工具,去了解系统数据字典、视图、系统存储过程等。这时候你往下学习的路径就很多了,是仅仅学习日常管理还是学习应用开发支撑还是学习性能优化、故障排查?有些学习仅仅依靠你目前的测试环境是不够的,在生产环境中面对真实的使用案例才能学得更加深入。

0
相关文章