GitLab的备份与恢复.241126
一、备份
1. docker执行备份
docker exec gitlab gitlab-rake gitlab:backup:create
默认将备份文件保存至docker的/var/opt/gitlab/backups/ 目录
这条命令是在 Docker 容器内部执行 GitLab 的备份操作。让我来解释一下这个命令的各个部分: docker exec:这是 Docker 命令,用于在正在运行的容器内部执行命令。 gitlab:指定要操作的容器名称或 ID,即运行 GitLab 服务的容器。 gitlab-rake gitlab:backup:create:这部分是在 GitLab 容器内部执行的实际命令。具体来说: gitlab-rake:是 GitLab 提供的用于管理数据库和执行其他任务的命令行工具。 gitlab:backup:create:是使用 gitlab-rake 工具创建 GitLab 数据库备份的命令。 通过执行这条命令,GitLab 将会在容器内部创建一个数据库备份。这样可以确保数据的安全性和可恢复性。
执行完会有一个警告
Warning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data and are not included in this backup. You will need these files to restore a backup. Please back them up manually.
这个警告是在执行 GitLab 备份时提醒您,备份文件中不包含 gitlab.rb
和 gitlab-secrets.json
这两个文件,这两个文件包含了敏感数据,例如配置信息和加密密钥,因此在恢复备份时需要手动备份这两个文件。
为了确保完整的备份和恢复过程,请务必手动备份 gitlab.rb
和 gitlab-secrets.json
文件。
2. 备份敏感数据
docker cp gitlab:/var/opt/gitlab/backups/1709697433_2024_03_06_13.6.2_gitlab_backup.tar /data/gitlab-bak/ docker cp gitlab:/etc/gitlab/gitlab.rb /data/gitlab-bak/ docker cp gitlab:/etc/gitlab/gitlab-secrets.json /data/gitlab-bak/
备份完成
二、数据的恢复
我们启动新的容器,然后将刚才备份的文件拷贝到容器里,后面两个文件直接覆盖即可
docker cp /data/gitlab-bak/1709697433_2024_03_06_13.6.2_gitlab_backup.tar gitlab:/var/opt/gitlab/backups/ docker cp /data/gitlab-bak/gitlab-secrets.json gitlab:/etc/gitlab/ docker cp /data/gitlab-bak/gitlab.rb gitlab:/etc/gitlab/
拷贝完之后,我们进入容器,进入备份目录,执行如下命令
docker exec -it gitlab bash gitlab-rake gitlab:backup:restore BACKUP=1709697433_2024_03_06_13.6.2
如果没有权限,则执行
chmod 777 文件名
恢复之后,我们重新加载配置,并重启gitlab
gitlab-ctl reconfigure gitlab-ctl restart
喜欢请赞赏一下啦^_^

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2009-01-04 【Vegas原创】X connection to localhost:11.0 broken (explicit kill or server shutdown)解决方法
2008-01-04 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败解决方法