다음을 통해 공유


가속 데이터베이스 복구 관리

적용 대상: 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은 다음 시나리오에는 권장되지 않습니다.

  • 데이터베이스 미러링 사용하는 데이터베이스는 지원되지 않습니다.
  • 애플리케이션이 개별 트랜잭션에서 많은 양의 단일 행 수정을 사용하는 경우 워크로드가 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의 위치를 다른 파일 그룹으로 변경하려면 다음 단계를 수행합니다.

  1. 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];
    
  2. 다음 T-SQL 명령을 사용하여 ADR을 사용하지 않도록 설정합니다.

    ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = OFF;
    GO
    
  3. PVS에 저장된 모든 버전이 제거될 때까지 기다립니다.

    새 PVS 위치를 사용하여 ADR을 사용하도록 설정하려면 먼저 모든 버전 정보가 이전 PVS 위치에서 제거되었는지 확인합니다. sys.sp_persistent_version_cleanup 저장 프로시저를 사용하여 강제로 정리를 실행할 수 있습니다.

    EXEC sys.sp_persistent_version_cleanup [<db_name>];
    

    sys.sp_persistent_version_cleanup 저장 프로시저는 동기적입니다. 즉, 현재 PVS에서 모든 버전 정보가 정리될 때까지 완료되지 않습니다. 완료되면 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경우 새 파일 그룹의 PVS를 사용하여 ADR 기능을 다시 사용하도록 설정할 수 있습니다.

  4. ADR을 사용하도록 설정하고 다음 T-SQL 명령을 사용하여 새 PVS 위치를 지정합니다.

    ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = ON
    (PERSISTENT_VERSION_STORE_FILEGROUP = [VersionStoreFG]);
    

PVS 크기 모니터링

데이터베이스에서 ADR을 사용하도록 설정하면 PVS(영구 버전 저장소) 및 PVS 정리 성능의 크기를 모니터링합니다. 가속 데이터베이스 복구문제 해결에 나와 있는 방법을 사용하여 PVS의 상태를 모니터링할 수 있습니다.

DML 문(INSERT, UPDATE, DELETE, MERGE)이 많이 포함된 워크로드(예: 대량 OLTP)의 경우, 공간을 회수하기 위해 PVS 정리 프로세스에 휴식/복구 기간이 필요할 수 있습니다. 일반적으로 비즈니스 작업 주기는 이 시간을 허용하지만 일부 시나리오에서는 애플리케이션 활동 패턴을 활용하기 위해 PVS 정리 프로세스를 수동으로 시작할 수 있습니다.

  • 워크로드 간 또는 유지 관리 기간 동안 PVS 정리 프로세스를 수동으로 활성화하려면 sys.sp_persistent_version_cleanup 저장 프로시저를 사용합니다.

  • PVS 정리 프로세스가 장기간 실행되는 경우 중단된 트랜잭션 수가 증가하여 PVS 크기도 증가할 수 있습니다. sys.dm_tran_aborted_transactions DMV를 사용하여 중단된 트랜잭션 수를 보고하고, sys.dm_tran_persistent_version_store_stats를 사용하여 정리 시작/종료 시간과 함께 PVS 크기를 보고합니다.

  • SNAPSHOT 격리를 사용하는 장시간 실행되는 쿼리를 특징으로 하는 워크로드 또는 RCSI(READ_COMMITTED_SNAPSHOT) 데이터베이스 옵션을 사용할 때 READ COMMITTED 격리를 사용하면 데이터베이스 엔진 인스턴스의 모든 데이터베이스에 대한 PVS 정리가 지연될 수 있으며, 이로 인해 PVS 크기가 증가할 수 있습니다. 자세한 내용은 가속 데이터베이스 복구문제 해결의 긴 활성 스냅샷 검사 섹션을 참조하세요.