IT/Docker
Docker postgreSQL 자동 백업 및 수동 복원 방법
bepuri
2023. 12. 27. 09:48
728x90
pgbackups 통해서 백업
pgbackups: container_name: backup image: prodrigestivill/postgres-backup-local restart: always volumes: - ./backup:/backups links: - db:db depends_on: - db environment: - POSTGRES_EXTRA_OPTS=-Z9 --schema=public --blobs - SCHEDULE=@every 0h30m00s - BACKUP_KEEP_DAYS=7 - BACKUP_KEEP_WEEKS=4 - BACKUP_KEEP_MONTHS=6 - HEALTHCHECK_PORT=81 env_file: - backend/.env
완전 초기화된 상태로 db 컨테이너 새롭게 띄우기
윈도우 기준
컨테이너 내부로 sql gz 파일 복사
docker compose cp backup/last/obible-latest.sql.gz $container_name:/
zcat으로 psql로 입력 보내기
$docker compose exec --tty --interactive db2 //bin//sh -c "zcat /obible-latest.sql.gz | psql --username=obibleuser --dbname=obible -W"
리눅스 기준
- $NAME들은 실제 값으로 변경해서 입력
docker exec --tty --interactive $CONTAINER /bin/sh -c "zcat $BACKUPFILE | psql --username=$USERNAME --dbname=$DBNAME -W"
postgres-backup-local 공식 github 링크
728x90