概述
有两部分数据需要备份
- SeaTable 数据目录
- 数据库
如果你根据我们的手册设置 SeaTable 服务器,你应该有这样一个目录布局:
/opt/seatable/seatable-data/seatable/
├── ccnet
├── conf
├── db-data
├── logs
├── pids
├── scripts
├── seafile-data
└── seahub-data
└── storage-data
其中
- storage-data: 存储表格的数据和大数据存储中的数据的备份
- db-data: 大数据存储中的数据 (企业版才有),其中的数据会定期导出到 storage-data 下。
- seafile-data: 表格中的附件,包括文件和图片
- seahub-data: 头像等
SeaTable 还在一些数据库中存储一些重要的元数据.
MySQL 数据库:
- ccnet_db: 包含用户和组信息
- seafile_db: 包含资料库元数据信息
- dtable_db: 包含web前端使用的表
备份
步骤
- 备份 MySQL 数据库;
- 立即导出大数据存储中的数据 (可选), 也就是把 dtable-db 目录下的数据从内部的一种特殊格式导出到 storage-data 下。
- 备份 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
dockerexec-itseatable-mysqlmysqldump-uroot-pMYSQL_ROOT_PASSWORD--optccnet_db>ccnet_db.sql
dockerexec-itseatable-mysqlmysqldump-uroot-pMYSQL_ROOT_PASSWORD--optseafile_db>seafile_db.sql
dockerexec-itseatable-mysqlmysqldump-uroot-pMYSQL_ROOT_PASSWORD--optdtable_db>dtable_db.sql
立即导出大数据存储中的数据 (可选)
大数据存储中的数据 (dtable-db 中存储的数据) 每日会自动进行一次导出,如果你需要迁移服务器,那么你可以在对外停用服务后立即对数据进行一次导出,这样来保证迁移后的数据是最新的。
dockerexec-itseatable/opt/seatable/scripts/seatable.shbackup-all
该命令结束后,storage-data 就会有一份 dtable-db 中数据的最新导出。
备份数据目录
你可以直接复制整个数据目录或者用 rsync 增量备份。
- 直接复制整个目录
cp-R/opt/seatable/seatable-data/seatable/opt/seatable-backup/data/
cd/opt/seatable-backup/data&&rm-rfccnetlogs
- 使用 rsync 增量备份
/usr/bin/rsync-az--exclude'ccnet'--exclude'logs'--exclude'pids'--exclude'db-data'/opt/seatable/seatable-data/seatable/opt/seatable-backup/data/
恢复
恢复数据库
dockerexec-iseatable-mysql/usr/bin/mysql-uroot-pMYSQL_ROOT_PASSWORDccnet_db</opt/seatable-backup/databases/ccnet_db.sql
dockerexec-iseatable-mysql/usr/bin/mysql-uroot-pMYSQL_ROOT_PASSWORDseafile_db</opt/seatable-backup/databases/seafile_db.sql
dockerexec-iseatable-mysql/usr/bin/mysql-uroot-pMYSQL_ROOT_PASSWORDdtable_db</opt/seatable-backup/databases/dtable_db.sql
恢复 SeaTable 数据
cp-R/opt/seatable-backup/data/*/opt/seatable/seatable-data/
恢复大数据存储中的数据
dockerexec-itseatable/opt/seatable/scripts/seatable.shrestore-all