적용 대상: 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 tempdb
을 사용하거나 사용하지 않도록 설정하는 경우 전용 데이터베이스 잠금이 필요하지 않으며 종료 절을 지정하면 안 됩니다. 그러나 변경 내용이 적용되려면 데이터베이스 엔진을 다시 시작해야 합니다.
ADR 사용 안 함
다음 T-SQL 명령을 사용하여 ADR을 사용하지 않도록 설정합니다.
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = OFF;
GO
ADR을 사용하지 않도록 설정한 후에도 모든 활성 트랜잭션이 완료될 때까지 시스템에서 논리 되돌리기를 위해 필요한 버전이 PVS에 저장될 수 있습니다. ADR tempdb
을 사용하지 않도록 설정하는 경우 변경 내용이 적용되려면 데이터베이스 엔진을 다시 시작해야 합니다.
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]);
참고
tempdb
에서는 파일 그룹을 추가할 수 없으므로 PVS를 다른 파일 그룹으로 tempdb
이동하는 것은 지원되지 않습니다.
PVS 크기 모니터링
데이터베이스에서 ADR을 사용하도록 설정하면 PVS(영구 버전 저장소) 및 PVS 정리 성능의 크기를 모니터링합니다. 자세한 내용은 모니터링 및 가속화된 데이터베이스 복구문제 해결을 참조하세요.
관련 콘텐츠
- 가속화된 데이터베이스 복구
- 가속 데이터베이스 복구 모니터링 및 문제 해결