2010-07-27 5 views

답변

4

영구 저장 장치에 쓰기를 지속하려면 실제 옵션 만 사용해야합니다. 독립형 데이터 센터에 독립적 전원 공급 장치가있는 많은 클러스터를 구축하지 않고 동시에 실패하지 않기를기도합니다. 반면에 귀하의 데이터가 얼마나 중요한지에 따라 다릅니다. 만약 필요가 없다면, 충분한 복제를 가진 순수한 인 메모리 DB가 적절할 수 있습니다. 당신이 그것에 당신의 데이터를 저장 한 후에도 BTW 심지어 실패 할 수 있습니다 여기에 이상적인 솔루션입니다. http://www.julianbrowne.com/article/viewer/brewers-cap-theorem을 보면 복제 절충을 선택할 수 있습니다.

Prevayler http://prevayler.org/은 영구 저장소로 백업 된 메모리 내장 시스템의 예입니다 (코드는 매우 간단합니다). 내구성은 적절한 장치 (예 : HDD 또는 SSD)에 유지되는 트랜잭션 로그를 통해 제공됩니다. 데이터를 수정하는 각 트랜잭션은 로그에 기록되며 정전 또는 데이터베이스/시스템 재시작 후 로그를 사용하여 DB 상태를 복원합니다. Prevayler를 제외하고 나는 메시지 대기열을 지속 시키는데 사용 된 비슷한 계획을 보았다. 이것은 로그가 기본 저장소에 기록 된 데이터 만 제외하고 "클래식"RDBMS가 작동하는 방식과 실제로 비슷합니다. 로그를 복제에 사용할 수도 있으므로 로그 사본 하나를 다른 복제본으로 보낼 수 있습니다. 다양한 조합이 가능합니다.

1

모든 데이터베이스는 내구성을 보장하기 위해 비 휘발성 저장 장치가 필요합니다. 메모리 이미지는 내구성있는 저장 매체를 제공하지 않습니다. 느슨하게 작동하면 메모리 이미지가 무효화됩니다. 마찬가지로, 데이터베이스 프로세스가 종료 되 자마자 운영 체제는 메모리 내 이미지가 포함 된 메모리를 해제합니다. 두 경우 모두 데이터베이스 내용이 불완전합니다.

변경 사항이 비 휘발성 메모리에 기록 될 때까지 확실한 내구성이 아닙니다. 이것은 모든 데이터 변경 사항을 디스크에 기록하거나 변경 작업 일지를 쓰는 것으로 구성 될 수 있습니다.

중요한 공간에서 플래시와 같은 비 휘발성 메모리를 HDD로 대체 할 수 있습니다. 그러나 플래시에는 기록 할 수있는 쓰기 사이클 수에 문제가있는 것으로보고됩니다.

이전 게시물을 검토 한 결과 마지막 서버를 계속 실행하면 다중 서버 복제가 작동합니다. 그것이 내려 지 자마자, 당신은 당신의 큐를 잃어 버리게됩니다. 그러나 오라클에는 여러 가지 대안이 고려 될 수 있습니다.

PDA는 종종 데이터베이스를 저장하기 위해 배터리로 백업 된 메모리를 사용합니다. 이러한 데이터베이스는 배터리가 소모되면 내구성이 떨어집니다. 백업은 중요합니다. 귀하의 요구 사항이 무엇인지 메모리 데이터베이스에

0

고전은 고전적인 내구성을 제공하지만,에 따라 할 수 할 수 있습니다 : 그것은 데이터 그 가능성의 충분한 노드에서 메모리에 저장하는

  • 사용 memcached를 (또는 유사) 손실 됨
  • SAN 기반 파일 시스템에 oracle 데이터베이스를 저장하면 전체 데이터베이스가 RAM에 충분한 RAM (예 : 3GB)을 줄 수 있으므로 디스크 탐색 액세스는 응용 프로그램을 저장하지 않습니다. 그런 다음 SAN은 캐시 내용의 디스크로의 지연된 writeback을 처리합니다. 이것은 매우 비싼 옵션이지만 고성능 및 고 가용성이 필요한 곳에서는 일반적이며 비용이 많이 듭니다.
  • SAN을 사용할 여유가 없으면 램 디스크를 마운트하고 거기에 데이터베이스를 설치 한 다음 DB 레벨 복제 (예 : logshipping)를 사용하여 장애 조치를 제공하십시오.

영구 저장 장치를 사용하지 않으려는 이유가 있습니까?

관련 문제