Azure SQL에서 읽기 전용 복제본에 대한 접속 링크 서버 생성

 

·         Version : Azure SQL

 

Azure SQL Database Managed Instance Azure 클라우드에서 호스트 되는 완벽하게 관리되는 SQL Server 데이터베이스 엔진으로 Azure SQL Pass SQL Server 기능(: 링크된 서버 기본 제공되는 무료 보조 읽기 전용 복제본) 제공한다. 이번 포스트에서는 연결된 서버(링크드 서버) 사용하여 읽을 있는 보조 복제본을 연결하는 방법을 살펴 본다.

 

Managed Instance Business Critical Tier 모든 데이터베이스에 대해서 리포트 목적의 용도로 사용할 있는 읽기 전용 상태의 무료 읽기 전용 복제본을 제공한다. 아래 그림에는 하나의 기본 인스턴스와   개의 읽기 전용 서버로 구성된다. 서버는 읽기 전용 끝점을 이용해서 연결된다.


어플리케이션에서 보조 복제본에 접속하는 방법은 기본 인스턴스에 액세스하는 사용하는 것과 동일한 연결 문자열을 사용한다. 다만 연결 문자열에ApplicationIntent=ReadOnly 추가하면 된다.

기본 인스턴스에서 보조 인스턴스로 연결된 서버를 만드는 경우 T-SQL 사용하여 기본 인스턴스에서 보조 인스턴스로 연결할 있다. 아래 스크립트는 보조 복제본에 연결된 서버를 만든다.

EXEC sp_addlinkedserver

@server=N'SECONDARY',

@srvproduct=N'',

@provider=N'SQLNCLI',

@provstr = N'ApplicationIntent=ReadOnly',

@datasrc= @@SERVERNAME;

 

@@SERVERNAME Managed Instance 정규화된 도메인 이름을 반환하고 동일한 이름은 보조 인스턴스에 액세스하는데 사용된다. 추가해야하는 유일한 것은 공급자 문자열에서 ApplicationIntent=ReadOnly 이다

 

읽기 보조 복제본 서버로 연결된 서버를 생성하면 T-SQL 사용하여 읽기 전용 인스턴스를 쿼리 있다. 예를 들어 아래 쿼리를 사용하여 보조 데이터베이스가 읽기 전용인지 확인할 있다.

SELECT *

FROM OPENQUERY([SECONDARY],

'SELECT DATABASEPROPERTYEX (''master'', ''Updateability'' ) ')

 

또한 4 part name 구문을 사용하여 Secondary 서버의 테이블이나 뷰를 쿼리할 있다.

SELECT *

FROM SECONDARY.master.sys.databases;

 

 

[참고자료]

https://blogs.msdn.microsoft.com/sqlserverstorageengine/2018/08/27/create-linked-server-to-readable-secondary-replica-in-managed-instance-business-critical-service-tier/

 

 

 

2018-08-30 / Sungwook Kang / http://sqlmvp.kr

 

Azure SQL,  Managed Instance, SQL, read only, High Availability, Linked server, Read-only replica

+ Recent posts