Azure SQL Managed Instance에 대한 링크 기능을 사용하는 모범 사례

적용 대상:Azure SQL Managed Instance

이 문서에서는 Azure SQL Managed Instance에 대한 링크 기능을 사용할 때의 모범 사례를 간략하게 설명합니다. Azure SQL Managed Instance에 대한 링크 기능은 어디서나 호스트되는 SQL Server를 Managed Instance에 연결하여 SQL 클라우드에 거의 실시간으로 데이터 복제를 제공합니다.

참고

링크의 일부 기능은 일반 공급되지만 일부는 현재 미리 보기로 제공됩니다. 자세한 내용은 필수 구성 요소를 검토하세요.

정기적으로 로그 백업 수행

링크 기능은 Always On 가용성 그룹을 기반으로 하는 분산 가용성 그룹 기술을 사용하여 데이터를 복제합니다. 분산 가용성 그룹을 사용한 데이터 복제는 트랜잭션 로그 레코드 복제를 기반으로 합니다. 트랜잭션 로그 레코드는 보조 복제본의 데이터베이스에 복제될 때까지 주 SQL Server 인스턴스의 데이터베이스에서 자를 수 없습니다. 네트워크 연결 문제로 인해 트랜잭션 로그 레코드 복제가 느리거나 차단된 경우 기본 인스턴스에서 로그 파일이 계속 증가합니다. 증가 속도는 워크로드의 강도와 네트워크 속도에 따라 달라집니다. 주 인스턴스에서 네트워크 연결 중단이 장기화되고 워크로드가 많은 경우 로그 파일에서 사용 가능한 모든 저장소 공간을 사용할 수 있습니다.

로그 파일 증가로 인해 주 SQL Server 인스턴스 공간이 부족해지는 위험이 최소화되도록 SQL Server 인스턴스가 주 인스턴스일 때 SQL Server에서 데이터베이스 로그 백업을 정기적으로 수행해야 합니다. 로그 백업이 이미 자동으로 수행되므로 SQL Managed Instance가 주 인스턴스인 경우에는 추가 작업이 필요하지 않습니다. SQL Server 주 인스턴스에서 로그 백업을 정기적으로 수행하면 계획되지 않은 로그 증가 이벤트에 대한 데이터베이스 복원력이 향상됩니다. 첫 번째 데이터베이스 로그 백업은 SQL Managed Instance에 대한 초기 시드 배정이 완료된 후에만 수행되어야 합니다. 즉, SQL Managed Instance의 데이터베이스 복제본은 더 이상 '복원 중' 상태가 아닙니다. SQL Server 에이전트 작업을 사용하여 매일 로그 백업 작업을 예약하는 것이 좋습니다.

T-SQL(Transact-SQL) 스크립트를 사용하여 이 섹션에 제공된 샘플과 같은 로그 파일을 백업할 수 있습니다. 샘플 스크립트의 자리 표시자를 데이터베이스 이름, 백업 파일의 이름과 경로 및 설명으로 바꿉니다.

트랜잭션 로그를 백업하려면 SQL Server에서 다음 샘플 T-SQL(Transact-SQL) 스크립트를 사용합니다.

-- Execute on SQL Server
-- Take log backup
BACKUP LOG [<DatabaseName>]
TO DISK = N'<DiskPathandFileName>'
WITH NOFORMAT, NOINIT,
NAME = N'<Description>', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 1

다음 T-SQL(Transact-SQL) 명령을 사용하여 SQL Server의 데이터베이스에서 사용하는 로그 공간을 확인합니다.

-- Execute on SQL Server
DBCC SQLPERF(LOGSPACE); 

쿼리 출력은 샘플 데이터베이스 tpcc에 대한 다음 예제와 같습니다.

Screenshot with results of the command showing log file size and space used

이 예제에서 데이터베이스는 사용 가능한 로그의 76%를 사용했으며 절대 로그 파일 크기는 약 27GB(27,971MB)입니다. 작업 임계값은 워크로드에 따라 달라집니다. 앞선 예제에서 트랜잭션 로그 크기와 로그 사용 비율은 일반적으로 트랜잭션 로그 백업을 수행하여 로그 파일을 잘라내어 공간 일부를 확보하거나 더 자주 로그 백업을 수행해야 함을 나타냅니다. 또한 트랜잭션 로그 자르기가 열려 있는 트랜잭션에 의해 차단되고 있음을 나타낼 수도 있습니다. SQL Server의 트랜잭션 로그 문제 해결에 대한 자세한 내용은 꽉 찬 트랜잭션 로그 문제 해결(SQL Server 오류 9002)을 참조하세요. Azure SQL Managed Instance에서 트랜잭션 로그 문제를 해결하는 방법에 대한 자세한 내용은 Azure SQL Managed Instance를 사용하여 트랜잭션 로그 오류 문제 해결을 참조하세요.

시작 추적 플래그 추가

SQL Server에서 시작 매개 변수로 추가될 때 링크를 통해 데이터 복제 성능을 최적화할 수 있는 두 가지 추적 플래그(-T1800-T9567)가 있습니다. 자세한 내용은 시작 추적 플래그 사용을 참조하세요.