Ubuntu GitLab的数据库配置和管理
导读:Ubuntu 上 GitLab 的数据库配置与管理 一 概览与选型 GitLab 在 Omnibus 包中默认集成并管理 PostgreSQL,这是官方推荐与最稳妥的方案,升级、备份与恢复流程最完善。若团队已有成熟的 MySQL/Mari...
Ubuntu 上 GitLab 的数据库配置与管理
一 概览与选型
- GitLab 在 Omnibus 包中默认集成并管理 PostgreSQL,这是官方推荐与最稳妥的方案,升级、备份与恢复流程最完善。若团队已有成熟的 MySQL/MariaDB 运维体系,也可将 GitLab 配置为使用外部 MySQL,但需注意版本兼容与功能限制,生产环境务必充分验证。涉及生产变更前请做好完整备份与回滚预案。
二 使用内置 PostgreSQL(推荐)
- 安装与初始化
- 安装 GitLab(CE 示例):
- curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
- sudo apt-get install gitlab-ce
- 配置外部访问地址(/etc/gitlab/gitlab.rb):external_url ‘http://your_domain_or_ip’
- 使配置生效:sudo gitlab-ctl reconfigure
- 安装 GitLab(CE 示例):
- 连接信息与内置账号
- 服务与连接:本地监听 localhost:5432,系统用户 gitlab-psql,数据库 gitlabhq_production
- 本地管理员连接示例:sudo -u gitlab-psql /opt/gitlab/embedded/bin/psql -d gitlabhq_production
- 备份与恢复
- 备份:sudo gitlab-backup create(默认生成到 /var/opt/gitlab/backups)
- 恢复:先确保版本一致,将备份放置到上述目录后执行 sudo gitlab-backup restore BACKUP=timestamp
- 性能与维护要点
- 存储优先使用 SSD;定期清理无用数据、日志并做恢复演练
- 监控与告警建议启用 Prometheus + Grafana,并配置周期性备份策略。
三 使用外部 MySQL(可选)
- 前置条件
- 安装并运行 MySQL(建议 5.7+ 或 8.0+),开启 InnoDB、确保字符集支持 utf8mb4
- 创建数据库与用户(示例):
- CREATE DATABASE gitlabhq_production CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- CREATE USER ‘gitlab’@‘localhost’ IDENTIFIED BY ‘StrongPassword!’;
- GRANT ALL PRIVILEGES ON gitlabhq_production.* TO ‘gitlab’@‘localhost’;
- FLUSH PRIVILEGES;
- 配置 GitLab 连接
- 编辑 /etc/gitlab/gitlab.rb(示例为本地 MySQL):
- gitlab_rails[‘db_adapter’] = ‘mysql2’
- gitlab_rails[‘db_encoding’] = ‘utf8mb4’
- gitlab_rails[‘db_collation’] = ‘utf8mb4_unicode_ci’
- gitlab_rails[‘db_database’] = ‘gitlabhq_production’
- gitlab_rails[‘db_username’] = ‘gitlab’
- gitlab_rails[‘db_password’] = ‘StrongPassword!’
- gitlab_rails[‘db_host’] = ‘localhost’
- gitlab_rails[‘db_port’] = 3306
- 使配置生效:sudo gitlab-ctl reconfigure
- 编辑 /etc/gitlab/gitlab.rb(示例为本地 MySQL):
- 验证与常见问题
- 查看应用日志:sudo less /var/log/gitlab/gitlab-rails/production.log
- 若连接失败:核对数据库服务状态、账户权限、密码与字符集配置;确保已执行 reconfigure。
四 日常运维与优化
- 备份与恢复
- 内置 PostgreSQL:使用 gitlab-backup create/restore;定期将备份文件拷贝到异地存储并做恢复演练
- 外部 MySQL:使用 mysqldump 或企业备份工具,确保具备时间点恢复能力
- 性能与容量
- 使用 SSD、合理设置连接池与缓存、定期清理无用数据/日志
- 监控与日志:启用 Prometheus/Grafana,对慢查询、连接数、磁盘 IO 建立告警
- 高可用与扩展
- 数据库层建议采用主从复制或集群方案,结合 HAProxy/Keepalived 实现故障切换
- 对于仓库数据,结合 Gitaly 集群与对象存储(如 S3/MinIO)提升可用性与扩展性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu GitLab的数据库配置和管理
本文地址: https://pptw.com/jishu/750935.html
