標籤:gitlab資料移轉
遷移環境準備:
Gitlab資料移轉需在同版本之間進行。因為不同版本的gitlab之間,資料庫的庫表結構與程式的實現方式是有差異的。若需從伺服器A把gitlab的資料移轉至伺服器B,則伺服器B需部署與伺服器A同樣版本的gitlab方可。
遷移實現方式:
可以使用gitlab備份與恢複的命令,實現資料的遷移。
備份:
bundle exec rake gitlab:backup:create RAILS_ENV=production
該備份命令會備份本地gitlab的所有項目的倉庫以及mysql資料。
恢複:
bundle exec rake gitlab:backup:restore RAILS_ENV=production BACKUP=Timestamp
該恢複命令會匯入備份中的mysql資料和項目倉庫目錄,並可以根據需要,從mysql庫中的資料中重構~/.ssh/authorized_keys身分識別驗證檔案。
遷移操作:
伺服器A:
#su - git$cd gitlab$ bundle exec rake gitlab:backup:create RAILS_ENV=production
若運行無錯誤,備份成功後,在備份目錄(預設為/home/git/gitlab/tmp/backups)下會產生一個備份tar包,裡麵包含了gitlab項目倉庫以及mysql匯出資料。
檔案格式如:1449731757_gitlab_backup.tar,其中“1449731757”為備份檔案的時間戳記。
上傳備份檔案到伺服器B的備份目錄。
伺服器B:
#chown git.git /home/git/gitlab/tmp/backups/1449731757_gitlab_backup.tar#su - git$cd gitlab$ bundle exec rake gitlab:backup:restore RAILS_ENV=production BACKUP=1449731757
注意這裡的“BACKUP=1449731757”,這裡需填寫想恢複檔案時間戳記。
若運行無誤,則資料移轉完成。
註:gitlab的預設備份目錄,可以在/home/git/gitlab/config/gitlab.yml中修改:
$vi /home/git/gitlab/config/gitlab.yml backup: path: "tmp/backups"
本文出自 “linux營運” 部落格,請務必保留此出處http://icenycmh.blog.51cto.com/4077647/1723296
Gitlab資料移轉