[分享] 关于极狐GitLab 使用外置数据库升级时的注意事项

运行极狐GitLab 实例且使用外置数据库有优势也存在劣势。独立部署的数据库,可以在版本选择时不受 GitLab 实例的限制,使用较新的版本或者某个特定的版本或者已经存在的某个版本的数据库。

对于数据库版本的选择,要遵循以下原则:
  • 版本尽量 >= GitLab 内置的数据库版本 (推荐主版本保持一致)
  • 需要支持 hash 分区表
  • 需要支持pg_trgm, btree_gist扩展
  • 建议版本 12.x - 13.x

对于符合以上原则的数据库版本在升级时可以免去很多额外的操作。

  • 如果外置数据库的版本和内置数据库主要版本一致,GitLab 实例可以自动管理数据库的备份和还原,免去手动备份的麻烦

  • 如果外置数据库的主要版本超过 GitLab 实例内置的两个版本,那么在升级的过程中就需要手动备份外置数据库,且运行GitLab备份时跳过数据库的备份

  • 如果想免除上一说明种的手动备份,就需要在 GitLab 实例运行的服务器上面安装和外置数据库相同的客户端程序,并且映射客户端携带的命令到/opt/gitlab/bin/目录下,以便 GitLab 实例可以调用新的客户端备份命令

  • 当外置数据库的版本 >= 12时,在整个GitLab升级过程中只需要做好数据库的备份,然后仅升级 GitLab 软件即可,数据库侧则不需要做任何其他操作。

  • 如果外置数据库版本低于 GitLab 携带的内置数据库版本,在升级过程中可能会涉及到外置数据库的升级操作,升级操作需要人为手动操作,这种情况下在便捷性上较直接使用内置数据库会差一些