가속 데이터베이스 복구 관리
적용 대상: SQL Server 2019(15.x) 이상 버전
이 문서에서는 SQL Server 2019(15.x) 이상 버전에서 Transact-SQL(T-SQL)를 사용하여 ADR(가속 데이터베이스 복구) 사용하도록 설정하고 사용하지 않도록 설정하고 ADR에서 사용하는 PVS(영구 버전 저장소) 파일 그룹을 변경하는 방법을 설명합니다.
참고 항목
Azure SQL Database, Azure SQL Managed Instance 및 Microsoft Fabric의 SQL 데이터베이스에서 ADR(가속 데이터베이스 복구)은 항상 사용하도록 설정됩니다. PVS의 높은 스토리지 사용량 또는 느린 ADR 정리와 같은 문제를 관찰하는 경우 모니터링 및 가속화된 데이터베이스 복구 문제를 해결하거나 azure 지원 문의하세요.
가속 데이터베이스 복구를 고려해야 하는 경우
많은 고객은 ADR(가속 데이터베이스 복구)이 데이터베이스 복구 시간을 개선하는 데 중요한 기술이라고 찾습니다.
데이터베이스 워크로드에 다음과 같은 시나리오가 자주 발생하는 경우 ADR을 활용할 수 있습니다.
- 방지할 수 없는 장기 실행 트랜잭션입니다. 예를 들어 장기 실행 트랜잭션이 롤백될 위험이 있는 경우 ADR이 도움이 될 수 있습니다.
- 트랜잭션 로그가 크게 증가하는 활성 트랜잭션입니다.
- 데이터베이스의 가용성에 영향을 주는 장기 실행 데이터베이스 복구(예: 예기치 않은 SQL Server 다시 시작 또는 수동 트랜잭션 롤백 후).
애플리케이션이 개별 트랜잭션에서 많은 양의 단일 행 수정을 사용하는 경우 워크로드가 ADR에 적합하지 않을 수 있습니다. 가능한 경우 다중 행 문에서 수정을 일괄 처리하고 대량의 작은 DML 트랜잭션을 방지하는 것이 좋습니다.
ADR 활성화
ADR은 기본적으로 꺼져 있으며 SQL Server 2019(15.x)부터 사용할 수 있습니다.
다음 Transact-SQL(T-SQL) 명령을 사용하여 ADR을 사용하도록 설정합니다.
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = ON;
ADR을 사용하거나 사용하지 않도록 설정하려면 전용 데이터베이스 잠금이 필요합니다. 즉, 모든 활성 세션이 사라질 때까지 ALTER DATABASE
명령이 차단되고 새 세션이 ALTER DATABASE
명령 뒤에서 대기합니다. 작업을 완료하고 잠금을 제거하는 것이 중요한 경우 WITH ROLLBACK [IMMEDIATE | AFTER {number} SECONDS | NO_WAIT]
종료 절을 사용하여 데이터베이스의 활성 세션을 중단할 수 있습니다. 자세한 내용은 ALTER DATABASE SET 옵션참조하세요.
ADR 사용 안 함
다음 T-SQL 명령을 사용하여 ADR을 사용하지 않도록 설정합니다.
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = OFF;
GO
ADR을 사용하지 않도록 설정한 후에도 모든 활성 트랜잭션이 완료될 때까지 시스템에서 논리 되돌리기를 위해 필요한 버전이 PVS에 저장될 수 있습니다.
PVS 파일 그룹 변경
기본적으로 PVS(영구 버전 저장소) 데이터는 PRIMARY
파일 그룹에 있습니다. 필요한 경우 PVS를 다른 파일 그룹으로 이동할 수 있습니다. 예를 들어 더 많은 공간 또는 더 빠른 스토리지가 필요할 수 있습니다.
PVS의 위치를 다른 파일 그룹으로 변경하려면 다음 단계를 수행합니다.
PVS용 파일 그룹을 만들고 이 파일 그룹에 하나 이상의 데이터 파일을 추가합니다. 예시:
ALTER DATABASE [<db_name>] ADD FILEGROUP [VersionStoreFG]; GO ALTER DATABASE [<db_name>] ADD FILE ( NAME = N'VersionStoreFG', FILENAME = N'E:\DATA\VersionStore.ndf', SIZE = 8192 MB, FILEGROWTH = 64 MB ) TO FILEGROUP [VersionStoreFG];
다음 T-SQL 명령을 사용하여 ADR을 사용하지 않도록 설정합니다.
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = OFF; GO
PVS에 저장된 모든 버전이 제거될 때까지 기다립니다.
새 PVS 위치를 사용하여 ADR을 사용하도록 설정하려면 먼저 모든 버전 정보가 이전 PVS 위치에서 제거되었는지 확인합니다. sys.sp_persistent_version_cleanup 저장 프로시저를 사용하여 강제로 정리를 실행할 수 있습니다.
EXEC sys.sp_persistent_version_cleanup [<db_name>];
sys.sp_persistent_version_cleanup
저장 프로시저는 동기적입니다. 즉, 현재 PVS에서 모든 버전 정보가 정리될 때까지 완료되지 않습니다. ADR이 비활성화되어 있다고 가정할 경우, 완료 후 sys.dm_tran_persistent_version_store_stats를 쿼리하고persistent_version_store_size_kb
값을 검사하여 버전 정보가 제거되었는지 확인할 수 있습니다. 예시:SELECT DB_NAME(database_id), persistent_version_store_size_kb FROM sys.dm_tran_persistent_version_store_stats WHERE database_id = [MyDatabaseID];
persistent_version_store_size_kb
값이0
경우 ADR을 다시 사용하도록 설정하고 새 파일 그룹에 PVS를 배치할 수 있습니다.ADR을 사용하도록 설정하고 다음 T-SQL 명령을 사용하여 새 PVS 위치를 지정합니다.
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = ON (PERSISTENT_VERSION_STORE_FILEGROUP = [VersionStoreFG]);
PVS 크기 모니터링
데이터베이스에서 ADR을 사용하도록 설정하면 PVS(영구 버전 저장소) 및 PVS 정리 성능의 크기를 모니터링합니다. 자세한 내용은 모니터링 및 가속화된 데이터베이스 복구문제 해결을 참조하세요.
관련 콘텐츠
- 가속화된 데이터베이스 복구
- 가속 데이터베이스 복구 모니터링 및 문제 해결