由于当时使用的服务器电脑比较老旧,所以后期需要迁移到别的服务器,记录一下整体过程。
备份数据
首先要从源服务器备份数据,要求创建docker容器的时候,挂载本地目前,备份文件会直接放在本地路径。
# 进入docker 容器sudo docker exec -it gitlab /bin/bash# 备份数据gitlab-rake gitlab:backup:create /var/opt/gitlab/backups/# 备份成功后会有一个tar文件,本地挂载在/srv/gitlab/data/backups/1639643527_2021_12_16_14.4.1_gitlab_backup.tar
迁移还原数据
在新的服务器上新建容器,要求是gitlab版本要跟之前的版本一致,不然恢复数据会出错。
# 新建容器后,把原服务器的备份文件远程拷贝过来scp user@ip:/srv/gitlab/data/backups/1639643527_2021_12_16_14.4.1_gitlab_backup.tar /srv/gitlab/data/backups/# 由于这些路径可能都没有权限,可以把文件先转到/tmp/下,上面的命令变为scp user@ip:/tmp/1639643527_2021_12_16_14.4.1_gitlab_backup.tar /srv/gitlab/data/backups/# 给予最高权限,防止权限不够sudo chmod 777 1639643527_2021_12_16_14.4.1_gitlab_backup.tar# 关闭数据服务# 进入到docker容器下sudo docker exec -it gitlab /bin/bash# 关闭数据服务gitlab-ctl stop unicorngitlab-ctl stop sidekiq# 还原数据cd /var/opt/gitlab/backups/gitlab-rake gitlab:backup:restore BACKUP=1639643527_2021_12_16_14.4.1# 上面恢复命令,不要写文件的全全名,会自动拼接# 恢复结束后,会提示config下的gitlab.rb和gitlab-secrets.json属于保密文件,手动备份和还原也就是手动复制一份源服务器的文件到新服务器/srv/gitlab/config下# 重启服务gitlab-ctl reconfiguregitlab-ctl restart
经过尝试,最后实现了,数据的全部迁移,包括用户的所有信息
