fix: 修复写队列 busy 恢复、关闭安全、备份与配置构建问题
This commit is contained in:
+12
-5
@@ -42,23 +42,30 @@ Docker 约定:配置 `/etc/nixmsg/config.yaml`,数据 `/data`,证书 `/cer
|
||||
|
||||
程序不做定时备份,用 cron 或 1Panel 计划任务调用:
|
||||
|
||||
配置里的 `data_dir` 必须写成绝对路径。cron 的工作目录通常是家目录,相对路径会指到错误位置,甚至在空目录里新建空库并当成功备份。
|
||||
|
||||
```bash
|
||||
# 宿主机(服务可在运行中)
|
||||
NIXMSG_CONFIG=/path/to/config.yaml nixmsg backup --out /path/to/data/backup/manual-$(date +%Y%m%d).db
|
||||
# 宿主机(服务可在运行中;NIXMSG_CONFIG 与 data_dir 都用绝对路径)
|
||||
NIXMSG_CONFIG=/opt/nixmsg/config.yaml nixmsg backup --out /opt/nixmsg/data/backup/manual-$(date +%Y%m%d).db
|
||||
|
||||
# Docker Compose
|
||||
docker compose -f deploy/docker-compose.yml exec nixmsg /nixmsg backup --out /data/backup/manual.db
|
||||
```
|
||||
|
||||
备份文件含当时未送完的正文,按敏感数据保管。旧备份自行清理。
|
||||
备份文件含当时未送完的正文,按敏感数据保管(文件权限 0600)。旧备份自行清理。库文件不存在时 backup 报错并打印解析后的绝对路径,不会新建空库。
|
||||
|
||||
恢复:停服务,用备份文件替换 `data/nixmsg.db`(或拷到新 `data_dir`),再启动;勿在半迁移状态硬切。
|
||||
恢复:
|
||||
|
||||
1. 停服务。
|
||||
2. 把 `nixmsg.db`、`nixmsg.db-wal`、`nixmsg.db-shm` 三个文件一起移走(不要只替换 `.db`,残留 WAL 会叠到恢复库上)。
|
||||
3. 把备份文件复制成 `nixmsg.db`。
|
||||
4. 启动。勿在半迁移状态硬切。
|
||||
|
||||
## 4. 升级与自动迁移
|
||||
|
||||
1. 换上新二进制或拉新镜像。
|
||||
2. 启动时若有未应用的嵌入迁移版本,会先 `VACUUM INTO` 到
|
||||
`<data_dir>/backup/pre-migrate-<UTC时间>.db`,再执行迁移。
|
||||
`<data_dir>/backup/pre-migrate-v{当前版本}-to-v{目标版本}.db`,再执行迁移。已有同名备份则复用,避免迁移反复失败时写满磁盘。
|
||||
3. 迁移失败则进程退出,不带半新半旧库继续服务;运维可从备份恢复后排查。
|
||||
4. 空库首次建表不会产生迁移前备份。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user