SQL Server/SQL on Azure

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

SungWookKang 2019. 3. 26. 00:27
반응형

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

반응형