正确的 MySQL 数据库维护

Saf*_*ado 8 mysql maintenance

我希望这不是一个太宽泛的问题。我确信它能够帮助我和任何未来偶然发现它的 dba 菜鸟。

我是一名系统管理员,加入了 DBA(因为我在 CEO 的前景方面帮助了他,所以我显然可以管理我们的数据库!)。数据库服务器并没有那么大或那么忙……一个 mysqldump 大约有 6GB 的大小,我们花了 5 年的时间才把它弄得那么大。Munin 报告说,我们在高峰时段平均每秒进行 40-60 次查询。

我的老板付钱让我参加甲骨文大学系统管理课程,但在完成后,它只是解释了 mysql 服务器的不同部分,以及它们的作用和方式。但这并不是那么深入,而且您绝对不是从 DBA 课程中毕业的。

那么作为当前的 DBA,我应该怎么做才能确保一切顺利?我可以执行日常维护任务吗?我应该检查某些指标吗?或者换句话说,作为 DBA,您每天都做些什么来保持一切正常?

如果它有助于稍微调整答案,这里有一些细节。我们有 171 个表,除了 3 个是 innodb,其他都是 myisam。我们使用 RBR 在主数据中心和灾难恢复站点之间设置了主/从复制。版本是 5.5.28。

我能做什么?

Der*_*ney 10

先说第一件事。确保您已经制定并记录了灾难恢复 (DR) 策略。花一些时间思考可能出错的方式,如何从中恢复,并测试它们以了解需要多长时间,尤其是从备份恢复时。一些普遍的想法:

  • mysql 崩溃,但服务器正常:修复错误并启动 mysql。
  • MySQL 必须从备份中恢复:从备份中恢复并启动 mysql <--在它成为您在紧急情况下必须做的事情之前进行测试。
  • 服务器死机,必须更换:更换服务器并从备份中恢复。

一旦您制定了 DR 策略并开发了一种方法来测试您的备份到位,您就可以开始执行更多定期任务:

  • 定期测试您的恢复过程。这可确保必要时熟悉。
  • 确保正确的索引。如果您使用的是 percona 服务器,您可以获得在给定时间(一个月左右)后哪些索引未使用的统计信息
  • 慢查询审查。启用长查询时间为 1 秒左右的慢查询日志,并使用 pt-query-digest 每周/每月查看它们。
  • 阅读http://www.mysqlperformanceblog.com/http://planet.mysql.com/上的博客。在如此小的数据库上,您很少会遇到许多感兴趣的性能问题。因此,您将有充足的时间阅读有趣的问题以及如何解决这些问题。