毎度、ググっても出てこない小ネタを取り扱っております。
本記事は個人的な見解であり、筆者の所属するいかなる団体にも関係ございません。
0. はじめに
いつも書いているGitLabのPostgresqlのバージョンアップを実施したという話になります。
■2019年12月10日
OmnibusインストールされたGitLabのPostgreSQLを9.6.14から10.9にアップグレードした話 - Qiita
https://qiita.com/ynott/items/653236f1a5c2ab8cf69f
■2020年05月03日
OmnibusインストールされたGitLab 12.10のPostgreSQLを10.12から11.7にアップグレードした話 - Qiita
https://qiita.com/ynott/items/3b076ef52ad0cd7f9220
■2023年05月28日
OmnibusインストールされたGitLab 13.5.3のPostgreSQLを12.4にアップグレードした話 #PostgreSQL - Qiita
https://qiita.com/ynott/items/73e5f1856637fd218d35
■GitLabで利用できるPostgreSQLの最小バージョン
16.7でのフレッシュインストールが14.9になったのでアップグレードします。
1. GitLab 16.7 で PostgreSQL 14.9にアップグレード
1-1. アップグレードする方法を確認する
データベースアップグレードの方法は、以下にあります。
Database settings | GitLab
https://docs.gitlab.com/omnibus/settings/database.html#upgrade-packaged-postgresql-server
gitlab-ctl pg-upgrade
を実行すれば基本的にいいのですが、事前にチェックしておく項目がいくつかあります。
- 最新のGitLabにバージョンアップする
- sudo gitlab-ctl reconfigureがちゃんと通る事を確認する
- ディスク容量が空いている事を確認する
1-2. sudo gitlab-ctl reconfigure
を実行する
反映されていない設定が存在しないか、reconfigureします。
sudo gitlab-ctl reconfigure
実行結果
$ sudo gitlab-ctl reconfigure
[2023-12-29T12:58:12+09:00] INFO: Started Cinc Zero at chefzero://localhost:1 with repository at /opt/gitlab/embedded (One version per cookbook)
Cinc Client, version 17.10.0
Patents: https://www.chef.io/patents
Infra Phase starting
[2023-12-29T12:58:12+09:00] INFO: *** Cinc Client 17.10.0 ***
<<<中略>>>
[2023-12-29T12:58:33+09:00] INFO: Report handlers complete
Infra Phase complete, 12/719 resources updated in 20 seconds
[2023-12-29T12:58:33+09:00] WARN: This release of Cinc Client became end of life (EOL) on May 1st 2023. Please update to a supported release to receive new features, bug fixes, and security updates.
gitlab Reconfigured!
1-3. 空き容量を確認する
user@gitlab:~$ sudo du -sh /var/opt/gitlab/postgresql/data
657M /var/opt/gitlab/postgresql/data
user@gitlab:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sde 250G 55G 196G 22% /var/opt/gitlab
1-4. sudo gitlab-ctl pg-upgrade
を実行する
以下のコマンドでアップグレードします。
バージョンを指定しなくても問題ないはず。
sudo gitlab-ctl pg-upgrade
sudo gitlab-ctl pg-upgrade
コマンドを打って、PostgeSQLのバージョンアップ開始されるまでに30秒猶予が与えられます。なんか止まったとか焦らないようにしましょう。
心の準備ができてない場合は、ctrl+cでキャンセルできます。
アップグレードが開始されるのを30秒正座して待ちましょう。
以下のように出れば成功です!!
user@gitlab:~$ sudo gitlab-ctl pg-upgrade
<<<中略>>>
==== Upgrade has completed ====
Please verify everything is working and run the following if so
sudo rm -rf /var/opt/gitlab/postgresql/data.13
sudo rm -f /var/opt/gitlab/postgresql-version.old
古いファイルは消しましょう。と思って/var/opt/gitlab/postgresql/
を見たら、Postgresql 12の時のバックアップが残っていました...。
安全が確認できたら削除する事にします...。
1-5. 確認する
以前は、sudo gitlab-ctl restart
しないとバージョンが切り替わりませんでしたが、今回は何もしなくてもリロードするだけで反映されました。
1-6. 古いファイルを削除する
サーバーを管理していていつも緊張するのがファイルの削除です。
さすがに不要なバージョン12の方を先に削除します。
sudo rm -rf /var/opt/gitlab/postgresql/data.12
バージョンファイルも削除していいでしょう。
sudo rm -f /var/opt/gitlab/postgresql-version.old
/var/opt/gitlab/postgresql/data.13
はそのうち削除する事にします。
2. まとめ
バージョン12にしたときほどのスピードアップは体感では感じられませませんでしたが、バージョンに追従しておくのは重要です。