OmnibusインストールされたGitLab 13.5.3のPostgreSQLを12.4にアップグレードした話


毎度、ググっても出てこない小ネタを取り扱っております。
本記事は個人的な見解であり、筆者の所属するいかなる団体にも関係ございません。

0. はじめに

ここ1年ぐらいのOmnibus GitLabは立て続けにPostgreSQLがアップグレードされました。
2019年末にPostgreSQL 9.6系だったGitLabがPostgreSQL 10系にアップグレードされました。
2020年5月に、PostgreSQL 10系が11系にアップグレードされ、
2020年10月に、PostgreSQL 12系のサポートが追加されました。

■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

今年はちょっとアップグレードの回数が多かったのですが、これからはPostgreSQLのメジャーバージョンアップに対応して毎年1回アップグレードされていく予定です。

古いPostgreSQLは、順次使えなくなっていくのでPostgreSQLのアップグレードは必須です。

■GitLabで利用できるPostgreSQLの最小バージョン

GitLabのバージョン PostgreSQLの最小バージョン
GitLab 10 9.6系
GitLab 11 10系
GitLab 12 10系
GitLab 13 11系
GitLab 14 12系

PostgreSQL versions shipped with Omnibus GitLab | GitLab
https://docs.gitlab.com/omnibus/package-information/postgresql_versions.html

1. GitLab 13.5.3 で PostgreSQL 12.4にアップグレード

1-1. アップグレードする方法を確認する

データベースアップグレードの方法は、以下にあります。

Database settings | GitLab
https://docs.gitlab.com/omnibus/settings/database.html#upgrade-packaged-postgresql-server

gitlab-ctl pg-upgrade を実行すれば基本的にいいのですが、事前にチェックしておく項目がいくつかあります。

  1. 最新のGitLabをバージョンアップする
  2. sudo gitlab-ctl reconfigureがちゃんと通る事を確認する
  3. ディスク容量が空いている事を確認する

現在のバージョンは以下の通りです。

1-2. sudo gitlab-ctl reconfigure を実行する

sudo gitlab-ctl reconfigure

user@gitlab:~$ sudo gitlab-ctl reconfigure
[sudo] user のパスワード:
Starting Chef Infra Client, version 15.14.0
resolving cookbooks for run list: ["gitlab-ee"]
Synchronizing Cookbooks:
  - gitlab-ee (0.0.1)
  - package (0.1.0)
  - gitlab (0.0.1)
<<<中略>>>
Running handlers:
Running handlers complete
Chef Infra Client finished, 5/879 resources updated in 32 seconds
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 を実行する

GitLab 13.3以降の場合は、sudo gitlab-ctl pg-upgrade -V 12 というコマンドオプションを付けます。

sudo gitlab-ctl pg-upgrade -V 12 コマンドを打って、PostgeSQLのバージョンアップ開始されるまでに30秒猶予が与えられます。なんか止まったとか焦らないようにしましょう。

user@gitlab:~$ sudo gitlab-ctl pg-upgrade -V 12
<<<中略>>>
Toggling services: OK
==== Upgrade has completed ====
Please verify everything is working and run the following if so
sudo rm -rf /var/opt/gitlab/postgresql/data.11
sudo rm -f /var/opt/gitlab/postgresql-version.old

1-5. 確認する

そのままだと、PostgreSQLが11のままの表示だったので、sudo gitlab-ctl restartしました。

2. まとめ

PostgreSQLをバージョンアップしたら、スピードもアップしてレスポンスも良くなった気がします。
今年はバージョンアップが多かったですが、来年以降は1年に1回なのでスケジューリングして対応していくのがよいと思います。