2008. 11. 18. 16:11

SQL Server 2005의 데이터베이스 미러링


쿼리문을 이용한 데이터 베이스 미러링에 대해서 확인해 보겠습니다.

1. 가용성 우선 미러링 세션에서 세 개의 서버를 사용한다고 가정합시다. 서버 A는 주 서버, 서버 B는 미러 서버, 서버 W는 미러링 모니터 서버가 됩니다. 서버 A에서 다음 명령을 실행하여 포트 5022에 끝점을 만듭니다.

CREATE ENDPOINT [Mirroring] 
AS TCP (LISTENER_PORT = 5022)
FOR DATA_MIRRORING (ROLE = PARTNER, ENCRYPTION = ENABLED);
2.역할이 PARTNER로 지정되었으므로 이 서버는 지정된 데이터베이스 미러링 데이터베이스에 대해 주 
또는 미러 서버의 역할을 맡을 수 있습니다. 서버 B에서 같은 명령을 실행합니다.서버 B는 별도의 
컴퓨터에 있는 SQL Server 인스턴스이므로 포트 번호가 동일합니다. 그런 다음 서버 W에 대해 다음
명령을 실행할 수 있습니다.
CREATE ENDPOINT [Mirroring] 
AS TCP (LISTENER_PORT = 5022)
FOR DATA_MIRRORING (ROLE = WITNESS, ENCRYPTION = ENABLED);
3. 끝점시작하기. 기본적으로 끝점은 시작되어 있지 않기 때문에 다음 쿼리를 사용하여 끝점을 시작합니다.
ALTER ENDPOINT [Mirroring] STATE = STARTED;

4.

데이터베이스 미러링을 시작하려면 파트너 및 미러링 모니터 서버를 지정합니다. 주어진 데이터베이스 미러링 세션을 시작하고 관리하려면 데이터베이스 소유자 권한이 있어야 합니다. 원하는 주 서버인 서버 A에서 다음 코드를 실행하여 SQL Server가 특정 데이터베이스에 주 역할을 부여하도록 지시하고 파트너(미러) 서버를 지정합니다.

-- 주 서버에서 파트너 서버를 지정합니다.
ALTER DATABASE [AdventureWorks] SET PARTNER =
N'TCP://B.corp.mycompany.com:5022';
-- 미러 서버에서 파트너 서버를 지정합니다.
ALTER DATABASE [AdventureWorks] SET PARTNER =
N'TCP://A.corp.mycompany.com:5022';
-- 주 서버에서 미러링 모니터 서버를 지정합니다.
ALTER DATABASE [AdventureWorks] SET WITNESS =
N'TCP://W.corp.mycompany.com:5022';

마지막으로 주 서버에서 세션의 안전성 수준을 지정합니다.

-- 주 서버에서 안전성 수준을 지정합니다.
ALTER DATABASE [AdventureWorks] SET SAFETY FULL;


이 시점에서 미러링이 자동으로 시작되며 주 서버와 미러 서버가 동기화됩니다.
5.ALTER DATABASE에 TIMEOUT 매개 변수를 사용하여 파트너 중단을 결정하는 시간 초과 값을
조정할 수 있습니다. 예를 들어 TIMEOUT 값을 20초(기본값은 10초)로 변경하려면 주
서버에서 다음 명령을 실행합니다.

 
-- 주 서버에서 다음 명령을 실행합니다.
ALTER DATABASE [AdventureWorks] SET PARTNER TIMEOUT 20;


6.마지막으로 주 서버에서 REDO_QUEUE 옵션이 지정된 ALTER DATABASE를 실행하여 미러 서버에 있는 다시 실행 큐의 크기를 조정할 수 있습니다. 다음 쿼리는 미러 서버의 다시 실행 큐를 100MB로 설정합니다.

-- 주 서버에서 다음 명령을 실행합니다.
ALTER DATABASE [AdventureWorks] SET PARTNER REDO_QUEUE 100MB;














* 참고
http://www.microsoft.com/korea/technet/prodtechnol/sql/2005/dbmirror.mspx