RESTORE 문 - HEADERONLY(Transact-SQL)

적용 대상:SQL ServerAzure SQL Managed Instance

SQL Server에서 특정 백업 디바이스의 모든 백업 세트에 대한 백업 헤더 정보를 모두 포함하는 결과 집합을 반환합니다.

참고

인수에 대한 자세한 설명은 RESTORE 인수(Transact-SQL)를 참조하세요.

Transact-SQL 구문 표기 규칙

Syntax

RESTORE HEADERONLY
FROM <backup_device>
[ WITH
    {
    -- Backup set options
    FILE = { backup_set_file_number | @backup_set_file_number }
    | PASSWORD = { password | @password_variable }
    | [ METADATA_ONLY | SNAPSHOT ] [ DBNAME = { database_name | @database_name_variable } ]

    -- Media set options
    | MEDIANAME = { media_name | @media_name_variable }
    | MEDIAPASSWORD = { mediapassword | @mediapassword_variable }

    -- Error management options
    | { CHECKSUM | NO_CHECKSUM }
    | { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

    -- Tape options
    | { REWIND | NOREWIND }
    | { UNLOAD | NOUNLOAD }
    } [ , ...n ]
]
[ ; ]

<backup_device> ::=
{
   { logical_backup_device_name |
     @logical_backup_device_name_var }
   | { DISK | TAPE | URL } = { 'physical_backup_device_name' |
       @physical_backup_device_name_var }
}

참고 항목

URL 는 Azure Blob Storage의 위치 및 파일 이름을 지정하는 데 사용되는 형식이며 SQL Server 2012(11.x) SP 1 CU 2부터 지원됩니다. Azure Storage는 서비스이지만 구현은 디스크 및 테이프와 유사하므로 세 디바이스 모두에 대해 일관되고 원활한 복원 환경을 사용할 수 있습니다.

인수

인수에 대한 설명은 RESTORE HEADERONLY RESTORE 인수(Transact-SQL)를 참조하세요.

결과 집합

지정한 디바이스의 각 백업에 대해 서버는 다음 열을 가진 헤더 정보 행을 보냅니다.

열 이름 데이터 형식 SQL Server 백업 세트에 대한 설명
BackupName1 nvarchar(128) 백업 세트 이름
BackupDescription nvarchar(255) 백업 세트 설명입니다. NULL일 수 있습니다.
BackupType smallint 백업 유형:

1 = 데이터베이스
2 = 트랜잭션 로그
4 = 파일
5 = 차등 데이터베이스
6 = 차등 파일
7 = 부분
8 = 차등 부분
ExpirationDate 날짜/시간 백업 세트에 대한 만료 일자
Compressed bit 소프트웨어 기반 압축을 사용하여 백업 세트를 압축했는지 여부

0 = 아니요
1 = 예
Position smallint 볼륨에 있는 백업 세트의 위치(FILE = 옵션과 함께 사용)
DeviceType tinyint 백업 작업에 사용된 디바이스 번호

디스크:

- 2 = 논리
- 102 = 물리적

테이프

- 5 = 논리
- 105 = 물리적

가상 디바이스

- 7 = 논리
- 107 = 물리적

URL:

- 9 = 논리
- 109 = 물리적

논리 디바이스 이름 및 디바이스 번호는 .에 있습니다 sys.backup_devices. 자세한 내용은 sys.backup_devices 참조하세요.
UserName nvarchar(128) 백업 작업을 수행한 사용자 이름
ServerName nvarchar(128) 백업 세트를 작성한 서버 이름
DatabaseName nvarchar(128) 백업한 데이터베이스 이름
DatabaseVersion int 백업을 만든 데이터베이스의 버전
DatabaseCreationDate 날짜/시간 데이터베이스를 만든 날짜와 시간
BackupSize numeric(20,0) 바이트 단위의 백업 크기
FirstLSN numeric(25,0) 백업 세트에 있는 첫 번째 로그 레코드의 로그 시퀀스 번호
LastLSN numeric(25,0) 백업 세트 다음에 오는 로그 레코드의 로그 시퀀스 번호입니다.
CheckpointLSN numeric(25,0) 백업 생성 시 가장 최근 검사점의 로그 시퀀스 번호
DatabaseBackupLSN numeric(25,0) 가장 최근 전체 데이터베이스 백업의 로그 시퀀스 번호입니다.

DatabaseBackupLSN는 백업이 시작될 때 트리거되는 "검사포인트의 시작"입니다. 이 LSN은 데이터베이스가 유휴 상태이고 복제본(replica) 구성되지 않은 경우 백업이 수행되는 경우와 FirstLSN 일치합니다.
BackupStartDate 날짜/시간 백업 작업이 시작된 날짜와 시간
BackupFinishDate 날짜/시간 백업 작업이 완료된 날짜와 시간
SortOrder smallint 서버 정렬 순서. 이 열은 데이터베이스 백업에만 유효하고 이전 버전과의 호환성을 위해 제공됩니다.
CodePage smallint 서버 코드 페이지 또는 서버에서 사용한 문자 집합
UnicodeLocaleId int 유니코드 문자 데이터 정렬에 사용한 서버 유니코드 로캘 ID 구성 옵션. 이전 버전과의 호환성을 위해 제공됩니다.
UnicodeComparisonStyle int 유니코드 데이터 정렬에 대한 추가 제어를 제공하는 서버 유니코드 비교 스타일 구성 옵션. 이전 버전과의 호환성을 위해 제공됩니다.
CompatibilityLevel tinyint 백업을 만든 데이터베이스의 호환성 수준 설정
SoftwareVendorId int 소프트웨어 공급업체 ID. SQL Server의 경우 이 숫자는 (또는 16진수0x1200)입니다 4608 .
SoftwareVersionMajor int 백업 세트를 만든 서버의 주 버전 번호
SoftwareVersionMinor int 백업 세트를 만든 서버의 부 버전 번호
SoftwareVersionBuild int 백업 세트를 만든 서버의 빌드 번호
MachineName nvarchar(128) 백업 작업을 수행한 컴퓨터의 이름
Flags int 개별 플래그 비트 의미:

- 1 = 로그 백업에 대량 로그 작업이 포함됩니다.

- 2 = 스냅샷 백업.

- 4 = 백업할 때 데이터베이스가 읽기 전용이었습니다.

- 8 = 데이터베이스가 백업할 때 단일 사용자 모드에 있었습니다.

- 16 = 백업에 백업 검사 합계가 포함됩니다.

- 32 = 백업할 때 데이터베이스가 손상되었지만 오류에도 불구하고 백업 작업을 계속하도록 요청되었습니다.

- 64 = 비상 로그 백업.

- 128 = 불완전한 메타데이터가 있는 비상 로그 백업입니다.

- 256 = NORECOVERY를 사용한 비상 로그 백업

중요: 개별 부울 열(이 표에서 시작 HasBulkLoggedData 및 끝IsCopyOnly)을 사용하는 대신 Flags 사용하는 것이 좋습니다.
BindingID uniqueidentifier 데이터베이스에 대한 바인딩 ID. 이 값은 in에 sys.database_recovery_status해당합니다database_guid. 데이터베이스를 복원하면 새 값이 할당됩니다. 또한 FamilyGUID도 참조하세요.
RecoveryForkID uniqueidentifier 복구 분기 끝 지점의 ID. 이 열은 last_recovery_fork_guid백업 세트 테이블에 해당합니다.

데이터 백업의 RecoveryForkID 경우 같음.FirstRecoveryForkID
Collation nvarchar(128) 데이터베이스에서 사용한 데이터 정렬
FamilyGUID uniqueidentifier 생성된 원본 데이터베이스의 ID. 이 값은 데이터베이스가 복구될 때와 동일하게 유지됩니다.
HasBulkLoggedData bit 1 = 대량 로그 작업을 포함하는 로그 백업입니다.
IsSnapshot bit 1 = 스냅샷 백업입니다.
IsReadOnly bit 1 = 데이터베이스가 읽기 전용으로 백업되었습니다.
IsSingleUser bit 1 = 데이터베이스가 단일 사용자 모드로 백업되었습니다.
HasBackupChecksums bit 1 = 백업이 백업 체크섬을 포함합니다.
IsDamaged bit 1 = 백업 시 데이터베이스가 손상되었으나 오류가 있더라도 백업 작업을 계속하도록 요청했습니다.
BeginsLogChain bit 1 = 연속되는 로그 백업 체인에서 첫 번째 체인입니다. 로그 체인은 데이터베이스를 만든 후 또는 단순에서 전체 또는 대량 로그 복구 모델로 전환할 때 수행되는 첫 번째 로그 백업으로 시작합니다.
HasIncompleteMetaData bit 1 = 불완전한 메타데이터가 있는 비상 로그 백업입니다.

백업 메타데이터가 완전하지 않은 비상 로그 백업에 대한 자세한 내용은 비상 로그 백업 (SQL Server)를 참조하세요.
IsForceOffline bit 1 = NORECOVERY 옵션으로 수행된 백업이며 데이터베이스는 백업에 의해 오프라인 상태가 되었습니다.
IsCopyOnly bit 1 = 복사 전용 백업입니다.

복사 전용 백업은 데이터베이스에 대한 전체 백업 및 복원 절차에 영향을 주지 않습니다. 자세한 내용은 복사 전용 백업(SQL Server)을 참조하세요.
FirstRecoveryForkID uniqueidentifier 복구 분기 시작 지점의 ID. 이 열은 first_recovery_fork_guid백업 세트 테이블에 해당합니다.

데이터 백업의 FirstRecoveryForkID 경우 같음.RecoveryForkID
ForkPointLSN numeric(25,0) 같지 RecoveryForkID않은 경우 FirstRecoveryForkID 이 값은 포크 지점의 로그 시퀀스 번호입니다. 그렇지 않은 경우 이 값은 NULL입니다.
RecoveryModel nvarchar(60) 데이터베이스에 대한 복구 모델( 다음 중 하나)

-전체
- 대량 로그
-간단한
DifferentialBaseLSN numeric(25,0) 단일 기반 차등 백업의 경우 값은 FirstLSN 차등 기반의 값과 같습니다. LSN이 크거나 같은 DifferentialBaseLSN 변경 내용은 차등에 포함됩니다.

여러 백업을 기반으로 하는 차등 백업의 경우 값은 NULL이며 기본 LSN은 파일 수준에서 결정해야 합니다. 자세한 내용은 RESTORE FILELISTONLY를 참조하세요.

비 차등 백업 유형의 경우 값은 항상 NULL입니다.

자세한 내용은 차등 백업(SQL Server)을 참조하세요.
DifferentialBaseGUID uniqueidentifier 단일 백업을 기준으로 하는 차등 백업의 경우 값은 차등 기반의 고유 식별자입니다.

여러 백업을 기반으로 하는 차등 백업의 경우 값은 NULL이며 기본 차등 백업은 파일 단위로 결정해야 합니다.

비 차등 백업 유형의 경우 값은 NULL입니다.
BackupTypeDescription nvarchar(60) 백업 유형이 문자열인 경우 다음 중 하나입니다.

-데이터베이스
- 트랜잭션 로그
- FILE 또는 FILEGROUP
- 데이터베이스 차등
- 파일 차등 부분
- 부분 차등
BackupSetGUID uniqueidentifier 미디어에서 식별의 기준이 되는 백업 세트의 고유 ID NULL일 수 있습니다.
CompressedBackupSize bigint 백업 세트의 바이트 수. 압축되지 않은 백업의 경우 이 값은 BackupSize.

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

업그레이드하는 msdb 동안 이 값은 열 값과 일치하도록 설정됩니다 BackupSize .
containment tinyint 적용 대상: SQL Server 2012(11.x) 이상 버전.

데이터베이스의 포함 상태를 나타냅니다.

0 = 데이터베이스가 포함되지 않습니다.
1 = 데이터베이스가 부분적으로 포함됩니다.
KeyAlgorithm nvarchar(32) 적용 대상: SQL Server 2014(12.x) CU 1 이상 버전.

백업을 암호화하는 데 사용되는 암호화 알고리즘입니다. NO_Encryption 백업이 암호화되지 않았음을 나타냅니다. 올바른 값을 확인할 수 없는 경우 값은 NULL이어야 합니다.
EncryptorThumbprint varbinary(20) 적용 대상: SQL Server 2014(12.x) CU 1 이상 버전.

데이터베이스에서 인증서 또는 비대칭 키를 찾는 데 사용할 수 있는 암호화기의 지문입니다. 백업이 암호화되지 않은 경우 이 값은 NULL입니다.
EncryptorType nvarchar(32) 적용 대상: SQL Server 2014(12.x) CU 1 이상 버전.

사용되는 암호기 유형으로 인증서 또는 비대칭 키를 반환합니다. 백업이 암호화되지 않은 경우 이 값은 NULL입니다.
LastValidRestoreTime 날짜/시간 적용 대상: SQL Server 2022(16.x) 이상 버전

마지막 유효한 복원 시간입니다.
TimeZone nvarchar(32) 적용 대상: SQL Server 2022(16.x) 이상 버전

백업이 수행된 서버의 표준 시간대입니다.
CompressionAlgorithm nvarchar(32) 적용 대상: SQL Server 2022(16.x) 이상 버전

백업 파일을 압축하는 데 사용되는 압축 알고리즘을 식별합니다. 기본값은 MS_XPRESS입니다. 자세한 내용은 BACKUP을 참조하세요.

1 백업 집합 RESTORE HEADERONLY 에 대해 암호가 정의된 경우 암호가 명령의 지정된 PASSWORD 옵션과 일치하는 백업 집합에 대한 전체 정보만 표시합니다. RESTORE HEADERONLY 또한 보호되지 않는 백업 집합에 대한 전체 정보를 표시합니다. BackupName 미디어의 다른 암호로 보호된 백업 집합에 대한 열이 NULL로 설정'Password Protected'되고 다른 모든 열은 NULL입니다.

설명

클라이언트는 특정 백업 디바이스의 모든 백업에 대한 모든 백업 헤더 정보를 검색하는 데 사용할 RESTORE HEADERONLY 수 있습니다. 서버는 백업 디바이스의 각 백업에 대한 헤더 정보를 행으로 보냅니다.

RESTORE HEADERONLY 는 미디어의 모든 백업 집합을 확인합니다. 따라서 고용량 테이프 드라이브를 사용할 때 이 결과 집합을 생성하면 시간이 오래 걸릴 수 있습니다. 모든 백업 세트에 대한 정보를 가져오지 않고 미디어를 빠르게 확인하려면 다음을 사용 RESTORE LABELONLY 하거나 지정합니다 FILE = <backup_set_file_number>.

Microsoft 테이프 형식의 특성상 다른 소프트웨어 프로그램의 백업 세트가 SQL Server 백업 세트와 동일한 미디어의 공간을 차지할 수 있습니다. 반환된 RESTORE HEADERONLY 결과 집합에는 이러한 각 백업 집합에 대한 행이 포함됩니다.

보안

필요한 경우 백업 작업에서 미디어 세트, 백업 세트 또는 이 둘 모두에 대해 암호를 지정할 수 있습니다. 미디어 세트나 백업 세트에 암호가 정의되어 있는 경우 RESTORE 문에서 정확한 암호를 지정해야 합니다. 해당 암호를 지정하면 SQL Server 도구를 사용하여 무단으로 복원 작업을 수행하거나 미디어에 백업 세트를 무단으로 추가하는 작업을 방지할 수 있습니다. 그러나 암호는 BACKUP 문의 FORMAT 옵션을 사용하여 미디어를 덮어쓰는 것을 방지하지 않습니다.

Important

이 암호에 의한 보호 수준은 낮습니다. 권한 유무에 관계없이 사용자가 SQL Server 도구를 사용하여 잘못된 복원을 수행하는 것을 방지합니다. 다른 수단을 사용한 백업 데이터 읽기나 암호 바꾸기를 방지하지는 않습니다. 이 기능은 이후 버전의 SQL Server에서 제거됩니다. 새 개발 작업에서 이 기능을 사용하지 않고 현재 이 기능을 사용하는 애플리케이션을 수정할 계획입니다. 백업을 보호하는 모범 사례는 백업 테이프를 안전한 위치에 보관하거나 적절한 ACL(액세스 제어 목록)로 보호되는 디스크 파일에 백업하는 것입니다. ACL은 백업이 만들어지는 디렉터리 루트에 설정해야 합니다.

사용 권한

백업 세트나 백업 디바이스에 대한 정보를 얻으려면 CREATE DATABASE 권한이 필요합니다. 자세한 내용은 GRANT 데이터베이스 사용 권한(Transact-SQL)을 참조하세요.

예제

다음 예에서는 디스크 파일 C:\AdventureWorks-FullBackup.bak에 대한 헤더 정보를 반환합니다.

RESTORE HEADERONLY
FROM DISK = N'C:\AdventureWorks-FullBackup.bak';
GO

참고 항목