2009-01-12 3 views
12

SQL Server 2005에서 복제 또는 미러링을 선택하여 데이터 가용성 및 성능을 동시에 제공할지 여부를 결정하는 방법.미러링 대 복제


, 나는 부하 분산에 사용되는 2 개 노드 액티브/액티브 클러스터가 있고, 난 단지보고를 위해 사용되는 복제에 대한 다른 서버를 가지고, 내 SQL 서버 아키텍처에 대한 자세한 구체적으로 나는 어떤 기술이 가용성과 성능, 트랜잭션 복제 또는 데이터베이스 미러링을 가장 잘 제공하는지 확인하고 싶습니다.

답변

7

데이터베이스 미러링을 사용하면 데이터에 직접 액세스 할 수 없으며 미러 된 데이터는 데이터베이스 스냅 숏을 통해서만 액세스 할 수 있으므로 스냅 숏 데이터의 보고서는 최신 상태가 아니므로 데이터베이스 트랜잭션 복제를 사용하여 높은 가용성을 제공합니다 로드 밸런싱.

+0

기록을 위해 미러에서 스냅 샷을 만들어보고 용으로 사용할 수 있습니다. http://technet.microsoft.com/en-us/library/ms175511.aspx –

5

SQL Server 2005에 대해 잘 모릅니다. 그러나 일반적인 SQL 용도로는 항상 복제를 선호합니다. 응용 프로그램에서 읽기/쓰기를 분리해야합니다 (MySQL의 경우 프록시를 통해이를 수행 할 수있는 MySQL 프록시가 있지만). 확장 가능한 시스템을 확보해야합니다. (슬레이브로 읽기, 마스터에 쓰기)

미러링은 동시성/트랜잭션 문제를 유발하는 마스터 - 마스터 복제를 의미합니다. 마스터 - 마스터 시나리오에서도 은 다른 서버에 쓰기 쿼리를 보내지 않아야합니다. 프로젝트 크기에 따라 다음 단계는 더 많은 슬레이브를 추가 한 다음 여분의 마스터와 다른 슬레이브를 추가하는 것입니다.

master --- master 
    |   | 
slave  slave 
    |   | 
slave  slave 
    |   | 
slave  slave 

심지어 당신은 하나 개의 마스터에 쓰기 쿼리를 보낼 것입니다,하지만 실패 마스터의 경우 자동으로 새 쓰기 쿼리 대상에 대한 두 번째 마스터를 촉진 할 수있다.

+2

MS-SQL의 미러링은 * 마스터 * 마스터 복제가 아닙니다. 한 번에 두 데이터베이스 중 하나만 쓸 수 있으며 삽입/업데이트/삭제 트랜잭션은 다른 서버의 로그에도 커밋됩니다. –

7

필요로하는 대기 상태의 레벨 (뜨거움, 따뜻함, 차가움)에 따라 다릅니다. SQL 서버 에서

다양한 메커니즘은 데이터베이스 수준의 중복성을 제공, 같은 백업/로그 복원 운송, 및 데이터베이스 (SQL 서버 2005 이상에서) 미러링있다. 데이터베이스 미러링은 미러가 동기화되었을 때 데이터 손실이 보장되고 데이터베이스의 보호 된 데이터베이스의 실시간 복제 복사본을 제공하는 유일한 메커니즘입니다.

데이터베이스 미러링은 동기 또는 비동기 모드에서 작동합니다. 비동기 작업에서 트랜잭션은 미러 서버가 로그를 디스크에 기록 할 때까지 기다리지 않고 커밋하므로 성능이 극대화됩니다.

이 MS 백서, Providing High Availability using Database Mirroring은 다양한 시나리오를 다룹니다.

이 TechNet 문서, Database Mirroring Best Practices and Performance Considerations을 읽어야합니다.