Gitea 서버 백업 및 복구
이 어려운 시기에 어떤 일이든 일어날 수 있습니다.
Page content
데이터베이스, 파일 저장소, 기타 Gitea 관련 파일 등을 백업해야 합니다. 바로 시작합니다.
테스트 Gitea 게시물에서는 Gitea 서버를 설치했습니다.
언제
이제 정말 나쁜 일들이 발생할 수 있는 경우를 대비해서, 백업 및 복구 절차를 연습해야 합니다.
안전은 항상 최선입니다.
어디서
Gitea 서버 데이터는 3가지 구성 요소로 이루어져 있습니다.
- 코드
- 파일 저장소
- 데이터베이스
테스트 환경에서는 이 모든 항목이 약 700MB 이상 차지합니다:
그들이 권장하는 바와 같이, 모든 서비스를 중지하고, 모든 항목을 하나의 트랜잭션으로 백업해야 합니다.
복구 역시, 동일한 트랜잭션으로 수행해야 합니다.
어떻게 - 백업
cd ~/gitea-srv-local
# 데이터베이스 백업
sudo docker exec -t gitea-srv-local_db_1 bash -c 'pg_dump gitea -U gitea --file=/var/lib/postgresql/backups/gitea-db-$(date +%Y-%m-%d).sql'
# Gitea 서버 중지
sudo docker-compose down
# 백업 폴더 확인
sudo ls postgres-backups
# 백업 폴더 생성
mkdir gitea-backups
# Gitea 폴더 백업
sudo tar -zcvf gitea-backups/gitea-gitea-$(date +%Y-%m-%d).tgz gitea/gitea
# 저장소 폴더 백업
sudo tar -zcvf gitea-backups/gitea-git-$(date +%Y-%m-%d).tgz gitea/git
# 다시 실행
sudo docker-compose up -d
마지막 단계는 다른 서버에 로그인하여 백업 폴더를 복사하거나, 더 복잡한 파일 조작을 수행하는 것입니다.
scp -r uname@gitea-srv-ip-addr:/home/uname/gitea-srv-local/gitea-backups ~/gitea-backups
scp -r uname@gitea-srv-ip-addr:/home/uname/gitea-srv-local/postgres-backups ~/postgres-backups
어떻게 - 복구
실제로는 이보다 더 많은 작업이 필요합니다, 특히 권한과 훅(hook) 관련 작업이 필요하지만, 기본 아이디어는 같습니다.
하지만! 원본 문서를 확인하세요: https://docs.gitea.com/administration/backup-and-restore
# 먼저 설치
# 이후 서버 중지
sudo docker-compose down
# 파일 복구
tar -zxvf gitea-git-___.tgz gitea/git
tar -zxvf gitea-gitea-___.tgz gitea/gitea
# 다시 실행
sudo docker-compose up -d
# 여기서 psql 또는 pg_restore 관련 작업 수행
sudo docker exec -t gitea-srv-local_db_1 bash -c 'psql gitea -U gitea --file=/var/lib/postgresql/backups/gitea-db-$(date +%Y-%m-%d).sql'
그 후 UI로 이동하여 확인합니다.