庆祝女足夺冠,特分享 11 条数据库维护金律

有关SQL

共 1286字,需浏览 3分钟

 · 2022-02-20

当年老板把我拉到小黑屋,义正严词地问,“ 我能把数据库放心交给你吗 ”,说实话,我心里特别激动。这股激动,在今天女足夺冠时,又出现了。所以,我觉得,怎么去用好一个数据库,作为正式上班前的礼物,应该分享给大家!


数据库不稳定,经常性 timeout,反应过慢,大多是因为开发或 DBA (如果有)不知道怎么对数据库做健康巡检。做不到对数据库的底层活动了如指掌,那么对数据库的脾气和它的能力自然不会有太深的了解。就像“日久见人心”,“见”的前提,就是要“日久”,即多触碰


本文,我分享下平常巡检的检查点。希望借此树立起一个数据库健康检查的大局观,也即数据库画像。


一般来说,数据库管控重点在于实例的管控。管控围绕 “高可用/高并发/高性能”开展。如果理解 “三高” 有点费劲,那么首先理解下 “三低”:“低可用/低并发/低性能”


“低可用”:经常性的宕机,用着用着,数据库链接就断了。有各种原因导致数据库宕机,比如硬件不能用了,磁盘爆满,被黑,被拔插头,等等。那么如何保障这些事故不会发生,就属于“高可用”策略了。比如双备,加磁盘,加防火墙,及时打补丁


“低并发”:以前经常嘲笑自己,用户也就三千人,为什么还要费劲去想,超过超过3万用户后,应该要做什么;超过30万,300万呢?当我真正碰到百万级用户时,类似的掉线,保存缓慢等抱怨都出来了。在疲于救火,焦头烂额的同时,才发现,提早考虑,真有用。所以,这些提高用户体验的措施,就是“高并发”策略


“低性能”:这是最好理解的,比如打开一个用户报表,平时用5秒,还在忍受范围内,一旦超过5分钟了,那换谁,谁都忍不了。提高查询性能做的保障措施,就属于“高性能”策略


以上,都是打个比方,举个例子,真正深入,“三高” 的意义和措施,要复杂10倍不止。



因此,围绕着 “三高”,大多数公司,会自动或手动,做一些健康巡检,以便及时发现“坏分子”。以下就是经常会用到的 11 个巡检方案。


a. 索引的重建/重构

b. 表分区的管理

c. 数据库的备份与恢复策略

d. 日志文件的清理

e. 表空间的监控与自动维护

f. 数据库一致性检查

g. 读写分离 

h. 死锁日志

j.  围绕时间线的慢 SQL 统计

k. 压缩数据库(shrink database)

l. 重新评估和设计 baseline


这些方案,实施的时间粒度不同,有些可以按月,比如表分区,评估 baseline;有些必须按天, 比如备份,日志文件清理;有些则需实时告警,比如死锁,堵塞。


值得提醒的是,有些巡检方案,比较耗资源,比如索引重建,备份,压缩数据库等等,动则锁表,造成业务停顿,需与 DBA 同步想法。


当然,这11条经验,并不是清规戒律,不是每个项目都一定要执行。根据自身项目的需要,可以增删改。


明天要开始上班了,祝大家每天都有一个好心情!




--完--





往期精彩:


本号精华合集(三)

外企一道 SQL 面试题,刷掉 494 名候选人

我在面试数据库工程师候选人时,常问的一些题

零基础 SQL 数据库小白,从入门到精通的学习路线与书单







浏览 33
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报