外观
备份与恢复
数据库和资源共同构成业务数据。只备份源码无法恢复聊天,单独保留数据库也不能恢复已经丢失的图片、视频和文件。
普通与宝塔环境
使用数据库专用备份账号,交互输入密码,不把真实密码写在命令里:
bash
mysqldump -h 127.0.0.1 -u backup_user -p \
--single-transaction --routines --triggers --no-tablespaces \
popoim > popoim.sql--single-transaction 适用于当前 InnoDB 表;备份期间不做结构变更。同步备份 public/uploads/,并单独加密保存数据库、SDK、资源存储及推送等部署配置。宝塔可使用数据库备份和计划任务完成同样工作。
Docker
在服务端源码目录导出数据库:
bash
sudo docker compose exec -T mysql sh -c \
'MYSQL_PWD="$MYSQL_PASSWORD" mysqldump -u"$MYSQL_USER" --single-transaction --no-tablespaces "$MYSQL_DATABASE"' \
> popoim.sql同时备份宿主机的资源和配置。数据库卷不等于离线备份,应定期导出到独立存储并验证可恢复。
恢复顺序
- 使用兼容的 MySQL 版本,先配置
ngram_token_size=1、关闭全文索引停用词,再导入备份。 - 恢复对应的资源与部署配置;保持原 SDK 验签密钥。
- 调整恢复环境的数据库和公网地址,启动服务。
- 检查账号登录、最近消息、历史搜索、图片、文件与实时连接。
恢复到独立环境时使用新的公网地址,避免客户端误连原环境。若回退涉及数据库结构变化,先确认旧版本代码兼容,不能仅切换源码目录。
