backupset(Transact-SQL)

적용 대상:SQL ServerAzure SQL Managed InstanceAnalytics Platform System(PDW)

각 백업 집합에 대한 행을 포함합니다. 백업 세트에는 하나의 성공한 백업 작업의 백업이 포함됩니다. RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY 및 RESTORE VERIFYONLY 문은 지정한 백업 디바이스의 미디어 세트 내에 있는 단일 백업 세트에서 작동합니다.

이 테이블은 데이터베이스에 msdb 저장됩니다.

열 이름 데이터 형식 설명
backup_set_id int 백업 집합을 식별하는 고유한 백업 집합 ID 번호입니다. ID, 기본 키입니다.
backup_set_uuid uniqueidentifier 백업 집합을 식별하는 고유한 백업 집합 ID 번호입니다.
media_set_id int 백업 세트가 포함된 미디어 세트를 식별하는 고유 미디어 세트 식별 번호입니다. backupmediaset(media_set_id)를 참조합니다.
first_family_number tinyint 백업 세트가 시작되는 미디어의 패밀리 번호입니다. NULL일 수 있습니다.
first_media_number smallint 백업 세트가 시작되는 미디어의 미디어 번호입니다. NULL일 수 있습니다.
last_family_number tinyint 백업 세트가 끝나는 미디어의 패밀리 번호입니다. NULL일 수 있습니다.
last_media_number smallint 백업 세트가 끝나는 미디어의 미디어 번호입니다. NULL일 수 있습니다.
catalog_family_number tinyint 백업 세트 디렉터리의 시작을 포함하는 미디어의 패밀리 번호입니다. NULL일 수 있습니다.
catalog_media_number smallint 백업 세트 디렉터리의 시작을 포함하는 미디어의 미디어 번호입니다. NULL일 수 있습니다.
위치 int 복원 작업에서 적절한 백업 세트 및 파일을 찾는 데 사용되는 백업 집합 위치입니다. NULL일 수 있습니다. 자세한 내용은 BACKUP(Transact-SQL)에서 FILE을 참조하세요.
expiration_date 날짜/시간 백업 세트가 만료되는 날짜 및 시간입니다. NULL일 수 있습니다.
software_vendor_id int 백업 미디어 헤더를 작성하는 소프트웨어 공급업체의 ID 번호입니다. NULL일 수 있습니다.
이름 nvarchar(128) 백업 집합의 이름입니다. NULL일 수 있습니다.
description nvarchar(255) 백업 세트에 관한 설명입니다. NULL일 수 있습니다.
user_name nvarchar(128) 백업 작업을 수행하는 사용자의 이름입니다. NULL일 수 있습니다.
software_major_version tinyint Microsoft SQL Server 주 버전 번호입니다. NULL일 수 있습니다.
software_minor_version tinyint SQL Server 부 버전 번호입니다. NULL일 수 있습니다.
software_build_version smallint SQL Server 빌드 번호입니다. NULL일 수 있습니다.
time_zone smallint 백업 작업이 시작된 시점의 표준 시간대 정보를 사용하여 백업 작업이 수행되는 현지 시간과 UTC(협정 세계시) 간의 차이(15분 간격)입니다. 값은 -48~ +48(포함)일 수 있습니다. 값 127은 알 수 없음을 의미합니다. 예를 들어 -20은 동부 표준시(EST) 또는 UTC 이후 5시간입니다. NULL일 수 있습니다.
mtf_minor_version tinyint Microsoft Tape Format의 부 버전 번호입니다. NULL일 수 있습니다.
first_lsn numeric(25,0) 백업 세트에서 첫 번째 또는 가장 오래된 로그 레코드의 로그 시퀀스 번호입니다. NULL일 수 있습니다.
last_lsn numeric(25,0) 백업 세트 다음에 오는 로그 레코드의 로그 시퀀스 번호입니다. NULL일 수 있습니다.
checkpoint_lsn numeric(25,0) 다시 실행이 시작되어야 하는 로그 레코드의 로그 시퀀스 번호입니다. NULL일 수 있습니다.
database_backup_lsn numeric(25,0) 가장 최근 전체 데이터베이스 백업의 로그 시퀀스 번호입니다. NULL일 수 있습니다.

