将ubuntu设置为NAS——23.seatable数据备份迁移​

2022-03-26 14:03:24 5点赞 47收藏 5评论

前言

之前文章介绍过将ubuntu设置为NAS——13.搭建新型在线协同表格和信息管理工具Seatable,目前稳定在离线的办公局域网使用,方便多人协作收集表格资料,在离线环境中,seatable确实是款非常好用的在线表格,当然它目前已经不仅仅是在线表格,支持JavaScript和python脚本,可以作为可视化在线数据库来使用,搭配脚本应该有更广阔的使用场景(本人这方面深入不足,还在探索中),每月会有新版本更新,搭配插件功能,即使是免费的开发版,我也是感觉越来越完善。最近私人的离线服务器遇到些问题,需要备份相关seatable数据,并转移到另外一台服务器中去(不同IP),相关教程其实官方做的还是比较详细的,但我实践中还是遇到失败的情况,遇到了些小白才会犯的错误,索性记录一下,就又水了这篇文章。

1、备份原数据

首先需要新建备份数据用文件夹,再进入此文件夹

sudo mkdir /home/yang/seatable-bak

备份数据分为2步,首先备份数据库文件,再备份数据。

1.1、备份数据库

备份数据库

# 首先进入新建备份数据文件夹
cd /home/yang/seatable-bak
# 备份用户和组信息数据
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
# web前端使用的表
docker exec -it seatable-mysql mysqldump -uroot -pMYSQL_ROOT_PASSWORD --opt dtable_db > dtable_db.sql

以上是官方教程相关命令,这里对于像我这样的小白就会有些坑,如果机械复制上述命令,可能导致备份失败.

备份失败.备份失败.

命令行没有返回错误信息,数据库文件也出现在备份文件夹里了,但大小是不对的,只有1KB,备份其实是失败了。

首先确保docker下的seatable已经通过docker-compose方式运行了,输入docker ps命令确认,出现如图所示容器即可。

确认docker下的seatable正在运行确认docker下的seatable正在运行

然后需要修改命令,请将命令中的-pMYSQL_ROOT_PASSWORD修改为-p+docker-compose.yml文件中设置的密码,比如我的docker-compose.yml。

查看docker-compose.yml中数据库密码查看docker-compose.yml中数据库密码

命令就修改为以下内容,替换MYSQL_ROOT_PASSWORD为自己的数据库密码

# 备份用户和组信息数据
docker exec -it seatable-mysql mysqldump -uroot -pPASSWORD --opt ccnet_db > ccnet_db.sql
# 备份资料库元数据信息
docker exec -it seatable-mysql mysqldump -uroot -pPASSWORD --opt seafile_db > seafile_db.sql
# web前端使用的表
docker exec -it seatable-mysql mysqldump -uroot -pPASSWORD --opt dtable_db > dtable_db.sql

备份成功备份成功

显示有数据大小合适了,就是成功备份好数据库了。

1.2、备份数据库目录

官方介绍2种方案,一种是全量备份,另一种是增量部分,由于我是首次备份,首先直接全量备份,全量备份很简单,注意其中数据为docker映射路劲,请根据docker-compose.yml文件设置。

#简单的复制方式,有个不好就是看不到进度,文件比较大的化,可能有死机假象,不推荐
cp -R /docker/seatable/seatable-data/seatable /home/yang/seatable-bak
#增量备份,推荐,加了--progress 可以看到进度,界面友好
rsync -az --progress /docker/seatable/seatable-data/seatable /home/yang/seatable-bak
# 删除其中的日志文件
cd /home/yang/seatable-bak/seatable && rm -rf ccnet logs

我先是采用cp方式,数据文件量比较大的话,需要等待较长时间,没有什么提示,有点像死机了。

cp方式备份,无提示cp方式备份,无提示

后面等了2个小时还是没有动静,发现确实是死机了,看来cp方式不是很可靠,只好选择rsync方式备份

rsync -az --progress /docker/seatable/seatable-data/seatable /home/yang/seatable-bak

rsync方式备份rsync方式备份

2、恢复数据

在另外一台主机上先采用docker-compose方式搭建seatable,过程不再赘述,安装完毕先不要使用docker exec -d seatable /shared/seatable/scripts/seatable.sh start启动。

恢复数据库,教程命令是如下,按照上面的情况,需要修改-pMYSQL_ROOT_PASSWORD,改成docker-compose.yml中的数据库密码,尝试重新搭建的seatable的数据库设置为不同的密码。

重新设置新服务器docker-compose.yml重新设置新服务器docker-compose.yml

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

所以按照教程需要修改命令,需要恢复的数据库文件请复制到新主机容易找到的位置(可以用winscp上传文件)

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

恢复 SeaTable 数据,可以直接用winscp上传备份数据到容器映射目录,按照docker-compose.yml中的设置路径进行。

找到设置路径找到设置路径

请由于搭建seatable后,数据目录文件在最后一张图/docker/seatable/seatable-data/seatable,原备份文件中的conf文件夹不要复制过去,用新生成的文件,由于原备份文件的地址等设置与新的主机是不一样,直接复制过去网页就打不开了。

将ubuntu设置为NAS——23.seatable数据备份迁移​

将ubuntu设置为NAS——23.seatable数据备份迁移​

将ubuntu设置为NAS——23.seatable数据备份迁移​

依次打开路径依次打开路径

方便文件复制和拖拽可以设置winscp以root登入。

正常从一台主机直接拖拽文件复制到winscp登录的服务器,可能提示没有权限,主要原因是没有root权限,需要我们使用root用户进行操作,但是WinSCP并不能默认使用root用户进行登录,解决方法是:

1. 先使用 sudo passwd root 设置好密码(已设置可忽略这步)。

2. 然后在/etc/ssh/sshd_config中找到PermitRootLogin 这一行将后面的参数改为yes 保存退出。

sudo nano /etc/ssh/sshd_config

修改ssh设置修改ssh设置

3. 重启service ssh restart 。

4. 重新打开winscp 重新编辑登录信息,使用root用户登录就可以直接拖拽文件。

复制完成后,启动seatable脚本。

docker exec -d seatable /shared/seatable/scripts/seatable.sh start

用原数据库文件登录就可以发现数据恢复成功了。

数据恢复成功数据恢复成功

当然目前这种转移备份数据恢复的办法,其实还是存在一些问题,由于2台服务器是不同的IP地址,备份后其中的图片或文件类型的数据,由于对应的IP数据也直接复制过来,导致在新IP下无法正常显示或下载相关图片和文件,其对应的文件或图片地址还是指示老服务器的地址,其实文件或图片已经正常存储到了新服务器中,只是地址错了,目前这个只能自行编辑javascript脚本对对应的表格内容进行修改。

总结

本人在备份恢复seatable过程中,遇到了数据库备份错误无提示的和全量备份失败的情况,这里主要是自己对教程理解不深,经过折腾发现其中的问题,总算最后成功了。转移备份数据过程中出现文件和图片无法正常显示和下载的问题,最后是通过学习官方的javascript脚本语言搞定,也发现了脚本功能的强大。

展开 收起

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

1849元起

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

2485.01元起

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

1749元起

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

3499元起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2599元起

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

1999元起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2849元起

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

5899元起

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

2799元起

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

3199元起

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

2499元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

1299元起

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

1290.51元起

ZSpace 极空间 私有云 T2 2盘位NAS存储(RK 3568、4GB)

ZSpace 极空间 私有云 T2 2盘位NAS存储(RK 3568、4GB)

1699元起

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

4299元起
5评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
47
扫一下,分享更方便,购买更轻松