NAS 上跑数据库的运维三件事:群晖 MariaDB 10 改端口、调缓冲池、备好份

在群晖 NAS 上装 Web Station 跑内部门户、工单登记、台账查询这类小系统的企业不少,这些应用背后往往需要一个数据库。套件中心的 MariaDB 10 套件就是干这个的:MariaDB 10 是 MySQL 的社区开发分支,是最广泛使用的开源关系数据库管理系统之一,与 MySQL 高度兼容,数据库可以比较平顺地从 MySQL 迁过来。贵州诚鑫致达科技在 NAS 应用交付中给客户的常规动作,是装好之后先把下面三件事做完:端口、缓冲池、备份。

第一件事:把端口设置过一遍

MariaDB 10 支持直接在用户界面上修改端口号:在套件界面填写所需的端口号,单击应用即可生效。

为什么默认端口要动一动:内网环境里数据库被扫到、被弱口令试探是常事,改掉默认端口虽然不是安全的主要防线,但能过滤掉一大批无差别的自动扫描,让日志干净些、暴露面小些。改端口的连带动作要同步做——依赖这个数据库的 Web 应用配置文件里写的连接端口要跟着改,改完数据库端口应用连不上,先查的就是这个。改之前确认新端口不与其他服务冲突,改之后把防火墙规则一并收口到只允许应用所在网段访问。

第二件事:按机型把 InnoDB 缓冲池调对

InnoDB 缓冲池是 MariaDB 中用于缓存数据和索引的关键,对性能影响显著。官方帮助给出的调整范围和规则:

  • 默认大小为 16 MB;
  • 可通过配置从 10 MB 调整到系统总 RAM 的 20%;
  • 对于 RAM 小于 1 GB 的机型,缓冲池大小保持在默认的 16 MB 不变。

这个设置决定数据库缓存的最大内存分配。为什么值得调:缓冲池太小,查询要反复读盘,内网小系统的页面也会明显发钝;按机型的实际内存把上限用到合理位置,常用数据留在缓存里,体验差别是直接的。两条实操建议:一是上限别拉满——NAS 同时还在跑文件服务、快照等任务,官方口径的 20% 封顶本身就留了余量;二是调整后观察一段时间套件的内存占用再决定是否回调,不要一步到位式的激进设置。配置入口就在套件界面的 InnoDB 缓冲池设置处,属于界面化操作,不需要改配置文件。

第三件事:备份走 Hyper Backup,且要知道三条边界

官方指定的 MariaDB 10 备份路径是 Hyper Backup,过程不复杂:

  1. 进入 Hyper Backup > 创建 > 数据备份任务,创建备份任务;
  2. 按备份向导推进,当提示选择要备份的应用程序时,勾选 MariaDB 10;
  3. 任务完成后,所有 MariaDB 10 数据库都会被备份。

还原时进入 Hyper Backup > 还原 > 数据,选择对应的备份任务执行;还原任务完成后,MariaDB 10 的当前设置和数据将被覆盖——覆盖这个词要划重点:还原是整体回滚,不是增量合并,执行前先确认当前数据确实不要了,或者已经另行留了副本。

三条官方边界条件务必记牢:

  • 强制备份和还原会应用于所有 MariaDB 10 数据库——没有按库挑选的粒度,多个应用共用一个 MariaDB 时,还原等于全部回到备份时点;
  • 数据库名称包含反斜杠(\)或反引号(`)的备份和还原操作会失败——建库时的命名规范要从源头管住,只用字母数字和下划线这类保守字符;
  • 备份任务要纳入既有的备份排期和留存策略,与其他业务数据的备份策略对齐,而不是装完套件就忘。

日常检查清单

  • 端口是否已改、防火墙是否收口、应用连接是否正常;
  • 缓冲池设置是否与机型内存匹配、有无内存告警;
  • Hyper Backup 里 MariaDB 10 的应用程序项是否在勾选清单里、最近一次成功时间;
  • 数据库名命名规范是否已在团队内明确(避开 \ 和 `)。

三件事都不复杂,难的是想起来做。装机当天顺手完成,后面的运维就只剩按期看备份结果这一件事了。