bicep/mysql: add timed jobs for analyze and optimize

This commit is contained in:
h7x4
2026-07-21 21:52:48 +09:00
parent 9a837d210d
commit 8ed0a7f8c6
2 changed files with 52 additions and 1 deletions
+4 -1
View File
@@ -4,7 +4,10 @@ let
dataDir = "/data/mysql"; dataDir = "/data/mysql";
in in
{ {
imports = [ ./backup.nix ]; imports = [
./backup.nix
./timed-jobs.nix
];
sops.secrets."mysql/password" = { sops.secrets."mysql/password" = {
owner = "mysql"; owner = "mysql";
+48
View File
@@ -0,0 +1,48 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.mysql;
in
{
config = lib.mkIf cfg.enable {
systemd.services = {
mysql-analyze = {
requires = [ "mysql.service" ];
after = [ "mysql.service" ];
description = "Refresh MariaDB optimizer statistics for all databases";
startAt = "Mon 05:00:00";
serviceConfig = {
Type = "oneshot";
User = cfg.user;
Group = cfg.group;
Nice = 19;
IOSchedulingClass = "best-effort";
IOSchedulingPriority = 7;
ExecStart = "${lib.getExe' cfg.package "mariadb-check"} --all-databases --analyze";
};
};
mysql-optimize = {
requires = [ "mysql.service" ];
after = [ "mysql.service" ];
description = "Check, repair and optimize all MariaDB databases";
startAt = "*-*-01 04:00:00";
serviceConfig = {
Type = "oneshot";
User = cfg.user;
Group = cfg.group;
Nice = 19;
IOSchedulingClass = "best-effort";
IOSchedulingPriority = 7;
ExecStart = [
"${lib.getExe' cfg.package "mariadb-check"} --all-databases --auto-repair"
"${lib.getExe' cfg.package "mariadb-check"} --all-databases --optimize"
];
};
};
};
};
}