VM환경에서 AG를 구성하였을때VSS 백업 동작 변경
· Version : SQL Server 2016, SQL Server 2017
SQL Server 2016 Standard Edition(또는 이후 버전)을 사용하여 가상 컴퓨터 (Virtual Machine) 환경에서 기본 가용성 그룹( AG)을 구성하였을때 AG의 보조 복제본을 호스팅하는 VM환경에서 백업이 실패한 것으로 나타날 수 있다. 이러한 이유는 Volume Shadow Copy Service(VSS)가 VM환경의 보조 복제본에서호스트되는 모든 SQL Server 데이터베이스를 일관된 방식으로 백업하기 때문이다.
· Volume Shadow Copy Service : https://docs.microsoft.com/ko-kr/windows/desktop/VSS/about-the-volume-shadow-copy-service
기본 가용성 그룹에서는 보조 데이터베이스의 백업이 지원되지 않으므로 백업중인 데이터베이스의 하위 집합과 함께 VM 백업이 성공할 수 있도록 허용하지 않아 전체 VM백업이 실패한다. 이전 버전의 SQL Server에서 Database Mirroring은 VM에서 호스트되는 미러된 데이터베이스를 스킵하면서 VSS 백업을 완료할 수 있었다. SQL Server 2016 SP2 CU2 및 SQL Server 2017 CU9에서는 기본 AG의 VSS 백업의 기본 동작을 데이터베이스 미러링과 같이 변경하여 기본 AG 보조 복제본에서 호스트되는 보조 데이터베이스를 스킵한다. 즉, VM환경에서 백업은 성공하지만 백업 당시에는 2차 상태였던 데이터베이스는 포함되지 않는다.
SQL Writer Service는 SQL Server에서 VSS백업을 수행하는 서비스이다. 이 서비스는 SQL Server엔진과 별개이며 다른 버전의 SQL Server에서 공유된다.
· SQL Writer Service : https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/sql-writer-service?view=sql-server-2017
동일한 서버 또는 VM에 SQL Server인스턴스가 여러 개 설치되어있는 경우 이러한 인스턴스는 모두 SQL Writer Service의 동일한 인스턴스를 공유한다. 동일한 서비스가 버전간에 공유되더라도 각 SQL Server버전과 함께 제공되는 파일에는 함께 제공되는 인스턴스와 동일한 버전 번호가 표시된다. 즉 SQL Server 2016 SP2 CU2를 서버에 적용하면 새로운 기능을 갖춘 새 SQL Writer Service가 제공되지만 이후에 해당 인스턴스를 SQL Server 2017RTM으로 업그레이드 하거나 SQL Server 2017의 별도 인스턴스를 설치하는 경우 RTM을 동일한 서버에 설치하면 새로운 SQL Writer Service 바이너리는 새 버전 번호를 갖기 때문에 이전 버전으로 바뀐다. 이 때문에 SQL Server 2016 SP2 CU2로 패치된 시스템에 SQL Server 2017인스턴스를 업그레이드 하거나 설치하는 경우 최신 CU를 적옹해야 한다.
[참고자료]
2018-08-28 / Sungwook Kang / http://sqlmvp.kr
SQL Server, MSSQL, AlwaysOn,가용성 그룹, SQL 가용성 그룹, 가용성 그룹 백업, VSS, Volume Shadow Copy Service, SQL Writer Service
출처: https://sqlmvp.tistory.com/1268?category=618825 [Database Lab]