본문 바로가기

MSSQL

SQL Server 2005 개발자 가이드[11/13]


RMO(Replication Management Objects) 지원

SQL Server 2005에서 새로 제공하는, RMO를 사용하여, SQL Server 복제 관련 작업을 자동화할 수 있습니다. RMO를 사용하기 위해서는 RMO 라이브러리에 포함된 Replication 네임스페이스와 관련 클래스에 대해서 살펴보아야 합니다. 또한, RMO를 사용하여 프로그래밍 기반으로 복제를 관리하기 위해 사용하는 RMO 클래스에 대해서도 살펴보아야 합니다.

RMO 란?
SQL Server Management Studio에서는 새 게시 마법사, 새 구독 마법사와 같은 사용하기 편리한 복제 도구를 지원합니다. 하지만, 일부의 경우에서는 복제 관리 작업을 자동화해야 하는 상황이 발생할 수 있습니다. SQL Server 2005에서는 복제에 대한 프로그래밍 인터페이스를 제공하기 위해 RMO를 지원합니다.

RMO에서 지원하는 SQL Server 버전 Server versions
SMO와 마찬가지로, RMO도 SQL Server 7.0, SQL Server 2000, SQL Server 2005를 지원합니다.

RMO 구현
RMO는 Microsoft.SqlServer.Rmo.dll 이라는 .NET 어셈블리내에 클래스로 구현되어 있습니다. Microsoft.SqlServer.Rmo.dll 어셈블리에는 Microsoft.SqlServer.Replication 네임스페이스가 포함되어 있으며, Microsoft.SqlServer.Replication 네임스페이스에는 복제관련 클래스가 포함되어 있습니다.

SQL-DMO 복제 관련 클래스 대체
RMO는 기존 SQL-DMO에서 지원하던 복제 관련 클래스를 대체하는 역할을 합니다. SQLDMO 복제 관련 클래스에 대한 지식이 있는 사용자라면, 해당 지식을 RMO에서도 적용할 수 있습니다.
RMO 서버에 연결
다음의 코드는 ServerConnection 개체에 대한 인스턴스를 생성하는 방법을 나타냅니다.
‘Visual Basic
Dim conn As New ServerConnection“( DBSERVER”)


//Visual C#
ServerConnection conn = new ServerConnection“( DBSERVER”);

ReplicationServer 개체 생성
ServerConnection 개체를 생성한 다음, ReplicationServer 개체에 대한 인스턴스를 생성하기 위해서 사용합니다. ReplicationServer 개체는 복제가 구성되었는지 여부와 상관없이, SQL Server 7.0 또는 그 이후 버전 SQL Server 에 연결할 수 있습니다.

다음 예제는 ReplicationServer 개체에 대한 인스턴스를 생성하는 방법을 나타냅니다.
‘Visual Basic
Dim rs As New ReplicationServer(conn)

//Visual C#
ReplicationServer rs = new ReplicationServer(conn);

복제 관리 작업

RMO를 사용하여, 단순하게 복제구성정보를 조회하는 것에부터 게시자, 분배자, 구독자를 생성하고 관리하는 것까지, 모든 복제관련 관리작업을 수행할 수 있습니다.

복제구성정보 조회
ReplicationServer 클래스에서는 IsPublisher, IsDistributor, DistributorAvailable, HasRemotePublisher와 같은 속성과 복제 구성 정보를 조회하기 위한 속성을 제공합니다.

게시와 배포 구성
RMO에는 게시와 배포를 구성하기 위해서 사용할 수 있는 DistributionDatabase, DistributionPublisher 같은 클래스가 포함되어 있습니다.

게시와 아티클 관리
RMO에서는 트랜잭션 게시, 스냅샷 게시, 병합 게시를 생성하기 위해서 사용할 수 있는 TransPublication, MergePublication와 같은 클래스가 포함되어 있습니다. TransArticle 클래스 또는 MergeArticle 클래스를 사용하여, 게시할 아티클을 지정할 수 있습니다.

구독 관리
TransSubscription 클래스와 MergeSubscription 클래스를 사용하여 밀어내기 방식 구독을 생성할 수 있습니다. 또한, TransPullSubscription 클래스와 MergePullSubscription 클래스를 사용하여 가져오기 방식 구독을 관리할 수 있습니다.

[출처] DBGuide.net