스테이징 환경으로 데이터베이스 덤프 가져오기
GitLab v19.1테스트 목적으로 프로덕션 환경의 데이터베이스를 스테이징 환경으로 가져오는 것이 유용할 때가 있습니다. 작업이 완료되면 스테이징 VM을 삭제하세요. 스테이징 VM에서, 대용량 데이터베이스 가져오기 속도를 높이기 위해 /etc/gitlab/gitlab.rb에 다음 줄을 추가합니다.
테스트 목적으로 프로덕션 환경의 데이터베이스를 스테이징 환경으로 가져오는 것이 유용할 때가 있습니다.
아래 절차는 프로덕션 환경과 스테이징 VM 모두에 SSH 및 sudo 접근 권한이 있다고 가정합니다.
작업이 완료되면 스테이징 VM을 삭제하세요. 데이터 유출을 방지하는 것이 중요합니다.
스테이징 VM에서, 대용량 데이터베이스 가져오기 속도를 높이기 위해 /etc/gitlab/gitlab.rb에 다음 줄을 추가합니다.
# On STAGING
echo "postgresql['checkpoint_segments'] = 64" | sudo tee -a /etc/gitlab/gitlab.rb
sudo touch /etc/gitlab/skip-auto-reconfigure
sudo gitlab-ctl reconfigure
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
다음으로, 프로덕션 환경에서 SSH를 통해 압축된 SQL 덤프를 로컬 머신으로 스트리밍하고,
이 스트림을 스테이징 VM의 psql 클라이언트로 리디렉션합니다.
# On LOCAL MACHINE
ssh -C gitlab.example.com sudo -u gitlab-psql /opt/gitlab/embedded/bin/pg_dump -Cc gitlabhq_production |\
ssh -C staging-vm sudo -u gitlab-psql /opt/gitlab/embedded/bin/psql -d template1
디렉터리 구조 재생성#
스테이징 서버에서 일부 디렉터리 구조를 재생성해야 하는 경우 이 절차를 사용할 수 있습니다.
먼저, 프로덕션 서버에서 재생성할 디렉터리 목록을 생성합니다.
# On PRODUCTION
(umask 077; sudo find /var/opt/gitlab/git-data/repositories -maxdepth 1 -type d -print0 > directories.txt)
directories.txt를 스테이징 서버로 복사하고 해당 디렉터리를 생성합니다.
# On STAGING
sudo -u git xargs -0 mkdir -p < directories.txt