데이터베이스를 형상관리 도구 같이 여러 분기를 하고, 필요하다면, 특정 분기로 돌아갈 수 있을까?
이것에 대한 답이 PostgreSQL에서는 타임라인이라는 개념으로 구현하고 있습니다.
실무 운영에서 얼마나 많이 사용될 지는 모르겠지만,
개발입장에서는 아주 유용하게 사용될 수 있는 방법입니다.
PostgreSQL 설명서에 언급한 타임라인에 대한 제 멋대로의 설명을 여기서 하려고 합니다.
타임라인 기능을 사용하려면, 먼저 아카이브 모드를 이용한 베이스 백업본이 필요합니다.
베이스 백업본을 만드는 방법은 여기서는 생략합니다.
다음 이 베이스 백업본을 기반으로 recovery.conf 파일을 만들고, 복구 모드로 서버를 실행하면,
무조건 새로운 타임라인이 만들어지면서 archive_command 에서 지정한 아카이빙 디렉토리에는
타임라인으로 구분되는 여러 트랜잭션 로그 파일들이 보관됩니다.
이렇게 해서 여러 타임라인이 있을 때, recovery.conf 파일에서
복구를 할 타임라인은 몇 번이다.
이런식으로 지정하면, 마치 형상관리 도구처럼
어떤 특정 시점의 상태로 되돌아 가서 데이터베이스 서버를 실행할 수 있습니다.
그림을 그리는 재능이 있다면, 그림으로 설명하면 좀 더 참할 터인데......
오늘 하루 참 재미나게 공부했던 개념이기에 기록에 남겨둡니다. |