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; |
[참고자료]
2018-08-30 / Sungwook Kang / http://sqlmvp.kr
Azure SQL, Managed Instance, SQL, read only, High Availability, Linked server, Read-only replica
'SQL Server > SQL on Azure' 카테고리의 다른 글
Azure SQL의 내부 디스크 할당 방법 및 저장 가능 용량 확인 (0) | 2019.03.26 |
---|---|
Azure SQL에서 이메일 보내기 (0) | 2019.03.26 |
Azure SQL에서 네트워크를 구성하는 방법 (0) | 2019.03.26 |
How to check if Azure SQL is using In-Memory (0) | 2018.03.31 |
Azure SQL Server AlwaysOn Listener 연결 오류 (서브넷 구성 오류) (0) | 2017.03.13 |