PostgreSQL 9.6.2 문서 | |||
---|---|---|---|
이전 | 위로 | 장 27. 복구 환경설정 | 다음 |
이 매개변수는 일관적인 상태가 되자마자 복구가 종료되도록 한다. 온라인 백업에서 복구하는 경우, 백업이 끝난 시점을 가리킨다.
실질적으로, 이는 문자열 매개변수지만 'immediate' 가 쓸 수 있는 유일한 값이다.
이 매개변수는 특정 복구 위치를 이름으로 지정한다.
그 이름은 pg_create_restore_point()
함수에서
지정한 이름이다.
대개 recovery_target_name 값이나,
recovery_target_time, recovery_target_xid
값 가운데 하나를 지정한다.
이 값을 지정하지 않으면, 복구할 WAL 파일의 마지막까지 복구한다.
이 매개변수는 특정 시점을 시간으로 지정한다. 대개 recovery_target_time 값이나, recovery_target_name, recovery_target_xid 값 가운데 하나를 지정한다. 이 값을 지정하지 않으면, 복구할 WAL 파일의 마지막까지 복구한다. 또한 recovery_target_inclusive 값에 영향을 받아서 정확한 중지 위치가 결정되기도 한다.
이 매개변수는 특정 트랜잭션 ID로 지정한다. 지정한 이 트랜잭션 ID까지 복구 작업을 한다. 트랜잭션 ID는 복구 서버의 마지막부터 차례대로 진행되기 때문에, 결과적으로 백업의 트랜잭션 ID와 복구 서버의 트랜잭션 ID가 같지 않을 수 있음을 기억 해야한다. 복구되는 트랜잭션은 지정한 트랜잭션 이전에 커밋된 모든 트랜잭션들이다. (선택적으로 지정한 트랜잭션도 포함될 수 있다.) 대개 recovery_target_xid 값이나, recovery_target_name, recovery_target_time 값 가운데 하나를 지정한다. 이 값을 지정하지 않으며, 복구할 WAL 파일의 마지막 트랜잭션까지 복구한다. 또한 recovery_target_inclusive 값에 영향을 받아서 정확한 중지 위치가 결정되기도 한다.
위에서 지정한 지점을 포함해서 복구 할 것인지, 포함하지 않고 복구 할 것인지를 결정한다. 기본값은 true이다. false로 지정하면, 특정 지점(트랜잭션 ID나, 시간) 전까지만 복구를 하고 복구 작업을 중지한다. 이 값은 recovery_target_time, recovery_target_xid 설정값의 작동에 영향을 준다.
복구할 특정 타임라인 번호를 지정한다. 기본값은 베이스 백업을 만들 때 사용한 그 타임라인 번호와 같다. 이 값으로 latest를 지정하면, 사용할 수 있는 가장 마지막 타임라인을 찾아 그것을 사용한다. 이 설정은 대기 서버를 구축할 때 유용한다. 특정 타임라인 복구 번호를 지정하는 경우는 시점 복구 뒤에 자료가 변경 되었는데, 다시 어느 특정 타임라인으로 재복구 작업을 해야하는 복잡한 상황에서 일반적으로 사용한다. 자세한 이야기는 25.3.5절에서 설명한다.
복구 작업이 끝나고 난 다음 대기 서버가 할 작업을 지정한다. 기본값은 pause이다. 이렇게 지정하면, 대기 서버는 대기한다. promote로 지정하면, 대기 서버가 운영 서버 전환 작업을 이어 진행한다. shutdown으로 지정하면, 서버는 복구 작업을 마치고 중지 된다.
이 설정값으로 pause로 설정 했다면,
복구 작업을 마지막까지 했을 때, 그 위치가 원하는
위치인지 확인 할 수 있는 쿼리를 실행할 수 있는지를 결정한다.
임시 중지 상태라면, pg_xlog_replay_resume()
함수를
이용해서, 복구 작업을 이어서 다시 할 수 있다.(자세한 이야기는
표 9-80를 참조)
복구 작업을 하다가 원하는 마지막 위치에서 멈출 수 없으면,
데이터베이스는 중지된다. 이 경우에는 복구 타켓을 마지막으로
바꾸고, 서버를 재실행 해서 복구 작업을 계속 해야한다.
(이 문단은 개념 정리가 안되고 있음. :()
이 설정값을 shutdown으로 설정하면, 원하는 복구 위치로 복구된 서버 하나를 마련하는데 유용하다. 이 서버는 WAL 레코드들을 여전히 재실행할 수 있는 상태이다. (물론 내부적으로 마지막 체크포인트 위치 다음부터의 WAL 레코드를 필요로 한다.)
이 설정값을 shutdown으로 설정하면, 이 때 기억해야 할 부분은 서버 종료 될 때, recovery.conf 파일의 이름을 바꾸지 않는다는 점이다. 운영 서버로 사용하기 위해서는 임의로 recovery.conf 파일을 삭제해야 할 필요가 있다.
이 설정은 복구 타겟을 지정하지 않으면 적용되지 않는다. 이 설정은 hot_standby 설정값이 비활성 상태라면, pause 설정도 shutdown 작동 방식과 같이 작동한다.