[分享] 极狐GitLab实例初始化时创建指定版本数据库

本文针对极狐GitLab Omnibus/HA安装方式

极狐GitLab 安装时,提供了多个版本的内置 PostgreSQL 供用户选择。只要在第一次初始化前修改/etc/gitlab/gitlab.rb配置文件中的postgresql['version']参数指定要安装的数据库的主要版本即可,例如:

postgresql['version'] = 11

当前安装的极狐GitLab支持的PostgreSQL的版本可以点此查看
如果您已经进行过初始化操作,无论成功与否,想要更换数据库的版本主要有以下两种情况:
情况一: 切换为更高版本的数据库
此种情况可以使用升级的方式进行数据库版本的切换,详见。主要涉及以下命令:

sudo gitlab-ctl pg-upgrade -V 12

情况二: 切换为更低版本的数据库
此种情况可以先备份当前数据库,根据前面所述方式重新初始化低版本的数据库,然后采用备份恢复的方式恢复数据到新数据库,因为极狐GitLab对数据库的备份还原采用的是pg_dump的方式,因此不会受到数据库版本的限制。
注意:
重新初始化数据库,需要先删除/var/opt/gitlab/postgresql/data目录(此路径为默认数据库数据目录,设置不同可能不同,由参数postgresql['dir']控制),data目录存在数据的情况下,重新初始化数据库将失败。

参数说明:

postgresql['data_dir']参数使用非默认路径的情况下,在进行极狐GitLab跨数据库版本升级时可能会出现数据库升级失败的问题。现象如下:

Creating temporary data directory:Error creating new directory: /data/gitlab/postgresql/data.11
STDOUT:
STDERR: mkdir: cannot create directory ‘/data/gitlab/postgresql/data.11’: Permission denied
Creating temporary data directory: NOT OK

如果遇到此问题请尝试修改以下目录权限,然后手动进行数据库的升级操作。

sudo chown gitlab-psql:root /data/gitlab/postgresql
sudo gitlab-ctl pg-upgrade -V 12

此问题已在后续版本中被修复。
参数postgresql['data_dir']在后续版本中被移除,由参数postgresql['dir']取代。

1 个赞