2010-08-17 8 views
2

이있는 대신 오라클의 redologs 같은 데의 시나리오의 종류가 될 수있는 것 Google BigTable paper동일한 데이터의 다른 버전을 데이터베이스에 저장해야하는 상황은 무엇입니까?

alt text

슛, 나는 을 내에서 동일한 데이터의 여러 버전을 저장해야합니다 데이터베이스?

특별히이 예제와 관련하여 내 데이터베이스에 여러 버전의 html 페이지를 저장해야하는 이유는 무엇입니까? 어쨌든 모든 버전이 없기 때문에 백업으로 작동 할 수 없으며 일부만 (예 : 지난 5 개) 만 존재하기 때문에 백업으로 작동 할 수 없습니다.

답변

2

케이스 :

당신은 DAA가 과거에 어떻게 변화했는지 알고 싶어요. 예 : 프로세스를 진행하면서 주문 상태를 추적합니다. 이동했을 때도 고객 주소를 추적하십시오. 실제로 - -

은 비즈니스 요구 사항 일 수있다, 또는 될 수있는 법적 요구 사항. 꽤 자주.

+0

감사합니다. 좋은 예! – Moeb

1

이 예제와 관련하여 왜 여러 버전의 html 페이지를 데이터베이스에 저장해야합니까?

이전 버전으로 되돌리려는 경우.

+0

또한 로그를 사용할 수 있습니다. 또한 모든 버전을 DB에 저장할 수 없습니다. 어쩌면 DB 자체와 나머지 로그에서 생성해야하는 몇 가지 버전이있는 것 같습니다. – Moeb

+0

@Primx : 트랜잭션 로그에서 복원하는 것은 DBA가 지속적으로 수행하고자하는 작업이 아닙니다. 한 번만, 한 달에 한 번 이상은 데이터베이스 기술에 대한 높은 의견을 남기지 않습니다. –

+1

@Primx : 로그는 사용자에게 쓸모가 없습니다. 데이터베이스 양식 로그 파일을 복원 할 수는 없지만 많은 응용 프로그램은 사용자가 이전 버전의 항목 (wiki 생각)을 복원 할 수있는 기능이 필요합니다. –

1

감사/변경 로그의 변경 내용을 추적하는 데 유용합니다 (되돌릴 수는 없지만 누가 언제 어떤 변경 작업을했는지 확인할 수 있음).

1

Oracle은 다시 실행 로그 외에도 이전 데이터 버전의 UNDO 테이블 스페이스를 저장한다는 사실을 알고 계십니까? 이를 다중 버전 동시성 제어라고하며 잠금없는 선택을 허용합니다 (새 데이터가 커밋 될 때까지 기다리지 않고 진행중인 트랜잭션에 의해 변경되는 행의 이전 값을 선택할 수 있음).

3

BigTable 및 이와 유사한 비 관계형 상점에서 인식해야 할 점 중 하나는 완전히 다른 일관성 모델을 사용한다는 것입니다.

여러 노드에 데이터를 분산한다는 개념을 도입하면 일관성 오류가 발생할 위험이 있습니다. 분산 데이터베이스는 데이터베이스를 종료하거나 '복원'으로 간주되는 작업을 수행하지 않고도 노드가 다운 된 결과 불일치로 인해 복구 할 수 있어야합니다.

'A'와 'B'노드에 저장된 레코드가 있다고합시다. '다중 마스터'복제에서는 기본 및 복제라는 개념이 없습니다. 오히려 레코드가 두 노드에서 동시에 업데이트 될 수 있습니다 (특히 둘 사이의 통신이 끊어진 경우). 버전 관리는 결과 일관성 문제를 해결하는 데 도움이 될 수 있습니다.

또한 이러한 데이터베이스는 '삭제'하지 않는 경향이 있습니다. 삭제 된 (또는 만료되었거나 또는 무엇이든) 것으로 표시된 최신 버전을 저장하기 만하면됩니다. 마찬가지로 '롤백'은 이전 버전의 레코드보다 새로운 버전을 생성합니다.

1

'상황에 따라 데이터보기'- 이는 진단 (예 : 전체 데이터베이스를 복원하지 않고 동일한 데이터를 사용하여 프로세스를 다시 실행할 수 있음)에 매우 유용 할 수 있습니다. 짧은 timescales에서이를 수행하는 방법은 Oracle Flashback Query를 참조하십시오.

우리는 비즈니스 규칙이 고객이 현장에서 소프트 코딩하여 데이터베이스에 저장하는 경우가 있습니다. 저장 프로 시저는 언제든지 변경 될 수 있지만 저장된 데이터를 계산하는 데 사용됩니다. 구성을 버전 관리하면 구성을 '롤백'하고 데이터가 어떻게 파생되었는지를 이해할 수 있습니다.

(각 테이블의 히스토리 테이블을 효과적으로 저장하는 Oracle의 내장 행 버전 관리에 대한 특정 용어를 기억할 수는 없습니다).

예, 버전은 더 많은 저장 공간을 의미하지만, 나는 그것이 유용 장소에서, 데이터가 거의 휘발성이라고 말할 것입니다.