{{< details >}}
- Tier: 基础版,专业版,旗舰版
- Offering: 私有化部署
{{< /details >}}
如果你在云提供商上托管极狐 GitLab,你可以选择使用一个托管的 PostgreSQL 服务。例如,AWS 提供了一个运行 PostgreSQL 的托管关系数据库服务 (RDS)。
另外,你也可以选择管理你自己的 PostgreSQL 实例或集群,与 Linux 软件包分开。
如果你使用云托管服务或提供你自己的 PostgreSQL 实例:
- 根据数据库要求文档设置 PostgreSQL。
- 设置一个
gitlab
用户,使用你选择的密码,创建gitlabhq_production
数据库,并将该用户设为数据库的所有者。你可以在自行编译安装文档中查看此设置的示例。 - 如果你使用云托管服务,你可能需要为你的
gitlab
用户授予额外的角色:- Amazon RDS 需要
rds_superuser
角色。 - Azure Database for PostgreSQL 需要
azure_pg_admin
角色。Azure Database for PostgreSQL - Flexible Server 需要在安装前允许列表扩展。
这是为了在安装和升级期间安装扩展。作为替代方案,确保扩展手动安装,并阅读有关未来极狐 GitLab 升级时可能出现的问题。
- Amazon RDS 需要
-
在你的
/etc/gitlab/gitlab.rb
文件中为极狐 GitLab 应用服务器配置适当的外部 PostgreSQL 服务连接详细信息:# 禁用捆绑的 Omnibus 提供的 PostgreSQL postgresql['enable'] = false # PostgreSQL 连接详细信息 gitlab_rails['db_adapter'] = 'postgresql' gitlab_rails['db_encoding'] = 'unicode' gitlab_rails['db_host'] = '10.1.0.5' # 数据库服务器的 IP/主机名 gitlab_rails['db_password'] = '数据库密码'
有关极狐 GitLab 多节点设置的更多信息,请参考参考架构。
-
重新配置以使更改生效:
sudo gitlab-ctl reconfigure
-
重启 PostgreSQL 以启用 TCP 端口:
sudo gitlab-ctl restart
故障排除
解决 SSL SYSCALL error: EOF detected
错误
使用外部 PostgreSQL 实例时,你可能会看到如下错误:
pg_dump: error: Error message from server: SSL SYSCALL error: EOF detected
要解决此错误,请确保满足最低 PostgreSQL 要求。在将你的 RDS 实例升级到支持的版本后,你应该能够执行备份而不会出现此错误。