database_backup_lsn은 백업이 시작될 때 트리거되는 "검사점의 시작"입니다. 데이터베이스가 유휴 상태이고 복제가 구성되지 않은 경우 백업이 수행되면 이 LSN은 first_lsn과 일치하게 됩니다.
database_creation_date 날짜/시간 데이터베이스를 처음 만든 날짜 및 시간입니다. NULL일 수 있습니다.
backup_start_date 날짜/시간 백업 작업이 시작된 날짜 및 시간입니다. NULL일 수 있습니다.
backup_finish_date 날짜/시간 백업 작업이 완료된 날짜와 시간입니다. NULL일 수 있습니다.
type char(1) 백업 유형입니다. 다음이 될 수 있습니다.

D = 데이터베이스
I = 차등 데이터베이스
L = 로그
F = 파일 또는 파일 그룹
G =차등 파일
P = 부분
Q = 차등 부분

NULL일 수 있습니다.
sort_order smallint 백업 작업을 수행하는 서버의 정렬 순서입니다. NULL일 수 있습니다. 정렬 순서 및 데이터 정렬에 대한 자세한 내용은 데이터 정렬 및 유니코드 지원을 참조하세요.
code_page smallint 백업 작업을 수행하는 서버의 코드 페이지입니다. NULL일 수 있습니다. 코드 페이지에 대한 자세한 내용은 데이터 정렬 및 유니코드 지원을 참조하세요.
compatibility_level tinyint 데이터베이스에 대한 호환성 수준 설정입니다. 다음이 될 수 있습니다.

90 = SQL Server 2005(9.x)
100 = SQL Server 2008(10.0.x)
110 = SQL Server 2012(11.x)
120 = SQL Server 2014(12.x)
130 = SQL Server 2016(13.x)
140 = SQL Server 2017(14.x)
150 = SQL Server 2019(15.x)
160 = SQL Server 2022(16.x)

NULL일 수 있습니다.

호환성 수준에 대한 자세한 내용은 ALTER DATABASE 호환성 수준(Transact-SQL)을 참조하세요.
database_version int 데이터베이스 버전 번호입니다. NULL일 수 있습니다.
backup_size numeric(20,0) 백업 세트의 크기(바이트)입니다. NULL일 수 있습니다. VSS 백업의 경우 backup_size는 예상 값입니다.
database_name nvarchar(128) 백업 작업에 관련된 데이터베이스의 이름입니다. NULL일 수 있습니다.
server_name nvarchar(128) SQL Server 백업 작업을 실행하고 있는 서버의 이름입니다. NULL일 수 있습니다.
machine_name nvarchar(128) SQL Server를 실행하는 컴퓨터의 이름입니다. NULL일 수 있습니다.
flags int SQL Server에서는 flags 열이 사용되지 않고 대신 다음과 같은 bit 열이 사용됩니다.

has_bulk_logged_data
is_snapshot
is_readonly
is_single_user
has_backup_checksums
is_damaged
begins_log_chain
has_incomplete_metadata
is_force_offline
is_copy_only

NULL일 수 있습니다.

SQL Server 이전 버전의 백업 세트에서 플래그 비트는 다음과 같습니다.
1 = 백업에 최소 로깅된 데이터가 포함됩니다.
2 = WITH SNAPSHOT이 사용되었습니다.
4 = 백업 시 데이터베이스가 읽기 전용이었습니다.
8 = 데이터베이스가 백업 시 단일 사용자 모드였습니다.
unicode_locale int 유니코드 로캘입니다. NULL일 수 있습니다.
unicode_compare_style int 유니코드 비교 스타일입니다. NULL일 수 있습니다.
collation_name nvarchar(128) 데이터 정렬 이름입니다. NULL일 수 있습니다.
Is_password_protected bit 백업 세트입니다.

다음과 같이 암호로 보호됩니다.

0 = 보호되지 않음

1 = 보호됨
recovery_model nvarchar(60) 데이터베이스의 복구 모델입니다.

FULL

BULK-LOGGED

