首页 运维 安全 PG数据库运维工具要覆盖哪些能力

PG数据库运维工具要覆盖哪些能力

Jun 08, 2023 pm 06:56 PM
数据库 运维 pg

​过节前我和PG中国社区合作搞了一个关于如何使用D-SMART来运维PG数据库的线上直播,正好我的一个金融行业的客户听了我的介绍,打电话过来聊了聊。他们正在做数据库信创的选型,也试用了多个国产数据库,最后他们准备选择TDSQL。当时我觉得有点意外,他们从2020年就开始在做国产数据库选型,不过好像最初使用TDSQL后的感受并不太好。后来经过沟通才了解到,他们刚开始使用TDSQL的分布式数据库,发现对研发要求太高,所以后来就全部选择TDSQL的集中式MYSQL实例,用下来发现挺好用的。整个数据库云的节点数也从最初的十几个扩展到了大几十个。

无独有偶,昨天和另外一个金融客户在微信上聊了聊数据库信创选型的事情,他们最终也选择了TDSQL。和另外一个客户相似的是,他们也是选择了TDSQL的MYSQL集中式数据库实例。他们目前已经迁移了数十套数据库上去,大多数都是几十GB到几百GB的小库。他们觉得,小数据库,直接迁移到TDSQL的云平台上,使用起来十分便捷,TDSQL的数据库云管平台和运维工具基本上已经能够满足他们日常运维的需要了。

通过交流我觉得,这两个客户选择TDSQL,并不是因为TDSQL作为数据库有多优秀(TDSQL实际上不是一个数据库,而是一个数据库云平台解决方案,关于TDSQL今后有空,我会写一篇详细介绍),而是其数据库云管平台对于纳管大量的小型数据库实例,做的十分到位,用户选择它,并不是从数据库技术来考虑的,而是从使用的便捷性与可靠性来考虑的。

从客户选择TDSQL的理由,我们再来看看PG数据库的运维。泛泛的谈PG数据库的运维是个十分庞大的话题,因为不同的客户有其特殊的应用场景,对PG数据库的运维管理方式也有较大的差异。更为复杂的是,和我所说的这两个选择TDSQL的客户不同的是,PG数据库既有小型数据库,也有十分大型的数据库系统。有些客户在搞信创替代的时候,是把Oracle数据库1对1做替代的,很多数据库的热数据都超过数个TB。面对规模差异极大,运维要求不同的应用场景,运维工具要想适应千差万别的应用场景,确实是需要精心设计的。

PG数据库在国内的应用这两年发展的很快,再加上很多国产数据库也是以PG开源项目作为基础研发的,在应用、运维上十分相似,因此我们也可以把它们归类为PG类的数据库产品。

PG数据库运维工具要覆盖哪些能力

目前的国产数据库中,很多产品都是以PG社区版代码作为研发起点的,还有一些产品是基于openGauss开源项目的。这些数据库的基础特性都和社区版的PG数据库类似,不过也做了一定的拓展。不过从使用与运维上,它们的很多特性都与社区版PG十分类似。

还有一些数据库产品也和PG有着直接的关系,不过大部分基于PG的分布式解决方案PGXL/PGXC或者CITUS。比如腾讯的TBASE,南大通用的GBASE 8C分布式版本、亚信的ANTDB,虚谷数据库等。这里就不做仔细的罗列了。这些数据库的某个实例也是一个PG数据库,对某个具体的实例也可以看做是PG数据库实例,只不过在运维分布式数据库的时候,需要更加关注整个集群与网络的问题,在运维上区别还是很大的。

PG数据库运维工具要覆盖哪些能力

概括的说,PG数据库的运维需求分为五个方面,日常监控、故障预警、自动化巡检、性能优化和故障诊断。

PG数据库运维工具要覆盖哪些能力

有些企业已经在把一些核心系统在向PG类数据库迁移了,对于这些系统,日常就有监控的需求。因此一个数据库运维工具需要具备的最基础的能力就是监控能力,能够通过运维工具随时了解数据库实例的总体运行状态。D-SMART是通过健康模型来展示数据库的运行状态的。除此之外,如果我们在一些重大日期要做值守(比如企业的年终决算,国庆节等专项值守等),那么我们就还需要一些能够支撑关键系统值守的工具。

