Skip to content
On this page

备份恢复

数据备份和恢复操作指南。

需要备份的内容

逸云 GIS 的数据全部存储在 data/ 目录下:

文件/目录说明优先级
data/gisnode.db主数据库(项目、用户、图层等)必须
data/etl.dbETL 数据库必须
data/geojson/GeoJSON 数据文件必须
data/imagery/影像数据必须
data/elevation/高程数据必须
data/3dtiles/3D Tiles 数据必须
.env环境配置文件建议

无需备份: node.exedist/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 任务计划:

  1. 打开"任务计划程序"
  2. 创建基本任务
  3. 设置每天凌晨2点运行
  4. 操作为启动 backup.bat

Linux crontab:

bash
crontab -e
# 每天凌晨2点执行备份
0 2 * * * /opt/gisnode/backup.sh

数据恢复

恢复步骤

  1. 停止逸云 GIS 服务
  2. 将备份文件复制到 data/ 目录
  3. 重启服务

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'"

灾难恢复

恢复步骤

  1. 重新获取发布包,解压到目标目录
  2. 恢复 data/ 目录的备份数据
  3. 恢复 .env 配置文件
  4. 启动服务

恢复时间目标

场景RTORPO
数据损坏30分钟1小时
服务器故障2小时24小时
完全灾难4小时24小时

基于 MIT 许可发布