日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

gitlab的升级【二】旧数据的备份和新数据的恢复

發布時間:2025/5/22 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gitlab的升级【二】旧数据的备份和新数据的恢复 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? gitab的升級的前置條件就是已經安裝好了和舊的gitab服務器相同版本的Omnibus gitlab。source源碼安裝的gitlab升級到最新的gitlab的Omnibus版本,操作步驟是:

? ? 1.source源碼安裝的gitlab更改成相同版本的Omnibus版本的gitlab。

? ? ? source源碼安裝的gitlab的版本是gitlab 7.14.3;MySQL是5.6。

? ? 2.Omnibus版本的gitlab升級到最新版本。

? ? ? 下載最新版本的gitlab的CE的rpm包,然后直接yum localinstall安裝即可。


一.舊服務器,source源碼安裝的gitlab的備份。

? ? 1.關閉gitlab服務

? ? ? ? ?su - git

? ? ? ? ?sudo /etc/init.d/gitlab stop

? ? 2.備份最新的數據

? ? ? ? su - git

? ? ? ? cd /home/git/gitlab/

? ? ? ??sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production

? ? ? ? #上述命令執行完成之后會在gitlab下的tmp/backup/目錄下面獲取一個前綴是時間戳的tar.gz壓縮文件,這個文件就是備份了數據庫信息已經git倉庫,wiki信息。

? ? 3.備份數據庫,以postgresql的格式備份出來

? ? ? ??mysqldump --compatible=postgresql --default-character-set=utf8 -r gitlabhq_production.mysql -u gitlab gitlabhq_production -p

? ? 4.mysql轉postgresql。

? ? ? ? a).下載mysql轉postgresql的工具集

? ? ? ? ? ? git clone https://github.com/gitlabhq/mysql-postgresql-converter.git -b gitlab

? ? ? ? b).mysql的sql語句轉換成postgresql的sql語句

? ? ? ? ? ? python mysql-postgresql-converter/db_converter.py gitlabhq_production.mysql db/database.sql

? ? ? ? #因為備份之后的壓縮文件解壓之后,mysql的sql文件是放在一個db目錄下面的database.sql文件,之所以創建db目錄就是因為為了替換壓縮文件里面的db/database.sql文件

? ? ? ? c).轉儲

? ? ? ? ? ??ed -s db/database.sql < mysql-postgresql-converter/move_drop_indexes.ed

? ? ? ? #上述命令的執行需要在python2.7或者以上的環境才能夠執行

? ? ? ? d).替換壓縮文件中的db/database.sql

? ? ? ? ? ? gzip db/database.sql

? ? ? ? ? ??tar rf 1448859844_gitlab_backup.tar db/database.sql.gz

二.新服務器的恢復

? ? 1.安裝好Omnibus gitlab 7.14.3

? ? 2.拷貝備份到新服務器的備份目錄

? ? ? ? scp?1448859844_gitlab_backup.tar root@new_gitlab:/home/gitlab/git-data/backup

? ? 3.更改壓縮文件權限

? ? ? ? chown git?1448859844_gitlab_backup.tar

? ? 4.恢復備份 ? ? ? ?

? ? ? ? sudo gitlab-ctl stop unicorn

? ? ? ? sudo gitlab-ctl stop sidekiq

? ? ? ? LC_ALL="en_US.UTF-8" sudo gitlab-rake gitlab:backup:restore BACKUP=1448859844

? ? ? ? #加上這個變量,否則執行到gitlab:shell:setup重新生成authorized_keys時會報錯

? ? 5.更改git倉庫權限信息

? ? ? ? sudo chmod -R ug+rwX,o-rwx /var/opt/gitlab/git-data/repositories

? ? ? ? sudo chmod -R ug-s /var/opt/gitlab/git-data/repositories

? ? ? ? find /var/opt/gitlab/git-data/repositories -type d -print0 | sudo xargs -0 chmod g+s

? ? 6.恢復git和項目信息

? ? ? ??sudo gitlab-rake gitlab:satellites:create RAILS_ENV=production

? ? 7.啟動gitlab

? ? ? ??sudo gitlab-ctl start

? ? 8.gitab檢測

? ? ? ??sudo gitlab-rake gitlab:check

三.新服務局升級到最新版本的gitlab

? ? yum localinstall gitlab-ce.*.rpm

? ? #yum安裝會自動升級和清除原來舊版本的gitlab信息

? ??

當執行rpm進行升級時Gitlab會自動執行以下命令:


1. 關閉gitlab服務。

2. 使用當前的舊版本Gitlab創建備份(輕量級備份,僅備份數據庫)

3. 運行gitlab-ctl reconfigure,進行必要的數據庫更新遷移。

4. 重新啟動Gitlab服務。


四.更改配置文件信息:

? ? 1.更改gitlab的倉庫文件目錄。

? ? ? ? cd /etc/gitlab/

? ? ? ? vi gitlab.rb

? ? ? ??

? ? ? ? # git_data_dir "/var/opt/gitlab/git-data" ?

? ? ? ? git_data_dir "/home/gitlab/git-data"

? ? 2.更改gitlab的backup倉庫 ? ? ?

? ? ? ? # gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"

? ? ? ? gitlab_rails['backup_path'] = "/home/gitlab/backups"

? ? 3.更改捆綁的Nginx的主配置文件nginx.conf信息

? ? ? ??nginx['custom_nginx_config'] = "include /var/opt/gitlab/*.conf;"

? ? 4.更改捆綁的Nginx的子配置文件gitlab-http.conf文件信息

? ? ? ??nginx['custom_gitlab_server_config'] = " location = /wiki { \n return 301 ?http://git.moumentei.com/other/wiki/wikis/home; \n}\n"

? ? 5.使用公司內部的SMTP郵件服務器 ?

? ? ? ? gitlab_rails['smtp_enable'] = true

? ? ? ? gitlab_rails['smtp_address'] = "smtp.server"

? ? ? ? gitlab_rails['smtp_port'] = 25

? ? ? ? gitlab_rails['smtp_authentication'] = false

? ? ? ? gitlab_rails['smtp_enable_starttls_auto'] = false

? ? ? ? gitlab_rails['gitlab_email_from'] = 'xxx@xxxx.com'

? ? ? ? gitlab_rails['gitlab_email_display_name'] = 'Gitlab'


#所有在/etc/gitlab/gitlab.rb配置文件里面的修改都需要執行gitlab-ctl reconfigure,重新讀取配置文件信息。


升級完成之后,若是在web見面創建項目失敗,可以執行以下命令,清除緩存信息

? ??sudo gitlab-rake cache:clear


五.關于hosts和known_hosts映射問題。

? ? 因為更換了新的gitlab服務器,所以之前所有基于git-clone過的服務器在重新提交或者拉去的時候會報錯,提示Host key verification failed.需要在knwon_hosts文件里面把包含舊的服務器信息的公鑰刪除,在重新ssh一次。

? ??

轉載于:https://blog.51cto.com/11819159/1916589

總結

以上是生活随笔為你收集整理的gitlab的升级【二】旧数据的备份和新数据的恢复的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。