{{< details >}}

  • Tier: 基础版,专业版,旗舰版
  • Offering: 私有化部署

{{< /details >}}

如果你在云提供商上托管极狐 GitLab,你可以选择使用一个托管的 PostgreSQL 服务。例如,AWS 提供了一个运行 PostgreSQL 的托管关系数据库服务 (RDS)。

另外,你也可以选择管理你自己的 PostgreSQL 实例或集群,与 Linux 软件包分开。

如果你使用云托管服务或提供你自己的 PostgreSQL 实例:

  1. 根据数据库要求文档设置 PostgreSQL。
  2. 设置一个 gitlab 用户,使用你选择的密码,创建 gitlabhq_production 数据库,并将该用户设为数据库的所有者。你可以在自行编译安装文档中查看此设置的示例。
  3. 如果你使用云托管服务,你可能需要为你的 gitlab 用户授予额外的角色:
    • Amazon RDS 需要 rds_superuser角色。
    • Azure Database for PostgreSQL 需要 azure_pg_admin 角色。Azure Database for PostgreSQL - Flexible Server 需要在安装前允许列表扩展。

    这是为了在安装和升级期间安装扩展。作为替代方案,确保扩展手动安装,并阅读有关未来极狐 GitLab 升级时可能出现的问题

  4. 在你的 /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 多节点设置的更多信息,请参考参考架构

  5. 重新配置以使更改生效:

    sudo gitlab-ctl reconfigure
    
  6. 重启 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 实例升级到支持的版本后,你应该能够执行备份而不会出现此错误。