PostgreSQL 확장 관리
GitLab v19.1Offering: GitLab Self-Managed
GitLab은 모든 데이터베이스에서 특정 PostgreSQL 확장이 필요합니다. 확장을 설치하려면 PostgreSQL에 슈퍼유저 권한이 필요합니다. 슈퍼유저로 GitLab PostgreSQL 데이터베이스에 연결합니다. CREATE EXTENSION을 사용하여 확장(이 예에서는 btree_gist)을 설치합니다:
GitLab은 모든 데이터베이스에서 특정 PostgreSQL 확장이 필요합니다. 필요한 확장 목록과 최소 GitLab 버전은 PostgreSQL 요구 사항을 참조하세요.
확장을 설치하려면 PostgreSQL에 슈퍼유저 권한이 필요합니다. GitLab 데이터베이스 사용자는 일반적으로 슈퍼유저가 아니므로, GitLab을 업그레이드하기 전에 확장을 수동으로 설치해야 합니다.
필수 확장 설치#
-
슈퍼유저로 GitLab PostgreSQL 데이터베이스에 연결합니다. 예를 들어:
sudo gitlab-psql -d gitlabhq_production -
CREATE EXTENSION을 사용하여 확장(이 예에서는btree_gist)을 설치합니다:CREATE EXTENSION IF NOT EXISTS btree_gist -
설치된 확장을 확인합니다:
gitlabhq_production=# \dx
일부 시스템에서는 특정 확장을 사용할 수 있도록 추가 패키지(예: postgresql-contrib)를 설치해야 할 수도 있습니다.
pg_stat_statements 활성화#
pg_stat_statements는 느린 데이터베이스 쿼리 문제 해결에 권장됩니다.
활성화하려면 슈퍼유저 권한과 PostgreSQL 재시작이 필요합니다.
-
postgresql.conf의shared_preload_libraries에pg_stat_statements를 추가합니다. Linux 패키지 설치의 경우,/etc/gitlab/gitlab.rb에 다음을 추가합니다:postgresql['shared_preload_libraries'] = 'pg_stat_statements' -
PostgreSQL을 재시작합니다.
-
슈퍼유저로 확장을 생성합니다:
CREATE EXTENSION IF NOT EXISTS pg_stat_statements
자세한 내용은 선택적 쿼리 통계 데이터 활성화를 참조하세요.
문제 해결#
PostgreSQL 확장 작업 시 다음과 같은 문제가 발생할 수 있습니다.
확장이 없어서 마이그레이션 실패#
확장이 없어서 데이터베이스 마이그레이션이 실패하는 경우, 슈퍼유저로 수동 설치한 후 마이그레이션을 다시 실행합니다:
sudo gitlab-rake db:migrate