• 欢迎访问阿黑哥的博客,分享新老技术及精品软件
  • 技术不断,生命不息,折腾不止
  • 推荐使用Chrome浏览器访问本网站
  • 由于之前把部分图片存于七牛云,而没有绑定域名导致图片无法加载。现已部分修复
  • 如果您觉得本博客非常有趣,那就赶紧使用Ctrl+D 收藏本站吧

Seafile数据迁移记录

Linux技术 aheig 2个月前 (05-27) 129次浏览 0个评论
文章目录[隐藏]

为什么要迁移数据?

原因是这样的。原本呢,是把数据放在了 windows2019 里 hyper-v 虚拟机下的 CentOS-7.6 里的 seafile7.0.6 服务里(有点套娃的感觉)。有一天发现有 7.1 版本可以升级。于是手痒,也没看升级说明就一顿骚操作。升级之后打开网页端直接给我报 502。然后就去看官方的指导说明了。一看被惊到了,一个小版本,居然搞那么多升级,就连依赖的 python 也从 v2.7,升级到了 v3。当然我的 python 的升级还是很顺畅的。报 502 的原因是 seafile7.1 的 nginx 反代模式也做了变更。至于为什么非得迁移,还有个原因值得说明的是,就在这之前几天,我的两台 windows 服务器居然被勒索了。实在是气啊。于是,为了数据的安全起见。我决定直接转移到物理机下部署 Seafile(至少不怕被勒索了)。于是就发生了接下来要讲的故事。

备份资料到共享服务器

1.备份 seafile-data 目录到我的 windows 搭建的共享服务器中

#安装 mount.cifs
yum install mount.cifs -y
#创建临时挂在目录
mkdir /mnt/data
#挂在共享目录到/mnt/data 目录下
mount.cifs //10.10.0.254/seafilebackup /mnt/data -o username='administrator',password='password'
#复制 seafile 的数据到 windows 共享里
cp /opt/seafile/seafile-data /mnt/data/

2.备份数据库

mysqldump --opt ccnet_db > /mnt/data/databases/ccnet_db.sql.`date +"%Y-%m-%d-%H-%M-%S"`
mysqldump --opt seafile_db > /mnt/data/databases/seafile_db.sql.`date +"%Y-%m-%d-%H-%M-%S"`
mysqldump --opt seahub-db > /mnt/data/databases/seahub_db.sql.`date +"%Y-%m-%d-%H-%M-%S"`

seafile 数据和数据库都已经备份完毕,先不要急着销毁服务器。万一数据恢复时出问题呢。数据还在就多一份保障。

目标服务器准备

操作系统:CentOS-8.1(操作系统的安装没什么可说的)
技术有限+人比较懒
使用官方一件脚本搭建好 seafile7.1.4 (建议有能力的在全局番羽土啬环境搭建,因为在国内环境直接下载 python 的时候,网速超级慢,容易导致安装失败)

wget --no-check-certificate https://raw.githubusercontent.com/haiwen/seafile-server-installer/master/seafile-7.1_centos
bash seafile-7.1_centos 7.1.4
reboot

安装 mount.cifs

yum install mount.cifs -y

安装 ntfs-3g(用来挂载 NTFS 磁盘专门存储数据)

yum install ntfs-3g -y

如果直接 yum 安装失败的话,可以参考CentOS 8 挂载 NTFS 系统磁盘方案来编译安装

挂载磁盘

查看新磁盘

df

Seafile 数据迁移记录
我的磁盘是 sdb1,图片是挂在之后截取的,只是多显示了挂载点而已
停止 seafile

/opt/seafile/seafile-server-latest/seahub.sh stop
/opt/seafile/seafile-server-latest/seafile.sh stop

删除原数据文件

rm -rf /opt/seafile/seafile-data/*

把磁盘挂载到 seafile-data 目录

mount /dev/sdb1 /opt/seafile/seafile-data

查看挂载是否生效

lsblk 

显示如下表示已经生效
Seafile 数据迁移记录

复制数据

mkdir /mnt/data
mount.cifs //10.0.0.254/seafilebackup /mnt/data -o username='administrator',password='password'
cp -rf /mnt/data/seafilebackup/seafile-data/*  /opt/seafile/seafile-data/

启动 seafile

/opt/seafile/seafile-server-latest/seafile.sh start
/opt/seafile/seafile-server-latest/seahub.sh start

恢复数据库

如果有备份多份数据库,注意源数据库后缀的日期(下面的*号内容的选择)选择相应数据库

mysql ccnet_db < /mnt/data/databases/ccnet_db.sql.*
mysql seafile_db < /mnt/data/databases/seafile_db.sql.*
mysql seahub-db < /mnt/data/databases/seahub_db.sql.*
reboot

数据迁移完成!

/opt/seafile/seafile-server-latest/reset-admin.sh

补充

完成迁移后发现 seafile 没有开机自启动。我的解决办法是写脚本添加启动项

vi /etc/init.d/auto_seafile.sh

脚本内容如下

#!/bin/sh
#chkconfig:2345 80 90
#description:auto_seafile
/opt/seafile/seafile-server-latest/seafile.sh start
/opt/seafile/seafile-server-latest/seahub.sh start

给予执行权限

chmod +x /etc/init.d/auto_seafile.sh

添加到开机启动

chkconfig --add auto_seafile.sh

完成以上配置之后,以后重启电脑就不用去手动启动 seafile 了


阿黑哥博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Seafile 数据迁移记录
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址