메모리 액세스에 최적화된 테이블이 포함된 데이터베이스 백업Backing Up a Database with Memory-Optimized Tables

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

메모리 액세스에 최적화된 테이블은 일반적인 데이터베이스 백업의 일부로 백업됩니다.Memory-optimized tables are backed up as part of regular database backups. 디스크 기반 테이블의 경우 저장소 손상을 검색하기 위해 데이터베이스 백업의 일부로 데이터 및 델타 파일 쌍의 CHECKSUM 유효성이 검사됩니다.As for disk-based tables, the CHECKSUM of data and delta file pairs is validated as part of the database backup to detect storage corruption.

참고

백업하는 동안 메모리 최적화 파일 그룹에 있는 하나 이상의 파일에서 CHECKSUM 오류가 발견되면 백업 작업이 실패합니다.During a backup, if you detect a CHECKSUM error in one or more files in a memory-optimized filegroup, the backup operation fails. 이 경우 확인된 마지막 정상 백업에서 데이터베이스를 복원해야 합니다.In that situation, you must restore your database from the last known good backup.

백업이 없는 경우 메모리 최적화 테이블 및 디스크 기반 테이블에서 데이터를 내보낼 수 있으며, 데이터베이스를 삭제하고 다시 만든 뒤 다시 로드할 수 있습니다.If you don’t have a backup, you can export the data from memory-optimized tables and disk-based tables and reload after you drop and recreate the database.

메모리 최적화 테이블이 하나 이상인 데이터베이스의 전체 백업은 디스크 기반 테이블의 할당된 저장소(있는 경우), 활성 트랜잭션 로그, 메모리 최적화 테이블의 데이터 및 델타 파일 쌍(검사점 파일 쌍이라고도 함)으로 구성됩니다.A full backup of a database with one or more memory-optimized tables consists of the allocated storage for disk-based tables (if any), the active transaction log, and the data and delta file pairs (also known as checkpoint file pairs) for memory-optimized tables. 그러나 메모리 최적화 테이블에 대한 내구성에 설명된 대로 메모리 최적화 테이블에서 사용하는 저장소는 메모리 내의 해당 크기보다 훨씬 클 수 있으며, 이는 데이터베이스 백업의 크기에 영향을 미칩니다.However, as described in Durability for Memory-Optimized Tables, the storage used by memory-optimized tables can be much larger than its size in memory, and it affects the size of the database backup.

전체 데이터베이스 백업Full Database Backup

디스크 기반 테이블의 백업 방식은 동일하므로, 여기서는 메모리 최적화 지속형 테이블이 포함된 데이터베이스의 백업에 대해 중점적으로 설명합니다.This discussion focuses on database backups for databases with only durable memory-optimized tables, because the backup for disk-based tables is the same. 메모리 최적화 파일 그룹의 검사점 파일 쌍은 다양한 상태에 있을 수 있습니다.The checkpoint file pairs in the memory-optimized filegroup could be in various states. 아래의 표에서는 백업되는 파일의 부분에 대해 설명합니다.The table below describes what part of the files is backed up.

검사점 파일 쌍 상태Checkpoint File Pair State 백업Backup
PRECREATEDPRECREATED 파일 메타데이터만File metadata only
UNDER CONSTRUCTIONUNDER CONSTRUCTION 파일 메타데이터만File metadata only
ACTIVEACTIVE 파일 메타데이터와 사용된 바이트File metadata plus used bytes
MERGE TARGETMERGE TARGET 파일 메타데이터만File metadata only
WAITING FOR LOG TRUNCATIONWAITING FOR LOG TRUNCATION 파일 메타데이터와 사용된 바이트File metadata plus used bytes

검사점 파일 쌍의 상태에 대한 설명은 sys.dm_db_xtp_checkpoint_files(Transact-SQL) 및 해당 열 state_desc를 참조하세요.For descriptions of the states for checkpoint file pairs, see sys.dm_db_xtp_checkpoint_files (Transact-SQL), and its column state_desc.

메모리 최적화 테이블이 하나 이상 포함된 데이터베이스 백업의 크기는 일반적으로 메모리 내의 백업 크기보다는 크지만 디스크상 저장소보다는 작습니다.The size of database backups with one or more memory-optimized tables is typically larger than its size in memory, but smaller than its on-disk storage. 삭제된 행의 수를 비롯한 여러 요인에 따라 백업이 더 커질 수도 있습니다.The extra size depends on the number of deleted rows, among other factors.

전체 데이터베이스 백업의 크기 예측Estimating Size of Full Database Backup

중요

메모리 내 OLTP에 대한 백업 크기를 추정하려면 BackupSizeInBytes 값을 사용하지 않는 것이 좋습니다.It’s recommended that you not use the BackupSizeInBytes value to estimate the backup size for In-Memory OLTP.

