본문 바로가기

운영/SQL Server 설치

MS SQL Mirroring 환경의 시스템 업그레이드 (MS SQL 2016 Upgrade)

728x90

MS SQL 2012 Mirror 구성 (Mirroring)

ms sql mirror server

현재 구성되어 있는 데이터베이스는 MS SQL 2012로 구성되어 있으며, 두 서버간 데이터베이스 기준으로 Mirroring이 구성되어 있습니다. Principal / Mirror 간 Synchronized / Restoring 이 되고 있는 것을 보실 수가 있습니다.

데이터베이스 속성에서 Mirroring을 보면 Synchronous 로 설정되어 있으며 이렇게 설정할 경우 Automatic Failover를 지원합니다.

database mirroring properties

이렇게 구성되어 있는 시스템을 이제 MS SQL 2016으로 업그레이드 하려고 합니다. 

 

Upgrade 시나리오

미러된 인스턴스 업그레이드 - SQL Server Database Mirroring | Microsoft Docs

 

미러된 인스턴스 업그레이드 - SQL Server Database Mirroring

롤링 업그레이드를 사용하여 SQL Server 미러된 인스턴스를 업그레이드할 때 가동 중지 시간을 줄이는 방법을 알아봅니다. 이 문서에는 모범 사례가 포함되어 있습니다.

docs.microsoft.com

High safety with automatic failover로 구성되어 있기 때문에 Withness를 제거하고 진행하려고 합니다.

dbm-rolling-upgrade

 

 

Upgrade

Remove Witness to disable automatic failover. (Witness Server를 제거)

ALTER DATABASE [DB명] SET WITNESS OFF
GO

configure security

Mirroring 에서 Configure Security를 선택하여 설정값을 바꿉니다.

not want witness server

witness server 선택을 no로 선택하고 진행합니다.

node 1 endpoint

1번 서버와 2번서버를 연결하여 endpoint를 만듭니다.

node 2 endpoint

각 서버의 service account를 입력합니다. 해당 계정은 endpoint에 대한 connect 권한이 있어야 합니다.

service account
remove witness

최종적으로 witness server를 제거한 상태입니다. 이 상태에서 업그레이드를 진행합니다. 

업그레이드는

1) Mirror Server (2번서버)

2) 수동 Fail Over

3) Principal Server (1번서버)

4) Mirroring 시작

5) Witness Server 재생성

 

Mirror Server를 업그레이드 하였습니다. Principal 서버는 ms sql 2012 이고 Mirror 서버는 ms sql 2016 인 것을 확인 할 수 있습니다.

before upgrade

이제 수동 Fail Over를 진행합니다.

manual failover

FailOver를 하였으나 상태가 Synchronized 상태가 되지 않았습니다. 이 부분에서 고민을 많이 했습니다. ms에서 제공하는 시나리오에서는 failover 후 업그레이드를 진행하라고 되어 있고 정상적으로 Synchronized가 되는지는 명시가 되어 있지 않는 것 같았습니다. 이 상태에서 업그레이드를 나머지 서버를 진행합니다. (현재 Mirror Server)

failover suspended

업그레이드 이후 Suspended 상태의 미러링을 재개 (Resume)을 시도하였더니 정상적으로 Synchronized가 되었습니다. 

finish upgrade

이제 데이터베이스에 대한 check와 서비스 상태를 확인하면 됩니다.

728x90