데이터베이스 관리에서 백업은 아주 중요한 작업이다. PostgreSQL에서 데이터베이스를 백업하고 복원하기 위해 pg_dump와 pg_restore 두가지 주요 도구를 제공한다.
pg_dump(데이터베이스 백업)
pg_dump는 PostgerSQL 데이터베이스를 백업하는 데 사용되는 도구다. 백업된 데이터는 SQL 스크립트나 맞춤형 포맷으로 저장될 수 있으며, 나중에 이 파일을 사용하여 데이터베이스를 복원할 수 있다.
pg_dump -h your-hostname -U your-username -d your-database -F c -b -v -f "/path/to/your/backup/file.backup"
옵션 설명:
- -h: 백업하려는 데이터베이스가 위치한 서버의 호스트 이름 또는 ip 주소를 지정한다.
- -U: 백업 작업을 수행할 PostgreSQL 사용자 이름이다.
- -d: 백업할 데이터베이스 이름이다.
- -F c: 백업 파일 형식을 맞춤형 포맷(custom format)으로 지정한다. 이 형식은 압축된 상태로 저장되며, pg_restore로 복원할 수 있다.
- -b: 대용량 개체(large objects)를 백업에 포함한다. 이 옵션은 BLOB 데이터가 있는 경우 유용하다.
- -v: 백업 과정을 자세하게 출력한다. 문제 발생 시 디버깅에 도움된다.
- -f: 백업 파일을 저장할 경로와 파일 이름을 지정한다.
pg_restore(데이터베이스 복원)
백업된 데이터를 복원하려면 pg_restore 명령어를 사용한다. pg_restore는 맞춤형 포맷이나 tar 포맷으로 생성된 백업 파일을 복원할 수 있으며, 이를 통해 손쉽게 데이터베이스를 원래 상태로 되돌릴 수 있다.
pg_restore -h your-hostname -U your-username -d your-target-database --verbose "/path/to/your/backup/file.backup"
옵션 설명:
- -h: 복원할 데이터베이스가 위치한 서버의 호스트 이름 또는 IP 주소를 지정한다.
- -U: 복원 작업을 수행할 PostgreSQL 사용자 이름이다.
- -d: 데이터를 복원할 대상 데이터베이스 이름이다.
- --verbose: 복원 과정을 자세하게 출력하여 진행 상황을 모니터링할 수 있다.
- 경로: 복원할 백업 파일의 경로와 이름을 지정한다.