Files
xinfra/ansible/files/mysql-delivery@.service
wonder c26790f84b docs(ansible): 为 mysql-deploy 相关文件添加详细中文注释
- mysql-deploy.yml: 为所有变量、任务、handlers 添加中文注释,解释参数含义、设计逻辑和平台契约
- mysql-delivery@.service: 为 Systemd 模板单元添加中文注释,说明 %i 参数机制、Type=notify、OOMScoreAdjust 等配置项
- mysql-instance.cnf.j2: 为 MySQL 配置模板添加中文注释,说明各参数含义、版本差异、复制配置逻辑
- inventory.example.yml: 为 Inventory 示例添加中文注释,说明主机组与拓扑对应关系及使用方式
2026-07-28 11:05:57 +08:00

54 lines
2.1 KiB
Desktop File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# =============================================================================
# XINFRA MySQL 交付实例 Systemd 模板单元
# =============================================================================
# 这是 systemd 的模板单元(template unit),文件名中的 @ 是模板标识
# 使用方式:systemctl start mysql-delivery@{实例名}.service
# 例如:mysql-delivery@db01.service、mysql-delivery@db02.service
#
# %i 参数会被 systemd 自动替换为 @ 后面的实例名
# 这样同一台主机可以运行多个 MySQL 实例,彼此隔离
# =============================================================================
[Unit]
# 服务描述,%i 会被替换为实际实例名
Description=XINFRA MySQL delivery instance %i
# 依赖:等待网络在线后再启动(MySQL 需要绑定网络端口)
After=network-online.target
Wants=network-online.target
[Service]
# Type=notify:mysqld 启动完成后会通过 sd_notify 通知 systemd
# 比 Type=simple 更可靠,systemd 能准确知道服务何时真正就绪
Type=notify
# 以 mysql 用户/组身份运行(最小权限原则)
User=mysql
Group=mysql
# 创建运行时目录 /run/mysql-delivery-{实例名}/
# 用于存放 socket 和 pid 文件,放在 tmpfs(内存文件系统)上,重启自动清理
RuntimeDirectory=mysql-delivery-%i
RuntimeDirectoryMode=0755
# 启动命令:使用实例专属配置文件
# %i 被替换为实例名,指向 /etc/mysql/mysql-delivery/{实例名}.cnf
ExecStart=/usr/sbin/mysqld --defaults-file=/etc/mysql/mysql-delivery/%i.cnf
# 故障自动重启:崩溃后 5 秒自动重启
Restart=on-failure
RestartSec=5s
# 启动超时:120 秒内未完成启动则判定为失败
TimeoutStartSec=120s
# 最大打开文件数:MySQL 需要大量文件描述符(连接、临时表等)
LimitNOFILE=65535
# OOM 评分调整:-200 表示被 OOM Killer 杀掉的优先级较低
# MySQL 是数据库服务,被误杀影响较大,尽量保护
OOMScoreAdjust=-200
[Install]
# 开机自启:加入 multi-user.target(多用户模式,即正常启动完成后)
WantedBy=multi-user.target