备份恢复
数据备份和恢复操作指南。
需要备份的内容
逸云 GIS 的数据全部存储在 data/ 目录下:
| 文件/目录 | 说明 | 优先级 |
|---|---|---|
| data/gisnode.db | 主数据库(项目、用户、图层等) | 必须 |
| data/etl.db | ETL 数据库 | 必须 |
| data/geojson/ | GeoJSON 数据文件 | 必须 |
| data/imagery/ | 影像数据 | 必须 |
| data/elevation/ | 高程数据 | 必须 |
| data/3dtiles/ | 3D Tiles 数据 | 必须 |
| .env | 环境配置文件 | 建议 |
无需备份:
node.exe、dist/、docs/、native/、gdal-runtime/这些是程序文件,可从发布包重新获取。
备份方法
Windows 备份脚本
创建 backup.bat:
batch
@echo off
set DATE=%date:~0,4%%date:~5,2%%date:~8,2%
set BACKUP_DIR=D:\gisnode\backups\%DATE%
mkdir %BACKUP_DIR%
echo 备份数据库...
copy D:\gisnode\data\gisnode.db %BACKUP_DIR%\
copy D:\gisnode\data\etl.db %BACKUP_DIR%\
echo 备份数据文件...
xcopy D:\gisnode\data\geojson %BACKUP_DIR%\geojson\ /E /I /Y
xcopy D:\gisnode\data\imagery %BACKUP_DIR%\imagery\ /E /I /Y
xcopy D:\gisnode\data\elevation %BACKUP_DIR%\elevation\ /E /I /Y
xcopy D:\gisnode\data\3dtiles %BACKUP_DIR%\3dtiles\ /E /I /Y
echo 备份配置文件...
copy D:\gisnode\.env %BACKUP_DIR%\
echo 备份完成: %BACKUP_DIR%
Linux 备份脚本
创建 backup.sh:
bash
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR=/opt/gisnode/backups/$DATE
mkdir -p $BACKUP_DIR
# 备份数据库
cp /opt/gisnode/data/gisnode.db $BACKUP_DIR/
cp /opt/gisnode/data/etl.db $BACKUP_DIR/
# 备份数据文件
cp -r /opt/gisnode/data/geojson $BACKUP_DIR/
cp -r /opt/gisnode/data/imagery $BACKUP_DIR/
cp -r /opt/gisnode/data/elevation $BACKUP_DIR/
cp -r /opt/gisnode/data/3dtiles $BACKUP_DIR/
# 备份配置
cp /opt/gisnode/.env $BACKUP_DIR/
# 压缩备份
cd /opt/gisnode/backups
tar czf gisnode-$DATE.tar.gz $DATE/
rm -rf $DATE/
# 保留最近30天备份
find /opt/gisnode/backups -name "*.tar.gz" -mtime +30 -delete
echo "备份完成: gisnode-$DATE.tar.gz"
定时备份
Windows 任务计划:
- 打开"任务计划程序"
- 创建基本任务
- 设置每天凌晨2点运行
- 操作为启动
backup.bat
Linux crontab:
bash
crontab -e
# 每天凌晨2点执行备份
0 2 * * * /opt/gisnode/backup.sh
数据恢复
恢复步骤
- 停止逸云 GIS 服务
- 将备份文件复制到
data/目录 - 重启服务
Windows:
powershell
# 停止服务(如果注册为服务)
nssm stop GisNodeServer
# 或直接关闭 node.exe 窗口
# 恢复数据
copy D:\gisnode\backups\20260419\gisnode.db D:\gisnode\data\
# 重启服务
nssm start GisNodeServer
Linux:
bash
# 停止服务
sudo systemctl stop gisnode
# 恢复数据
cp /opt/gisnode/backups/20260419/gisnode.db /opt/gisnode/data/
# 重启服务
sudo systemctl start gisnode
数据库备份
如果只需要备份数据库:
bash
# SQLite 热备份(不停止服务)
sqlite3 /opt/gisnode/data/gisnode.db ".backup '/opt/gisnode/backups/gisnode.db'"
灾难恢复
恢复步骤
- 重新获取发布包,解压到目标目录
- 恢复
data/目录的备份数据 - 恢复
.env配置文件 - 启动服务
恢复时间目标
| 场景 | RTO | RPO |
|---|---|---|
| 数据损坏 | 30分钟 | 1小时 |
| 服务器故障 | 2小时 | 24小时 |
| 完全灾难 | 4小时 | 24小时 |