SIMPLE
has_bulk_logged_data bit 1 = 백업에 대량 로그 데이터가 포함됩니다.
is_snapshot bit 1 = SNAPSHOT 옵션을 사용하여 백업을 수행했습니다.
is_readonly bit 1 = 백업 시 데이터베이스가 읽기 전용이었습니다.
is_single_user bit 1 = 데이터베이스가 백업 당시 단일 사용자였습니다.
has_backup_checksums bit 1 = 백업이 백업 체크섬을 포함합니다.
is_damaged bit 1 = 이 백업을 만들 때 데이터베이스 손상이 감지되었습니다. 오류와 관계없이 백업 작업을 계속하도록 요청했습니다.
begins_log_chain bit 1 = 연속되는 로그 백업 체인에서 첫 번째 체인입니다. 로그 체인은 데이터베이스를 만든 후 또는 단순에서 전체 또는 대량 로그 복구 모델로 전환될 때 수행되는 첫 번째 로그 백업으로 시작합니다.
has_incomplete_metadata bit 1 = 불완전한 메타데이터가 있는 비상 로그 백업입니다. 자세한 내용은 비상 로그 백업(SQL Server)를 참조하세요.
is_force_offline bit 1 = 백업을 수행했을 때 NORECOVERY 옵션을 사용하여 데이터베이스를 오프라인으로 전환했습니다.
is_copy_only bit 1 = 복사 전용 백업입니다. 자세한 내용은 복사 전용 백업(SQL Server)을 참조하세요.
first_recovery_fork_guid uniqueidentifier 시작 복구 포크의 ID입니다. RESTORE HEADERONLY의 FirstRecoveryForkID에 해당됩니다.

데이터 백업의 경우 first_recovery_fork_guidlast_recovery_fork_guid와 같습니다.
last_recovery_fork_guid uniqueidentifier 끝 복구 포크의 ID입니다. RESTORE HEADERONLY의 RecoveryForkID에 해당됩니다.

데이터 백업의 경우 first_recovery_fork_guidlast_recovery_fork_guid와 같습니다.
fork_point_lsn numeric(25,0) first_recovery_fork_guidlast_recovery_fork_guid와 같지 않으면 분기 지점의 로그 시퀀스 번호입니다. 그렇지 않으면 값이 NULL입니다.
database_guid uniqueidentifier 데이터베이스에 대한 고유 ID입니다. RESTORE HEADERONLY의 BindingID에 해당됩니다. 데이터베이스가 복원되면 새 값이 할당됩니다.
family_guid uniqueidentifier 생성 시 원래 데이터베이스의 고유 ID입니다. 이 값은 데이터베이스가 다른 이름으로 복원되는 경우에도 동일하게 유지됩니다.
differential_base_lsn numeric(25,0) 차등 백업에 대한 기본 LSN입니다. 단일 백업을 기반으로 하는 차등 백업의 경우 differential_base_lsn보다 크거나 같도록 LSN을 변경하면 차등 백업에 포함됩니다.

여러 백업을 기반으로 하는 차등 백업의 경우 값은 NULL이며 기본 LSN은 파일 수준에서 결정해야 합니다(backupfile(Transact-SQL) 참조).

비차등 백업 유형의 경우 값은 항상 NULL입니다.
differential_base_guid uniqueidentifier 단일 백업을 기준으로 하는 차등 백업의 경우 값은 차등 기반의 고유 식별자입니다.

다중 기반 차등의 경우 값은 NULL이고 차등 기준은 파일 수준에서 결정되어야 합니다.

비차등 백업 유형의 경우 값은 NULL입니다.
compressed_backup_size Numeric(20,0) 디스크에 저장된 백업의 총 바이트 수입니다.

압축 비율을 계산하려면 compressed_backup_sizebackup_size를 사용합니다.

