9.1 버전에 새로운 실행 명령어 하나가 생겼습니다.
pg_basebackup 이라는 놈인데,
아이디어가 참합니다.
9.0 버전에서 나온 리플리케이션 기능을 이용한 데이터베이스 백업을 합니다.
pg_dump & pg_restore 방식과 다르게 파일 시스템 그대로 백업본을 만드는 작업입니다.
내부적으로 벌어지는 작업은
- pg_start_backup
- 데이터 클러스터 파일 복사
- pg_stop_backup
이렇게 합니다. 번거로운 일을 덜어주는 것은 파일을 복사하는 동안 발생한 트랜잭션 로그들도 그대로 복사되어
restore 작업을 할 때, 부가적으로 생긴 트랜잭션 로그 처리를 따로 하지 않아도 된다는 것입니다.
사용법은 명령어 도움말을 보는 것이 나을 것 같고,
명령어를 실행하는 위치는 백업을 받으려고 하는 호스트입니다.
데이터베이스 서버 측에 설정해야하는 항목은
그 백업을 받으려고 하는 호스트(클라이언트가 되겠죠)가 replication 기능을 사용할 수 있도록 설정해주어야 합니다.
postgresql.conf 에서는
wal_level = hot_standby
archive_mode = on
archive_command = '적당한 명령어'
max_wal_senders = 1
정도 설정을 변경을 해야할터이고,
pg_hba.conf 에서는
replication 허용 설정을 해주면 끝납니다.
현재로는 전송 bitrate 조절하는 기능까지는 내장하고 있지 않아서,
데이터베이스 서버가 한 참 바쁜 와중에 이 명령어가 실행될 경우 이 명령 때문에 서비스가 얼마나 버벅거릴지는 저도 모르겠습니다. |