2009-09-17 5 views
1

나는 포스트 그레스 테이블에 약간의 변화를 주었고 그것을 이전 상태로 되돌리고 싶다. 데이터베이스 백업이 없습니다. 그것을 할 수있는 방법이 있습니까? 에서와 마찬가지로 포스트 그레스는 자동 스냅 샷을 찍어 어딘가에 저장합니까 아니면 원본 데이터가 영원히 손실됩니까?포스트그레스가 되돌아 오기

답변

6

기본적으로 PostgreSQL은 모든 이전 데이터를 저장하지 않습니다. 물론 많은 사람들이 놀라실 것입니다. 그러나, 그것은 당신이 원하는 것을 거의 정확하게 수행하는 Point-in-time Recovery 메커니즘을 내장하고 있습니다. 데이터베이스 변경 사항을 나타내는 "선행 로그 파일"의 아카이브를 보관해야하며 주기적으로 기본 백업을 수행 할 수 있습니다. 복구하려는 경우 특정 시간 또는 특정 트랜잭션 ID로 복구 할 수 있습니다.

+0

분명히 밝혀야합니다. 나중에 복원하려는 데이터를 삭제하기 전에 PITR을 켠 경우에만 작동합니다. 기본적으로이 작업을 위해 보관해야하는 WAL 파일은 영구적으로 저장되지 않으므로 먼저 설정해야합니다. –

4

백업이없고 데이터에 대한 작업을 수행 한 경우 수행 할 수있는 작업이 많지 않습니다. 데이터베이스에 새 데이터가 포함되어 있고 이전 버전이 교체/삭제됨

데이터베이스 엔진의 목표는 사용자가 제거한 데이터가 아닌 저장된 사용자 데이터를 유지하는 것입니다.

다음 번에 : 무언가를 시도 할 필요가 있다면 트랜잭션을 사용하고, 당신이 한 일을 확신 할 때까지 커밋하지 마십시오. 커밋 또는 롤백하기 전에 너무 오래 기다리지 않도록 조심하십시오 왜냐하면 다른 사람들이 쿼리를하지 못하게 막을 수 있기 때문입니다.

+0

고마워요. 이것은 생산 테이블이 아닙니다. 내 로컬 상자에 있습니다. 포스트 그레스가 매시간 또는 하루에 자동으로 스냅 샷을 찍을 지 궁금합니다. – Abhi

관련 문제