첫 번째 작업 시나리오는 대부분 삽입에 해당합니다.The first workload scenario is for (mostly) insert. 이 시나리오에서 대부분의 데이터 파일은 활성 상태이고 완전히 로드되며 삭제된 행은 거의 없습니다.In this scenario, most data files are in the Active state, fully loaded, and with very few deleted rows. 데이터베이스 백업의 크기는 메모리 내의 데이터 크기와 비슷합니다.The size of database backup up is close to the size of data in memory.

두 번째 작업 시나리오에서는 삽입, 삭제 및 업데이트 작업을 많이 수행합니다.The second workload scenario is for frequent insert, delete, and update operations. 최악의 경우 각 검사점 파일 쌍은 삭제된 행을 고려한 후 50% 로드됩니다.In the worst case, each of the checkpoint file pairs are 50% loaded, after accounting for the deleted rows. 따라서 데이터베이스 백업의 크기는 적어도 메모리 내 데이터 크기의 2배입니다.The size of the database backup will at least be 2 times the size of data in memory.

메모리 액세스에 최적화된 테이블이 있는 데이터베이스의 차등 백업Differential Backups of Databases with Memory-Optimized Tables

메모리 최적화 테이블의 저장소는 메모리 최적화 테이블에 대한 내구성에 설명된 대로 데이터 및 델타 파일로 구성되어 있습니다.The storage for memory-optimized tables consists of data and delta files as described in Durability for Memory-Optimized Tables. 메모리 최적화 테이블이 있는 데이터베이스의 차등 백업에는 다음 데이터가 포함됩니다.The differential backup of a database with memory-optimized tables contains the following data:

  • 메모리 최적화 테이블이 있어도 디스크를 기반으로 테이블을 저장하는 파일 차등 백업은 영향을 받지 않습니다.Differential backup for filegroups storing disk-based tables is not affected by the presence of memory-optimized tables.

  • 활성 트랜잭션 로그는 전체 데이터베이스 백업에서 동일합니다.The active transaction log is the same as in a full database backup.

  • 메모리 최적화 데이터 파일 그룹의 경우 차등 백업은 전체 데이터베이스 백업과 동일한 알고리즘을 사용하여 백업 데이터 및 델타 파일을 식별하지만, 그 후에 다음과 같이 하위 집합을 필터링합니다.For a memory-optimized data filegroup, the differential backup uses the same algorithm as full database backup to identify the data and delta files for backup but it then filters out the subset of files as follows:

    • 데이터 파일은 새로 삽입되는 행을 포함하며, 가득 찬 데이터 파일은 닫혀 읽기 전용으로 표시됩니다.A data file contains newly inserted rows, and when it is full it is closed and marked read-only. 데이터 파일은 마지막 전체 데이터베이스 백업 후 닫힌 경우에만 백업됩니다.A data file is backed up only if it was closed after the last full database backup. 차등 백업에서는 마지막 전체 데이터베이스 백업 이후로 삽입된 행을 포함하는 데이터 파일만 백업합니다.The differential backup only backs up data files containing the rows inserted since the last full database backup. 단, 업데이트 및 삭제 시나리오는 예외입니다. 이러한 시나리오에서는 삽입된 행 중 일부가 이미 가비지 수집용으로 표시되었거나 이미 가비지 수집되었을 수 있기 때문입니다.An exception is an update and delete scenario where it is possible that some of the inserted rows may have already been either marked for garbage collection or already garbage collected.

    • 델타 파일은 삭제된 데이터 행에 대한 참조를 저장합니다.A delta file stores references to the deleted data rows. 향후의 트랜잭션에서 행을 삭제할 수 있으므로 델타 파일은 언제든지 수정 가능하며 절대로 닫히지 않습니다.Since any future transaction can delete a row, a delta file can be modified anytime in its life time, it is never closed. 델타 파일은 항상 백업됩니다.A delta file is always backed up. 델타 파일은 일반적으로 10% 미만의 저장소를 사용하므로 차등 백업의 크기에 미치는 영향이 최소화됩니다.Delta files typically use less than 10% of the storage, so delta files have a minimal impact on the size of differential backup.

    메모리 최적화 테이블이 데이터베이스 크기의 상당 부분을 차지하는 경우 차등 백업으로 데이터베이스 백업의 크기를 대폭 줄일 수 있습니다.If memory-optimized tables are a significant portion of your database size, the differential backup can significantly reduce the size of your database backup. 일반적인 OLTP 작업의 경우 차등 백업이 전체 데이터베이스 백업보다 상당히 작습니다.For typical OLTP workloads, the differential backups will be considerably smaller than the full database backups.

참고 항목See Also

메모리 액세스에 최적화된 테이블의 백업, 복원 및 복구Backup, Restore, and Recovery of Memory-Optimized Tables