2010-08-10 2 views
3

저는 많은 (약 30 개) 테스트 스테이션이있는 새로운 테스트 데이터 관리 시스템을 설계하기 시작했습니다.일부 SQL Server 데이터를 오프라인에 저장

시스템은 네트워크가 중단 된 경우에도 데이터를 오프라인으로 수집 할 수 있어야합니다.

각 스테이션은 테스트 구조 (사양, 엔터티 유형, 비즈니스 규칙/워크 플로 등)의 최신 읽기 전용 복사본을 유지하지만 테스트 데이터는 보관하지 않습니다. 실제 테스트 데이터는 서버를 찾을 수없는 경우 로컬에 저장됩니다.

네트워크 중단 준비를 위해 일종의 동기화가 필요할 수 있습니다. 동기화는 업데이트 된 테스트 구조를 가져옵니다. 다른 동기화는 저장하지 않은 테스트 데이터를 푸시합니다.

어떻게하면 좋을까요? 어떤주의 사항?

아이디어/생각 :

  1. 는 각 시스템에서 SQL 서버를 설치하고 서버와 클라이언트가 (비용이 과도 같다) 동기화 스크립트를 작성.
  2. 동기화 스크립트를 사용하여 응용 프로그램 정의 원시 데이터 파일에 데이터의 로컬 복사본을 저장합니다.
  3. 클라이언트가 오프라인으로 데이터를 수집 할 수 있도록 SQL Server에 내장 된 것이 있습니까?
  4. 모든 데이터를 로컬에 저장 한 다음 "전송"버튼을 클릭하여 데이터를 네트워크로 푸시합니다.

환경 : MS SQL 서버는 윈도우 서버에서 실행되는 2008

답변

2

로컬 SQL Express 인스턴스를 사용하고 Service Broker를 통해 데이터를 푸시합니다. 가격, 성능 및 신뢰성을 포함한 여러 관점에서 복제보다 나은 이유에 대한 설명은 High Volume Contiguos Real Time Audit and ETL을 참조하십시오.

복제를 사용하면 Express는 모든 복제 노드에서 SQL Express보다 높은 라이센스가 필요합니다 (Express는 복제 토폴로지의 가입자 일 수 있기 때문에). SSB를 사용하여 데이터를 푸시하면 주변의 SQL Express 인스턴스가 허용되며 중앙의 비 표현 라이센스 서버 만 있으면됩니다. 즉, SQL Server 라이선스 비용에 대한 걱정없이 수십 개의 워크 스테이션에 솔루션을 쉽게 배포 할 수 있습니다.

또 다른 장점은 성능 및 처리량입니다. SSB는 수백, 수천 명의 통신 피어를 처리하도록 설계되었으며 네트워크 장애가있는 경우 수천 개의 대상에 대한 재시도를 처리 할 수있는 정교한 계층 적 흐름 제어로 설계되었습니다 (SSB의 구성원 이었기 때문에이 모든 것을 알고 있습니다. 팀). 비교에 의한 복제는 데이터 교환을 위해 TDS 프로토콜을 사용하며, SQL 에이전트 작업에 의존하며 재시작시 많은 사이클이 구워 질 수있는 단순한 방식으로 네트워크 중단을 처리하므로 이미 잘못되었을 때 상황을 정확하게 악화시킵니다. 전반적으로 SSB는 대규모 배포를 처리 할 수 ​​있습니다 (+1500 서버 배포에 대해 알고 있으며 MySpace는 SSB를 사용하여 데이터를 교환하는 deployment of +500 servers으로 공개되었습니다) 전반적으로 SSB는 대대적으로 복제 성능을 능가합니다.

테이블 행 복사가 아닌 메시징을 기반으로 한 솔루션이 문제의 설명에 더 적합하다고 주장합니다. 결과를 중앙 서버로 푸시하십시오.

처음에는 SSB를 배포하는 데 필요한 가파른 학습 곡선이 있습니다. 노하우가 있지만 찾을 수는 없으며 SSB에는 복제 모니터와 같은 세련된 도구가 없어 간단한 복제 토폴로지를 간단하게 배포 할 수 있습니다. 반면에 SSB는 배포를 업그레이드 할 때 큰 이점이 있습니다 (2005/2008/2008R2 versions are perfectly compatible).

2

내 첫번째 생각은 데이터베이스의 로컬 (SQL Server Compact) 사본 merge replication 될 것이다.

+0

당신은 그들이 위대한 마음에 대해 말하는 것을 알고 있습니다. :) – bobs

0

SQL Server 복제가 체크 아웃하려는 솔루션 인 것 같습니다. 병합 복제를 통해 로컬 테스트 스테이션은 서버에서 데이터 사본을 수신하고 네트워크 중단 중에 수집 된 데이터를 되돌릴 수 있습니다.

+0

[Jinx!] (http://www.urbandictionary.com/define.php?term=jinx&defid=652606) :-) –

관련 문제