ubuntu gitlab数据库管理方法
导读: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_addresses、max_connections、shared_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
- 将备份文件放入 /var/opt/gitlab/backups/ 并修正属主:
- 重要提示:
- 备份归档默认不包含 /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