업그레이드하는 msdb 동안 이 값은 NULL로 설정됩니다. 압축되지 않은 백업을 나타냅니다.
key_algorithm nvarchar(32) 백업을 암호화하는 데 사용되는 암호화 알고리즘입니다. NO_Encryption 값은 백업이 암호화되지 않았음을 나타냅니다.
encryptor_thumbprint varbinary(20) 데이터베이스에서 인증서나 비대칭 키를 찾는 데 사용할 수 있는 암호기의 지문입니다. 백업이 암호화되지 않은 경우 이 값은 NULL입니다.
encryptor_type nvarchar(32) 사용되는 암호기 유형으로 인증서 또는 비대칭 키를 반환합니다. 백업이 암호화되지 않은 경우 이 값은 NULL입니다.
last_valid_restore_time 날짜/시간 타임스탬프를 전달하는 로그 레코드에 대한 트랜잭션 로그 백업에 포함된 마지막 트랜잭션 로그 레코드의 타임스탬프입니다. 문에 절이 지정될 때 STOPAT 복원할 마지막 로그 백업을 찾는 데 도움을 줌으로써 복원 계획 생성을 RESTORE LOG 지원합니다. 해당 로그 백업의 last_valid_restore_time 절에 지정된 시간보다 엄격히 큽 수 있습니다 STOPAT . SQL Server 2022(16.x)에서 도입되었습니다.
compression_algorithm nvarchar(32) SQL Server 백업을 만들 때 사용된 압축 알고리즘입니다. SQL Server 2022(16.x)에서 도입되었습니다. 기본값은 MS_XPRESS입니다. 자세한 내용은 BACKUP 압축통합 가속 및 오프로드를 참조하세요.

설명

  • RESTORE VERIFYONLY FROM <backup_device> WITH LOADHISTORY 는 테이블의 backupmediaset 열을 미디어 세트 헤더의 적절한 값으로 채웁니다.
  • 이 테이블과 기타 백업 및 기록 테이블의 행 개수를 줄이려면 sp_delete_backuphistory 저장 프로시저를 실행합니다.
  • SQL Managed Instance의 경우 백업 투명성 및 백업 모니터링 방법을 참조하세요.

예제

백업 기록 쿼리

다음 쿼리는 지난 2개월 동안의 성공적인 백업 정보를 반환합니다.

SELECT bs.database_name,
    backuptype = CASE 
        WHEN bs.type = 'D' AND bs.is_copy_only = 0 THEN 'Full Database'
        WHEN bs.type = 'D' AND bs.is_copy_only = 1 THEN 'Full Copy-Only Database'
        WHEN bs.type = 'I' THEN 'Differential database backup'
        WHEN bs.type = 'L' THEN 'Transaction Log'
        WHEN bs.type = 'F' THEN 'File or filegroup'
        WHEN bs.type = 'G' THEN 'Differential file'
        WHEN bs.type = 'P' THEN 'Partial'
        WHEN bs.type = 'Q' THEN 'Differential partial'
        END + ' Backup',
    CASE bf.device_type
        WHEN 2 THEN 'Disk'
        WHEN 5 THEN 'Tape'
        WHEN 7 THEN 'Virtual device'
        WHEN 9 THEN 'Azure Storage'
        WHEN 105 THEN 'A permanent backup device'
        ELSE 'Other Device'
        END AS DeviceType,
    bms.software_name AS backup_software,
    bs.recovery_model,
    bs.compatibility_level,
    BackupStartDate = bs.Backup_Start_Date,
    BackupFinishDate = bs.Backup_Finish_Date,
    LatestBackupLocation = bf.physical_device_name,
    backup_size_mb = CONVERT(DECIMAL(10, 2), bs.backup_size / 1024. / 1024.),
    compressed_backup_size_mb = CONVERT(DECIMAL(10, 2), bs.compressed_backup_size / 1024. / 1024.),
    database_backup_lsn, -- For tlog and differential backups, this is the checkpoint_lsn of the FULL backup it is based on.
    checkpoint_lsn,
    begins_log_chain,
    bms.is_password_protected
FROM msdb.dbo.backupset bs
LEFT JOIN msdb.dbo.backupmediafamily bf
    ON bs.[media_set_id] = bf.[media_set_id]
INNER JOIN msdb.dbo.backupmediaset bms
    ON bs.[media_set_id] = bms.[media_set_id]
WHERE bs.backup_start_date > DATEADD(MONTH, - 2, sysdatetime()) --only look at last two months
ORDER BY bs.database_name ASC,
    bs.Backup_Start_Date DESC;

다음 단계