Azure에 SQL Server 2012 Sp4 Enterprise 두 대로 Always-on 가용성 그룹(Availability Group)을 구성하면서 발생했던 동기화 오류를 해결한 방법입니다.
아래 해외 Blog를 참고하여 해결하였습니다.
Fix SQL Server AlwaysOn Availability Group Error: 1408 Joining database on secondary replica resulted in an error - www.mssqltips.com/sqlservertip/4687/fix-sql-server-alwayson-availability-group-error-1408-joining-database-on-secondary-replica-resulted-in-an-error/
참고) 구성 환경 (OS 및 SQL 버전 정보)
[증상]
1. Always-on 가용성 그룹 구성 후, Secondary (SQLDB02)에서 Database가 Restoring... 으로 표시되고, 대상 DB를 클릭하면 아래와 같은 오류가 발생함
- The database databaseName is not accessible. (ObjectExplorer)
2. Secondary에서 Availability Group - Availability Databases 에 경고가 표시되고, Dashboard에서도 아래와 같은 경고가 표시됨.
- Data synchronization state of some availability database is not healthy.
- Secondary database is not joined.
[해결 방법]
아래와 같이 Primary 에서 DB와 Log를 백업하고 Secondary에서 복원 후 Availability Group에 join하면 됩니다.
1. Primary에서 DB와 Log를 백업 (COPY_ONLY 옵션 사용)
BACKUP DATABASE [dbname]
TO DISK = 'F:\backuppath\dbname.bak'
WITH COPY_ONLY;
GO
BACKUP LOG [dbname]
TO DISK = 'F:\backuppath\dbname.trn'
WITH COPY_ONLY;
GO
2. Backup 파일을 공유하고, Secondary에서 접근 가능한지 확인합니다. (공유 권한에서 SQL Service 계정에 모든 권한을 부여해야 합니다.)
3. Secondary에서 DB와 Log 복원 (NORECOVERY 옵션 사용)
RESTORE DATABASE [dbname]
FROM DISK = '\\shareserver\filepath\dbname.bak'
WITH NORECOVERY, REPLACE;
GO
RESTORE LOG [dbname]
FROM DISK = '\\shareserver\filepath\dbname.trn'
WITH NORECOVERY, REPLACE;
GO
4. Join to Availability Group
Secondary의 Availability Group - Availability Databases에서 대상 Database를 오른쪽 클릭 후 'Join th Availability Group'을 선택합니다.
[OK]를 클릭합니다.
Secondary에서 Database가 Synchronized로 표시되고, Availability Database 에서도 경고 표시가 사라졌습니다.
-끝-
'Microsoft > Azure' 카테고리의 다른 글
Recovery Service Vault 삭제 오류 해결 방법 (Soft Delete) (0) | 2021.07.14 |
---|---|
Azcopy 로그인에 App Registration (Service principal) 사용 (0) | 2021.06.08 |
Azure에서 도메인 구매 (App Service Domain) (0) | 2021.04.03 |
Azure Firewall의 SNAT Private IP 주소 범위 (0) | 2021.02.06 |
Automation Account 을 사용하여 Disk Snapshot 생성 (0) | 2021.01.31 |