BACKUP AND RESTORE

备份与恢复

只有数据库备份不够,主密钥和授权文件要一起保存。

01

要备份什么

数据库备份(「系统设置 › 系统备份」,文件在 /var/lib/cdn-server/update/backups/);/etc/cdn-server/server.env;/etc/cdn-server/license.json 和 license.json.sig;/var/lib/cdn-server/update/ 下的 license-refreshed.json 和 install-id。节点不用备份,重装后自动拉配置和证书。

02

数据库备份不是完整备份

只有 dump 没有 CDN_MASTER_KEY,恢复出来的库照样能启动、能登录,但 DNS 凭据、支付密钥、证书私钥都解不开,而且不报错,要等到下次改解析或续证书才发现。dump 和 server.env 要一起备份、分开存放,按敏感数据保管。

03

数据库坏了,机器还在

把备份灌进 server.env 指向的库,覆盖现有全部内容。动手前脚本会先自动备份当前状态,恢复失败时数据库保持原样。

终端命令
sudo bash /opt/cdn-server/install.sh restore /路径/备份文件.dump
04

换一台新机器恢复

先把授权文件放回 /etc/cdn-server/,把 license-refreshed.json 和 install-id 放回 /var/lib/cdn-server/update/。然后全新安装,这一步生成新的主密钥和数据库口令。再把 server.env 里 CDN_MASTER_KEY 这一行改回旧密钥,CDN_DB_DSN 保留新的。最后执行 restore,用出事之前的管理员账号登录。注意第一步不要把旧的 server.env 放到新机器上,否则安装脚本会拒绝运行。主控地址是域名的话,把域名解析到新机器,节点自己就连回来了。

终端命令
sudo bash install.sh --accept-license
sudo sed -i 's/^CDN_MASTER_KEY=.*/CDN_MASTER_KEY=旧密钥/' /etc/cdn-server/server.env
sudo bash /opt/cdn-server/install.sh restore /路径/备份文件.dump
备份默认在主控本机,要不要外送、送到哪里由你决定。可以配置上传到你自己的 S3 或 OSS。