在D-SMART中,围绕数据库运维我们提供了“监控中心”、“日检中心”、“告警中心”、“性能优化中心”、“报告中心”、“容量管理中心”、“安全中心”、“工具中心”这几个中心化的功能组合来满足不同用户,不同应用场景的用户的需求。

对于日常监控功能,D-SMART提供了“今日看板”、“我的监控”、“关键SQL监控”这三个主要的运维监控工具。今日看板可以集中查看用户监控的数据库的综合信息,“我的监控”允许用户用传统的监控方法去定义自己想要监控的指标,用于重大护航监控。而“关键SQL监控”则是为企业核心业务系统提供的专项监控工具。当某个核心业务系统的关键SQL出现问题的时候(比如执行速度变慢,执行计划变化等),能够及时告警,确保核心业务的安全运行。

对于大量的小型的数据库实例,全面监控是不太现实的。如果一个十几人的团队要运维数百上千个数据库实例,那么最这些数据库进行全面监控既不必要,也不可能。因此这种运维场景应该把大量的监控工作变成自动化任务,由监控系统自动完成。

“数据库日检”是一个十分有效的自动化运维工具,每天半夜针对数据库的运行数据以及一些规则自动做分析,并形成言简意赅的日检总结报告,运维人员上班后直接阅读这些报告就可以了解自己运维的数百个数据库实例中存在的一些常见问题,从而可以确定当天或者近期是否需要对某些数据库实例做相应的变更。

当我们需要运维大量的小型数据库实例的时候,预警也变得十分困难了。传统的“基线告警”的效果就变得十分鸡肋了。除了数据库实例宕机以外,其他的预警很难做的精准。海量的告警信息会让预警变得毫无意义。因此基于故障模型的“运维经验告警”变得尤为重要。通过专家经验与以往的经验构建的复杂的规则不仅能够更为精准的预警,也能让告警产生后,运维人员可以更加快速的定位问题,消除隐患。

“数据库巡检”是广大DBA都觉得十分鸡肋的功能,最主要的问题在于这项工作必须做,但是做一次真正到位的巡检既需要大量的专业DBA参与,又需要做大量的重复劳动,总的看来,性价比并不高。另外一方面,全面高质量的巡检又能够帮助我们发现一些系统隐患,有助于实现防患于未然。针对这个矛盾,如果能够实现高质量的自动化巡检,那么问题就迎刃而解了。几个月前,我们帮助一个用户做了一次远程巡检,用户把D-SMART采集的监控数据发给我们实验室,我们的数据库专家利用远程数据产生的巡检报告,对近30套数据库系统进行了一次远程会诊,帮助用户发现了各类问题两百多个,而这些工作仅仅花了不到2个人天。通过自动化手段,如果能够把数据库巡检的效率提高了,那么巡检工作也就不会这么鸡肋了。

除了巡检之外,一些审计工作也十分关键,比如安全审计、容量审计、SQL审计等。因为这些审计需要十分专业的技能,另外工作量也很大,因此在面对大量的数据库实例的时候,也和巡检一样变得十分鸡肋,要想做到位成本太高,做不到位等于不做。不过这些工作如果能够由自动化工具自动完成,那么也就能够发挥出十分重要的作用了。

实际上除了这些运维监控工作之外,大量的数据库实例的管理工作还有很多自动化操作是DBA十分需要的,这也是我开始说的那两个客户选择TDSQL的主要原因。管理海量的数据库实例,数据库云平台是必选项,只不过这些自动化管理功能本身就十分复杂,根据企业特点构建独立的数据库云平台本身就是一个大工程。当然,如果企业云平台的RDS服务就能够满足你的数据库应用需求了,那么直接使用云平台的RDS就够用了。当然面对现在的信创需求,需要企业的RDS需要不仅仅支持开源的MYSQL/PG数据库,也要支持国产数据库产品。​

以上是PG数据库运维工具要覆盖哪些能力的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Go语言如何实现数据库的增删改查操作? Go语言如何实现数据库的增删改查操作? Mar 27, 2024 pm 09:39 PM

