2017-03-11 5 views
0

서버에 300GB MSSQL 2016 프로덕션 데이터베이스가 있으므로보고를 위해이 데이터베이스 복사본을 다른 서버에 만들어야합니다.SQL to SQL 데이터 복제

프로덕션 데이터베이스에는 일반적인 클러스터 된/클러스터되지 않은 인덱스가 있으며 일일 읽기 - 쓰기 작업이 수행됩니다.

보고 측면에서 필자는 columnstore 인덱스와 동일한 데이터베이스 테이블을 사용하므로 라이브 데이터베이스보다 보고서 쿼리 결과를 빨리 얻을 수 있도록 oppurtunity를 얻습니다.

아이디어는 내가이 두 데이터베이스를 복제하고 동기화를 유지하는 적절한 방법을 찾을 수 없습니다 때까지 괜찮다고 (최대와 같이합니다. 5 mnts 허용)

좀 로그 전달 토폴로지를 시도했다 didnt 한 일 잘.

나는이 두 데이터베이스간에 SQL 복제를 시도했지만 % 100 데이터 일관성을 제공하지 않으며 테이블에 열을 추가하거나 삭제할 때나 새 테이블을 전달할 때와 같이 실수로 용인 할 수 없습니다. 보고 데이터베이스 등

추신. 나는 동기화 된 (데이터베이스보고 옆에) 내 prod 데이터베이스의 하나의 복제본을 가지고 있다고 생각할 것입니다 (로그 전달은 2 차 읽기 전용과 같습니다). 그래서 내가 적절한 토폴로지를 찾을 수 있다면 보조 복제 데이터베이스 (1-prod, 1-replica, 1-reporting)에 대해 다른 서버 (전체적으로 3 개의 서버)를 만들 준비가되었습니다.

무엇이 가장 좋을까요? 내 경우 엔?

미리 감사드립니다.

답변

0

DDL 변경 사항을 복제하려면 로그 전달 또는 미러링을 사용해야합니다. 즉, 읽기 전용 데이터베이스에서 동일한 데이터베이스 (페이지 수준까지)가 있어야합니다. 사본 만. 다른 색인 정의를 가질 수 없습니다.

인덱스 정의를 다르게하려면 데이터를 복제 할 수있는 방법이 필요합니다. 수동 스크립트가 가장 좋은 방법 일 수 있지만 새로운 레코드가 무엇인지 추적하는 것은 까다로운 방법입니다 , 업데이트 및 특히 프로덕션 데이터베이스에서 삭제됩니다 (rowversion 열 추가 및 모든 테이블의 기본 키가 유용 할 것인지 확인). 또한 프로덕션 데이터베이스의 DDL 변경 사항을 읽기 전용 복사본으로 수동으로 복제해야합니다. 데이터 복제 스크립트를 일치하도록 업데이트하십시오.

사용할 수있는 미러링 기술 중 하나 (로그 전달, 읽기 전용 미러가있는 AG 등)를 사용하고 데이터베이스를 정확하게 유지하는 것이 좋습니다.