Gitlab版本9.1.3
错误发生时间 2019.4.25
错误发生状况:
登录gitlab时,登录页面可以正常打开,但是当登入账号后报错500,所有项目都是500,不能提交,不能拉,显示服务器拒绝了链接。
(如图)
思路:
1.最初想通过系统升级的方法解决这个问题,但是风险略高,遂放弃。
2.看到网上说,可以通过重构数据库的命令来恢复这个错误,尝试后失败。
3.在日志中看到很多关于内网一个开发人员测试机的IP(日志如下),问他做了什么,他说只是用API做了调用,使用了Pipeline功能,可是9.1.3并没有Pipeline功能啊。。。
最终解决方法
通过导出当日备份的方法保留备份文件,然后新建虚拟机把新的备份文件拷贝过去解决。
导出命令
gitlab-rake gitlab:backup:create
执行后如下
备份好的文件在
/var/opt/gitlab/backups
文件名字类似于
1556242886_2019_04_26_gitlab_backup.tar
Gitlab迁移
1.复制老服务器上面的备份文件到新服务器
2.确保新Gitlab服务器和老Gitlab服务器版本相同
查看gitlab版本号
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
执行的结果如下
用Winscp或者scp命令拷贝备份文件到新gitlab的/var/opt/gitlab/backups目录,如果你改了,这里要写成你修改过的目录,具体不再赘述。
更改权限为777 避免因权限不构造成的错误(可能有)
chmod 777 1502357536_2017_08_10_9.4.3_gitlab_backup.tar
#停止相关进程
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
执行结果如下
恢复备份文件的命令
#gitlab-rake gitlab:backup:restore BACKUP=1556242886_2019_04_26 #不要照抄,改成你的文件名
我的文件名是1556242886_2019_04_26_gitlab_backup.tar 如果你的文件名是其他的,需要更改。
敲完之后会有一段时间的等待
然后提示你正在解压压缩包,完成后会遇到一个提示,大意是如果你点是就开始恢复了,里面已经存在的数据可能会丢失之类的,是否要继续?这里选yes
这里选择Yes,他问你是否要重新构建Authorized文件,你将要丢失一些文件。
Put GitLab hooks in repositories dirs [DONE]
done
Restoring uploads …
done
Restoring builds …
done
Restoring artifacts …
done
Restoring pages …
done
Restoring lfs objects …
done
This will rebuild an authorized_keys file.
You will lose any data stored in authorized_keys file.
Do you want to continue (yes/no)?
4、执行命令从备份文件中恢复Gitlab
第四步,启动Gitlab
完事~
sudo gitlab-ctl start
#注:
#备份文件中部分图片引用自:https://blog.csdn.net/ouyang_peng/article/details/77070977
#查看git版本号的命令引用自:https://blog.csdn.net/wo18237095579/article/details/81106150