문제 정의
데이터베이스 서버를 다른 데이터 센터로 전송해야합니다. Microsoft SQL Server 2012 Enterprise (64 비트)에서 실행되며 약 2TB 및 1TB의 두 데이터베이스가 포함되어 있습니다.
다운 타임이 적거나없는 것이 이상적입니다.
작업량
이러한 데이터베이스는 .NET 웹 사이트에 사용되며 지속적으로 업데이트되고 있습니다.
주말 동안 사용할 수없는 것은 허용 될 것입니다. 현재 사용중인 DB는 새 데이터베이스로 전환 할 때까지 사용중인 유일한 데이터베이스입니다.
이 스위치는 DB가 업데이트되지 않도록 확인하면서 DNS 항목을 새 DB 서버를 가리 키도록 변경하는 것이 이상적입니다.
또한 한 서버에서 다른 서버로의 전환 (다운 타임)이 낮게 유지되는 한이 작업에 걸리는 시간은 실제로 중요하지 않습니다.
고려 된 접근법
백업 및 복원
과거에는이 작업을 수행했지만 인터넷 보다 효율적으로 내부 네트워크를 통해 수행 되었더라도 높은 다운 타임이 발생했습니다.
로그 배송
내가 이해하는 한,이 접근법은 마스터 / 슬레이브를 구성하고 마스터 DB의 정확한 사본을 읽기 전용 슬레이브로 전송하여 다운 타임을 최소화합니다. 위에서 언급했듯이 슬레이브에 액세스 할 필요가 없으며 데이터 손상없이 마스터 DB의 복제본을 가질 수있는 방법이 필요합니다.
또한 리소스 활용 측면에서 매우 효율적인 것으로 보이며 마스터 성능에 큰 영향을 미치지 않습니다.
나는이 접근법에 대해 틀릴 수 있으므로 자유롭게 수정하십시오.
데이터베이스 미러링
나는 그 접근 방식을 너무 잘 알지 못하지만 유효한 옵션처럼 보입니다. 실시간 동기화를 할 필요가 없으며 마스터의 성능이 매우 중요하므로이 방법을 선택하면 비동기 방식이 사용됩니다.
다른 옵션?
이 서버는 베어 메탈 하드웨어에서 직접 실행되므로 낮은 수준의 솔루션은 불행히도 옵션이 아닙니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?
제약
설명했듯이, 이러한 데이터베이스는 유지 관리하기가 쉽지 않을 정도로 큰 규모이지만 다른 문제입니다.
SQL Server 버전은 동일합니다 (Microsoft SQL Server 2012 Enterprise 64 비트).
두 데이터 센터간에 네트워크를 통해 전송해야하므로 인터넷을 통해 전송해야합니다. 초기 동기화를 위해 한 사이트에서 다른 사이트로 디스크를 보내는 것은 불행히도 옵션이 아닙니다. 양도에 대한 일종의 보안을 유지하는 것이 이상적이지만 최선을 다할 것입니다.
그것은이 과제에 대한 우리의 요구에 대해 아주 좋은 개요를 제공해야하며 여러분 중 일부는 그 상황에 직면하기를 바랍니다.