2012-12-18 1 views
0

PostgreSQL 데이터베이스의 레코드 변경 내용을 추적하고 싶습니다. 필자는 이전 버전의 레코드가 테이블 (또는 별도의 테이블)에 보관되도록 버전 필드와 업데이트 규칙 또는 트리거를 사용하는 것을 고려했습니다. 이렇게하면 간단한 select 문을 사용하여 레코드의 버전 기록을 볼 수있는 이점이 있습니다. 그러나이 기능은 좀처럼 사용되지 않을 것으로 생각됩니다.PostgreSQL 레코드 버전 제어에 WAL 파일을 사용 하시겠습니까?

WAL 파일을 사용하여 레코드의 "버전 기록"을 만들 수있는 요구 사항을 어떻게 충족시킬 수 있습니까? PostgreSQL.org의 WAL 및 포인트 인 타임 (Point-in-Time) 복구 문서를 읽으면 전체 데이터베이스의 상태를 특정 시점으로 롤백 할 수있는 방법을 이해할 수 있었지만 특정 레코드의 업데이트 실수를 처리하는 방법은 이해할 수 없었습니다.

+0

재미있는 동안 WAL 방식에 대한 제 의견은 지나치게 복잡해 보입니다. 다른 사람들과 마찬가지로 트리거를 사용하여 변경 사항을 캡처하는 것이 좋습니다. 그것은 간단하고 꿈 나라의 아이디어가 아닙니다. – Kuberchaun

+0

설명 : 데이터베이스를 임의의 시점으로 롤백 할 수 없습니다. 알려진 일관된 기준점에서 미래의 단일 지점으로 만 이동할 수 있습니다. 최종 결과는 데이터베이스가 롤백 된 것처럼 보이지만 설명에 따르면 단순히 특정 시점으로 되감 으라고 말할 수는 있지만 그럴 수는 없습니다. –

답변

1

아니요, 현재로서는이 작업을 수행 할 수 없습니다. postgresql-hackers 메일 링리스트 (dev리스트)에서 WAL을 재 작업하고 PostgreSQL 9.3에서 (아마도) PostgreSQL 9.3에서 논리적 복제를 허용하는 인터페이스를 구축하기위한 많은 노력이 진행 중입니다.

이것은 기본적으로 사용자가 수행하려고 시도하는 것으로 보이며 해당 목록의 토론을 토대로 볼 때 매우 사소한 작업은 아닙니다.

+0

감사합니다. 그것이 내가 알아야 할 것이 었습니다. – Gregory

관련 문제