gitlab备份postgresql

情况 1:只备份 GitLab 主库

GitLab主库叫:

gitlabhq_production

应该用 pg_dump,不是 pg_dumpall

pg_dump -h 127.0.0.1 -p 15432 -U gitlab \
  -d gitlabhq_production \
  -v -f /tmp/gitlab.sql

情况 2:真的要备份整个 PostgreSQL 实例

那就:

pg_dumpall -h 127.0.0.1 -p 15432 -U gitlab -v -f /tmp/all.sql

注意:不能写 -d


专业点备份恢复

不要用 plain SQL 备份。GitLab 推荐用 custom format:

pg_dump -h 127.0.0.1 -p 15432 -U gitlab \
  -d gitlabhq_production \
  -Fc -v -f /tmp/gitlab.dump

恢复时:

pg_restore -h 127.0.0.1 -p 15432 -U gitlab \
  -d gitlabhq_production \
  -v /tmp/gitlab.dump

优点:

  • 支持并行恢复
  • 支持只恢复部分对象
  • 不会因为单条 SQL 报错直接终止