首页主机资讯ubuntu gitlab数据库管理方法

ubuntu gitlab数据库管理方法

时间2025-11-19 10:13:04发布访客分类主机资讯浏览744
导读:Ubuntu 上 GitLab 数据库管理方法 一 数据库选型与总体原则 当前稳定版本的 GitLab 仅支持 PostgreSQL,不再支持 MySQL/MariaDB。新部署请直接规划 PostgreSQL;存量使用 MySQL 的实...

Ubuntu 上 GitLab 数据库管理方法

一 数据库选型与总体原则

  • 当前稳定版本的 GitLab 仅支持 PostgreSQL,不再支持 MySQL/MariaDB。新部署请直接规划 PostgreSQL;存量使用 MySQL 的实例应规划迁移至 PostgreSQL。若搜索到早期教程提到 MySQL,多为历史版本内容,不适用于当前版本。对于自建或外部数据库,建议使用受支持的 PostgreSQL 版本并做好高可用与备份策略。

二 安装与初始化 PostgreSQL

  • 安装与启用服务(Ubuntu 20.04/22.04 示例,包名可能因版本略有差异):
    • sudo apt update
    • sudo apt install -y postgresql postgresql-contrib
    • sudo systemctl enable --now postgresql
  • 创建数据库与用户(以 gitlab 为例):
    • sudo -u postgres psql
    • CREATE DATABASE gitlabhq_production OWNER gitlab ENCODING ‘UTF8’ LC_COLLATE=‘en_US.UTF-8’ LC_CTYPE=‘en_US.UTF-8’;
    • CREATE USER gitlab WITH PASSWORD ‘StrongPassword!’;
    • GRANT ALL PRIVILEGES ON DATABASE gitlabhq_production TO gitlab;
    • \q
  • 调整连接与安全策略(示例):
    • 编辑 /etc/postgresql/*/main/pg_hba.conf,为 GitLab 网段设置 md5 认证;
    • 编辑 /etc/postgresql/*/main/postgresql.conf,按需调整 listen_addressesmax_connectionsshared_buffers 等参数,然后重启数据库。以上为通用 PostgreSQL 管理操作,适配 GitLab 使用场景。

三 GitLab 连接 PostgreSQL 的配置与生效

  • 编辑 /etc/gitlab/gitlab.rb,设置数据库连接(示例为本地 Unix 域套接字):
    • gitlab_rails[‘db_adapter’] = ‘postgresql’
    • gitlab_rails[‘db_encoding’] = ‘unicode’
    • gitlab_rails[‘db_database’] = ‘gitlabhq_production’
    • gitlab_rails[‘db_username’] = ‘gitlab’
    • gitlab_rails[‘db_password’] = ‘StrongPassword!’
    • gitlab_rails[‘db_host’] = ‘/var/run/postgresql’ # 本地套接字
    • gitlab_rails[‘db_port’] = 5432
  • 使配置生效并重启相关服务:
    • sudo gitlab-ctl reconfigure
    • sudo gitlab-ctl restart
  • 验证:
    • sudo gitlab-ctl status
    • 查看日志:sudo tail -f /var/log/gitlab/gitlab-rails/production.log 无数据库连接报错即为正常。

四 备份与恢复

  • 备份(Omnibus 包默认备份到 /var/opt/gitlab/backups/):
    • 手动:sudo gitlab-rake gitlab:backup:create
    • 定时:例如每日 01:00 备份
      • 0 1 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
  • 恢复(示例):
    • 将备份文件放入 /var/opt/gitlab/backups/ 并修正属主:
      • sudo chown git:git /var/opt/gitlab/backups/1690391227_2023_07_27_12.3.4-ee_gitlab_backup.tar
    • 停止应用写入进程:
      • sudo gitlab-ctl stop unicorn
      • sudo gitlab-ctl stop sidekiq
    • 执行恢复(按时间戳指定备份,不含 .tar 后缀):
      • sudo gitlab-rake gitlab:backup:restore BACKUP=1690391227_2023_07_27_12.3.4-ee
    • 重启服务并验证:
      • sudo gitlab-ctl restart
  • 重要提示:
    • 备份归档默认不包含 /etc/gitlab/gitlab.rb/etc/gitlab/gitlab-secrets.json,恢复前务必单独备份与恢复这两个文件,否则可能导致配置与加密数据不一致。

五 日常运维与性能优化

  • 连接与参数:
    • 合理设置数据库连接池与工作进程数,避免连接风暴;PostgreSQL 侧根据内存与并发调优 shared_buffers、work_mem、maintenance_work_mem、max_connections 等参数。
  • 存储与高可用:
    • 使用 SSD 降低 I/O 瓶颈;对象存储(如 S3/MinIO)承载附件与备份,减轻本地磁盘压力;必要时部署 PostgreSQL 流复制 或外部 HA 方案,提升数据库可用性。
  • 监控与维护:
    • 启用 Prometheus + Grafana 监控数据库与实例资源;定期执行 VACUUM/REINDEX 等维护;按计划进行备份恢复演练,验证可用性与完整性。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu gitlab数据库管理方法
本文地址: https://pptw.com/jishu/750920.html
ubuntu中gitlab API使用教程 ubuntu中gitlab邮件服务配置

游客 回复需填写必要信息