Skip to content

系统维护与数据库迁移

“设置 → 系统维护”提供整站维护和 MySQL / SQLite 迁移。数据库复制完成后还需要修改部署配置并重启,页面不会自动切换正在使用的数据库。

开启维护

填写维护页标题和说明,勾选“开启整站维护”,点击“保存维护设置”。普通用户、节点上报和业务接口会收到维护响应;管理员控制台、健康检查及状态接口继续可用。

维护会影响节点事件接收,应预留维护窗口并观察节点端可靠投递队列。维护结束后检查积压是否恢复,不能只检查首页。

迁移前准备

  • 备份源数据库、凭证加密密钥、部署环境配置、托管规则目录及事件存储,保留原镜像。
  • 准备另一种驱动的空目标库;不要选用已有业务数据的数据库。
  • SQLite 使用服务器或容器内可写、可持久化的文件路径,例如 /var/lib/zboard/data/zboard.db,不是浏览器电脑上的路径。
  • MySQL 使用完整连接 DSN,确认目标库权限;作为源库时还要能执行一致性只读锁操作,具体以连接预检结果为准。
  • 多实例部署应统一安排停写和切换,不要让另一实例继续向源库写入。

执行与切换

  1. 打开“系统维护”,检查“当前驱动”。
  2. 选择目标驱动,填写目标连接信息。MySQL DSN 默认隐藏,可按显示按钮核对;切换驱动后要重新填写。
  3. 点击“连接预检”,确认目标可连接且为空。预检不会复制业务数据,也不代表已经切换。
  4. 核实备份后勾选确认,点击“开始迁移”。系统进入维护,复制业务与观测表,并逐表校验数量。
  5. 等待任务完成,查看进度、错误和“下一步”。失败时保留源库并先定位问题,不向未验证目标切换。
  6. 完成后保持维护开启,在部署环境更新 ZBOARD_DATABASE_DRIVERZBOARD_DATA_SOURCE;SQLite 同时使用数据目录挂载。按部署说明重启应用。
  7. 确认页面显示目标驱动,检查 /readyz、容器健康、管理员登录、订阅、订单、流量和规则产物。
  8. 验证通过后手动关闭维护,检查用户访问及节点上报恢复。

迁移运行时不能关闭维护。复制完成也不代表新库已开始服务;必须以重启后的实际驱动和业务读取为准。

SQLite 备份与回滚

SQLite 数据目录必须持久化,容器重建不能丢失文件。备份使用一致性备份方式,或停止应用后备份完整数据目录及存在的 WAL/SHM 文件,不只复制仍在写入中的主 .db

切换失败时保持维护,停止新实例,恢复原部署配置与匹配的源数据库、规则文件和事件存储,再启动原版本验证。新库已接受业务写入后,不可直接切回旧库丢弃新增数据,应先核对并处理差异。

ZeroDeNet