温馨提示×

GitLab在Debian上的数据库如何选择

小樊
35
2025-11-19 15:13:38
栏目: 智能运维

GitLab在Debian上的数据库选择

首选数据库与版本要求

  • Debian 上,GitLab 仅支持 PostgreSQL,且自 GitLab 12.1 起已移除对 MySQL/MariaDB 的支持;如使用旧版本请先迁移至 PostgreSQL。Omnibus 安装包内置 PostgreSQL,也可使用外部 PostgreSQL。建议使用的 PostgreSQL 最低版本为 11+(因 9.6/10 已在 13.0 移除),并务必在每个 GitLab 数据库加载扩展:pg_trgmbtree_gist。PostgreSQL 服务器建议预留 5–10 GB 存储(随用户规模增长)。

场景化选择建议

  • 全新部署:直接使用内置或外部的 PostgreSQL,这是唯一受支持且功能完整的选项。
  • 从旧版 GitLab 升级:若当前使用 MySQL/MariaDB,请在升级前完成迁移至 PostgreSQL,否则将面临兼容性与升级阻断风险。
  • 使用 GitLab Geo:优先采用 Omnibus 管理的数据库实例;对外部数据库(如云托管 PostgreSQL)仅作“尽力兼容”,不保证可用性与支持性。

PostgreSQL部署与配置要点

  • 安装与初始化(Debian):执行 sudo apt update && sudo apt install postgresql postgresql-contrib,随后使用 sudo -u postgres psql 创建数据库与用户,并为 GitLab 数据库启用扩展:
    • 创建:CREATE DATABASE gitlab; CREATE USER gitlab WITH PASSWORD 'strong_password'; GRANT ALL PRIVILEGES ON DATABASE gitlab TO gitlab;
    • 扩展:\c gitlab 后执行 CREATE EXTENSION IF NOT EXISTS pg_trgm; CREATE EXTENSION IF NOT EXISTS btree_gist;
  • Omnibus 内置数据库:默认已集成,无需单独安装;如需外部数据库,在 /etc/gitlab/gitlab.rb 中设置连接参数(如 gitlab_rails['db_host']db_portdb_userdb_passworddb_name),然后执行 sudo gitlab-ctl reconfigure 使配置生效。

常见误区与提示

  • 不要选择 MySQL/MariaDB:自 12.1 起不再支持,继续使用会影响升级与功能完整性。
  • 不要使用不兼容的托管 PostgreSQL:部分托管服务(文档列明)与 GitLab 不兼容,应避免选用。
  • 注意语言环境与索引兼容性:跨发行版迁移或升级时,glibc 语言环境变化可能导致索引损坏,需提前评估与校验。

0