备份与恢复

概述

有两部分数据需要备份

如果你根据我们的手册设置 SeaTable 服务器,你应该有这样一个目录布局:

/opt/seatable/seatable-data/seatable/
├── ccnet
├── conf
├── db-data
├── logs
├── pids
├── scripts
├── seafile-data
└── seahub-data
└── storage-data

其中

SeaTable 还在一些数据库中存储一些重要的元数据.

MySQL 数据库:

备份

步骤

  1. 备份 MySQL 数据库;
  2. 立即导出大数据存储中的数据 (可选), 也就是把 dtable-db 目录下的数据从内部的一种特殊格式导出到 storage-data 下。
  3. 备份 SeaTable 数据目录;

备份顺序: 先备份数据库,然后调度大数据存储中的数据的备份,再备份数据目录

备份数据库

# It's recommended to backup the database to a separate file each time. Don't overwrite older database backups for at least a week.
cd /opt/seatable-backup/databases
docker exec -it seatable-mysql mysqldump -uroot -pMYSQL_ROOT_PASSWORD --opt ccnet_db > ccnet_db.sql
docker exec -it seatable-mysql mysqldump -uroot -pMYSQL_ROOT_PASSWORD --opt seafile_db > seafile_db.sql
docker exec -it seatable-mysql mysqldump -uroot -pMYSQL_ROOT_PASSWORD --opt dtable_db > dtable_db.sql

立即导出大数据存储中的数据 (可选)

大数据存储中的数据 (dtable-db 中存储的数据) 每日会自动进行一次导出,如果你需要迁移服务器,那么你可以在对外停用服务后立即对数据进行一次导出,这样来保证迁移后的数据是最新的。

docker exec -it seatable /opt/seatable/scripts/seatable.sh backup-all

该命令结束后,storage-data 就会有一份 dtable-db 中数据的最新导出。

备份数据目录

你可以直接复制整个数据目录或者用 rsync 增量备份。

恢复

恢复数据库

docker exec -i seatable-mysql /usr/bin/mysql -uroot -pMYSQL_ROOT_PASSWORD ccnet_db < /opt/seatable-backup/databases/ccnet_db.sql
docker exec -i seatable-mysql /usr/bin/mysql -uroot -pMYSQL_ROOT_PASSWORD seafile_db < /opt/seatable-backup/databases/seafile_db.sql
docker exec -i seatable-mysql /usr/bin/mysql -uroot -pMYSQL_ROOT_PASSWORD dtable_db < /opt/seatable-backup/databases/dtable_db.sql

恢复 SeaTable 数据

cp -R /opt/seatable-backup/data/* /opt/seatable/seatable-data/

恢复大数据存储中的数据

docker exec -it seatable /opt/seatable/scripts/seatable.sh restore-all

Last modified by seatable, 2022-06-08

概述
备份
步骤
备份数据库
立即导出大数据存储中的数据 (可选)
备份数据目录
恢复
恢复数据库
恢复 SeaTable 数据
恢复大数据存储中的数据