Go语言是一种高效、简洁且易于学习的编程语言,因其在并发编程和网络编程方面的优势而备受开发者青睐。在实际开发中,数据库操作是不可或缺的一部分,本文将介绍如何使用Go语言实现数据库的增删改查操作。在Go语言中,我们通常使用第三方库来操作数据库,比如常用的sql包、gorm等。这里以sql包为例介绍如何实现数据库的增删改查操作。假设我们使用的是MySQL数据库。

Hibernate 如何实现多态映射? Hibernate 如何实现多态映射? Apr 17, 2024 pm 12:09 PM

Hibernate多态映射可映射继承类到数据库,提供以下映射类型:joined-subclass:为子类创建单独表,包含父类所有列。table-per-class:为子类创建单独表,仅包含子类特有列。union-subclass:类似joined-subclass,但父类表联合所有子类列。

iOS 18 新增'已恢复”相册功能 可找回丢失或损坏的照片 iOS 18 新增'已恢复”相册功能 可找回丢失或损坏的照片 Jul 18, 2024 am 05:48 AM

苹果公司最新发布的iOS18、iPadOS18以及macOSSequoia系统为Photos应用增添了一项重要功能,旨在帮助用户轻松恢复因各种原因丢失或损坏的照片和视频。这项新功能在Photos应用的"工具"部分引入了一个名为"已恢复"的相册,当用户设备中存在未纳入其照片库的图片或视频时,该相册将自动显示。"已恢复"相册的出现为因数据库损坏、相机应用未正确保存至照片库或第三方应用管理照片库时照片和视频丢失提供了解决方案。用户只需简单几步

深入解析HTML如何读取数据库 深入解析HTML如何读取数据库 Apr 09, 2024 pm 12:36 PM

HTML无法直接读取数据库,但可以通过JavaScript和AJAX实现。其步骤包括建立数据库连接、发送查询、处理响应和更新页面。本文提供了利用JavaScript、AJAX和PHP来从MySQL数据库读取数据的实战示例,展示了如何在HTML页面中动态显示查询结果。该示例使用XMLHttpRequest建立数据库连接,发送查询并处理响应,从而将数据填充到页面元素中,实现了HTML读取数据库的功能。

在PHP中使用MySQLi建立数据库连接的详尽教程 在PHP中使用MySQLi建立数据库连接的详尽教程 Jun 04, 2024 pm 01:42 PM

如何在PHP中使用MySQLi建立数据库连接:包含MySQLi扩展(require_once)创建连接函数(functionconnect_to_db)调用连接函数($conn=connect_to_db())执行查询($result=$conn->query())关闭连接($conn->close())

如何在PHP中处理数据库连接错误 如何在PHP中处理数据库连接错误 Jun 05, 2024 pm 02:16 PM

PHP中处理数据库连接报错,可以使用以下步骤:使用mysqli_connect_errno()获取错误代码。使用mysqli_connect_error()获取错误消息。通过捕获并记录这些错误信息,可以轻松识别并解决数据库连接问题,确保应用程序的顺畅运行。

PHP处理数据库中文乱码的技巧与实践 PHP处理数据库中文乱码的技巧与实践 Mar 27, 2024 pm 05:21 PM

PHP是一种广泛应用于网站开发的后端编程语言,它具有强大的数据库操作功能,常用于与MySQL等数据库进行交互。然而,由于中文字符编码的复杂性,在处理数据库中文乱码时常常会出现问题。本文将介绍PHP处理数据库中文乱码的技巧与实践,包括常见的乱码原因、解决方法和具体的代码示例。常见的乱码原因数据库字符集设置不正确:数据库在创建时需选择正确的字符集,如utf8或u

如何在 Golang 中使用数据库回调函数? 如何在 Golang 中使用数据库回调函数? Jun 03, 2024 pm 02:20 PM

在Golang中使用数据库回调函数可以实现:在指定数据库操作完成后执行自定义代码。通过单独的函数添加自定义行为,无需编写额外代码。回调函数可用于插入、更新、删除和查询操作。必须使用sql.Exec、sql.QueryRow或sql.Query函数才能使用回调函数。

See all articles