InfoGrab Docs

GitLab 데이터베이스를 다른 PostgreSQL 인스턴스로 이동

요약

경우에 따라 데이터베이스를 한 PostgreSQL 인스턴스에서 다른 인스턴스로 이동해야 합니다. 한 인스턴스에서 다른 인스턴스로 데이터베이스를 이동하려면: 소스 및 대상 PostgreSQL 엔드포인트 정보를 수집합니다:

경우에 따라 데이터베이스를 한 PostgreSQL 인스턴스에서 다른 인스턴스로 이동해야 합니다. 예를 들어 AWS Aurora를 사용 중이고 데이터베이스 로드 밸런싱을 활성화하려는 경우 데이터베이스를 RDS for PostgreSQL로 이동해야 합니다.

한 인스턴스에서 다른 인스턴스로 데이터베이스를 이동하려면:

  1. 소스 및 대상 PostgreSQL 엔드포인트 정보를 수집합니다:

    SRC_PGHOST=<source postgresql host>
    SRC_PGUSER=<source postgresql user>
    
    DST_PGHOST=<destination postgresql host>
    DST_PGUSER=<destination postgresql user>
    
  2. GitLab을 중지합니다:

    sudo gitlab-ctl stop
    
  3. 소스에서 데이터베이스를 덤프합니다:

    /opt/gitlab/embedded/bin/pg_dump -h $SRC_PGHOST -U $SRC_PGUSER -c -C -f gitlabhq_production.sql gitlabhq_production
    /opt/gitlab/embedded/bin/pg_dump -h $SRC_PGHOST -U $SRC_PGUSER -c -C -f praefect_production.sql praefect_production
    

    [!note] 드문 경우에 pg_dump 및 복원을 수행한 후 데이터베이스 성능 문제가 발생할 수 있습니다. pg_dump에는 최적화 프로그램이 쿼리 계획 결정을 내리는 데 사용하는 통계가 포함되어 있지 않기 때문에 발생할 수 있습니다. 복원 후 성능이 저하되면 문제가 되는 쿼리를 찾아 쿼리에서 사용하는 테이블에서 ANALYZE를 실행하여 문제를 해결합니다.

  4. 대상에 데이터베이스를 복원합니다(동일한 이름을 가진 기존 데이터베이스를 덮어씁니다):

    /opt/gitlab/embedded/bin/psql -h $DST_PGHOST -U $DST_PGUSER -f praefect_production.sql postgres
    /opt/gitlab/embedded/bin/psql -h $DST_PGHOST -U $DST_PGUSER -f gitlabhq_production.sql postgres
    
  5. 선택 사항. PgBouncer를 사용하지 않는 데이터베이스에서 PgBouncer를 사용하는 데이터베이스로 마이그레이션하는 경우 애플리케이션 데이터베이스(일반적으로 gitlabhq_production)에 pg_shadow_lookup 함수를 수동으로 추가해야 합니다.

  6. /etc/gitlab/gitlab.rb 파일에서 GitLab 애플리케이션 서버를 대상 PostgreSQL 인스턴스에 대한 적절한 연결 세부 정보로 구성합니다:

    gitlab_rails['db_host'] = '<destination postgresql host>'
    

    GitLab 다중 노드 설정에 대한 자세한 내용은 참조 아키텍처를 참조하세요.

  7. 변경 사항을 적용하기 위해 다시 구성합니다:

    sudo gitlab-ctl reconfigure
    
  8. GitLab을 다시 시작합니다:

    sudo gitlab-ctl start
    

GitLab 데이터베이스를 다른 PostgreSQL 인스턴스로 이동

Tier: Free, Premium, Ultimate
Offering: GitLab Self-Managed
원문 보기
요약

경우에 따라 데이터베이스를 한 PostgreSQL 인스턴스에서 다른 인스턴스로 이동해야 합니다. 한 인스턴스에서 다른 인스턴스로 데이터베이스를 이동하려면: 소스 및 대상 PostgreSQL 엔드포인트 정보를 수집합니다:

경우에 따라 데이터베이스를 한 PostgreSQL 인스턴스에서 다른 인스턴스로 이동해야 합니다. 예를 들어 AWS Aurora를 사용 중이고 데이터베이스 로드 밸런싱을 활성화하려는 경우 데이터베이스를 RDS for PostgreSQL로 이동해야 합니다.

한 인스턴스에서 다른 인스턴스로 데이터베이스를 이동하려면:

  1. 소스 및 대상 PostgreSQL 엔드포인트 정보를 수집합니다:

    SRC_PGHOST=<source postgresql host>
    SRC_PGUSER=<source postgresql user>
    
    DST_PGHOST=<destination postgresql host>
    DST_PGUSER=<destination postgresql user>
    
  2. GitLab을 중지합니다:

    sudo gitlab-ctl stop
    
  3. 소스에서 데이터베이스를 덤프합니다:

    /opt/gitlab/embedded/bin/pg_dump -h $SRC_PGHOST -U $SRC_PGUSER -c -C -f gitlabhq_production.sql gitlabhq_production
    /opt/gitlab/embedded/bin/pg_dump -h $SRC_PGHOST -U $SRC_PGUSER -c -C -f praefect_production.sql praefect_production
    

    [!note] 드문 경우에 pg_dump 및 복원을 수행한 후 데이터베이스 성능 문제가 발생할 수 있습니다. pg_dump에는 최적화 프로그램이 쿼리 계획 결정을 내리는 데 사용하는 통계가 포함되어 있지 않기 때문에 발생할 수 있습니다. 복원 후 성능이 저하되면 문제가 되는 쿼리를 찾아 쿼리에서 사용하는 테이블에서 ANALYZE를 실행하여 문제를 해결합니다.

  4. 대상에 데이터베이스를 복원합니다(동일한 이름을 가진 기존 데이터베이스를 덮어씁니다):

    /opt/gitlab/embedded/bin/psql -h $DST_PGHOST -U $DST_PGUSER -f praefect_production.sql postgres
    /opt/gitlab/embedded/bin/psql -h $DST_PGHOST -U $DST_PGUSER -f gitlabhq_production.sql postgres
    
  5. 선택 사항. PgBouncer를 사용하지 않는 데이터베이스에서 PgBouncer를 사용하는 데이터베이스로 마이그레이션하는 경우 애플리케이션 데이터베이스(일반적으로 gitlabhq_production)에 pg_shadow_lookup 함수를 수동으로 추가해야 합니다.

  6. /etc/gitlab/gitlab.rb 파일에서 GitLab 애플리케이션 서버를 대상 PostgreSQL 인스턴스에 대한 적절한 연결 세부 정보로 구성합니다:

    gitlab_rails['db_host'] = '<destination postgresql host>'
    

    GitLab 다중 노드 설정에 대한 자세한 내용은 참조 아키텍처를 참조하세요.

  7. 변경 사항을 적용하기 위해 다시 구성합니다:

    sudo gitlab-ctl reconfigure
    
  8. GitLab을 다시 시작합니다:

    sudo gitlab-ctl start