RESTORE HEADERONLY(Transact-SQL)
특정 백업 장치의 모든 백업 세트에 대한 백업 헤더 정보를 모두 포함하는 결과 집합을 반환합니다.
[!참고]
인수에 대한 설명은 RESTORE 인수(Transact-SQL)를 참조하십시오.
구문
RESTORE HEADERONLY
FROM <backup_device>
[ WITH
{
--Backup Set Options
FILE = { backup_set_file_number | @backup_set_file_number }
| PASSWORD = { password | @password_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 } = { 'physical_backup_device_name' |
@physical_backup_device_name_var }
}
결과 집합
지정한 장치의 각 백업에 대해 서버는 다음 열을 가진 헤더 정보 행을 보냅니다.
[!참고]
RESTORE HEADERONLY는 미디어에 있는 모든 백업 세트를 확인합니다. 따라서 고용량 테이프 드라이브를 사용할 때 이 결과 집합을 생성하면 시간이 오래 걸릴 수 있습니다. 모든 백업 세트에 대한 정보를 가져오지 않고 미디어를 신속하게 확인하려면 RESTORE LABELONLY를 사용하거나 FILE =backup_set_file_number를 지정합니다.
[!참고]
Microsoft Tape Format의 특성 때문에 다른 소프트웨어 프로그램의 백업 세트가 MicrosoftSQL Server 백업 세트와 동일한 크기의 미디어의 공간을 차지할 수 있습니다. RESTORE HEADERONLY에서 반환한 결과 집합에는 각각의 다른 백업 세트에 대한 행이 포함되어 있습니다.
열 이름 |
데이터 형식 |
SQL Server 백업 세트에 대한 설명 |
다른 백업 세트에 대한 설명 |
---|---|---|---|
BackupName |
nvarchar(128) |
백업 세트 이름 |
데이터 세트 이름 |
BackupDescription |
nvarchar(255) |
백업 세트 설명 |
데이터 세트 설명 |
BackupType |
smallint |
백업 유형 1 = 데이터베이스 2 = 트랜잭션 로그 4 = 파일 5 = 차등 데이터베이스 6 = 차등 파일 7 = 부분 8 = 차등 부분 |
백업 유형 1 = 보통 5 = 차등 16 = 증분 17 = 매일 |
ExpirationDate |
datetime |
백업 세트에 대한 만료 일자 |
NULL |
Compressed |
BYTE(1) |
소프트웨어 기반 압축을 사용하여 백업 세트를 압축했는지 여부 0 = 아니요 1 = 예 |
소프트웨어 기반 압축을 사용하여 백업 세트를 압축했는지 여부 0 = 아니요 1 = 예 |
위치 |
smallint |
볼륨에 있는 백업 세트의 위치(FILE = 옵션과 함께 사용) |
볼륨에 있는 백업 세트의 위치 |
DeviceType |
tinyint |
백업 작업에 사용된 장치 번호 디스크 2 = 논리적 102 = 물리적 테이프 5 = 논리적 105 = 물리적 가상 장치 7 = 논리적 107 = 물리적 논리적 장치 이름과 장치 번호는 sys.backup_devices에 있습니다. 자세한 내용은 sys.backup_devices(Transact-SQL)를 참조하십시오. |
NULL |
UserName |
nvarchar(128) |
백업 작업을 수행한 사용자 이름 |
백업 작업을 수행한 사용자 이름 |
ServerName |
nvarchar(128) |
백업 세트를 작성한 서버 이름 |
NULL |
DatabaseName |
nvarchar(128) |
백업한 데이터베이스 이름 |
NULL |
DatabaseVersion |
int |
백업을 만든 데이터베이스의 버전 |
NULL |
DatabaseCreationDate |
datetime |
데이터베이스를 만든 날짜와 시간 |
NULL |
BackupSize |
numeric(20,0) |
바이트 단위의 백업 크기 |
NULL |
FirstLSN |
numeric(25,0) |
백업 세트에 있는 첫 번째 로그 레코드의 로그 시퀀스 번호입니다. |
NULL |
LastLSN |
numeric(25,0) |
백업 세트 다음에 오는 로그 레코드의 로그 시퀀스 번호입니다. |
NULL |
CheckpointLSN |
numeric(25,0) |
백업을 만들 때 가장 최근 검사점의 로그 시퀀스 번호. |
NULL |
DatabaseBackupLSN |
numeric(25,0) |
가장 최근의 전체 데이터베이스 백업의 로그 시퀀스 번호입니다. DatabaseBackupLSN은 백업이 시작될 때 트리거되는 "검사점의 시작"입니다. 데이터베이스가 유휴 상태이고 복제가 구성되지 않은 경우 백업이 수행되면 이 LSN은 FirstLSN과 일치하게 됩니다. |
NULL |
BackupStartDate |
datetime |
백업 작업이 시작된 날짜와 시간 |
미디어 기록 날짜 |
BackupFinishDate |
datetime |
백업 작업이 완료된 날짜와 시간 |
미디어 기록 날짜 |
SortOrder |
smallint |
서버 정렬 순서. 이 열은 데이터베이스 백업에만 유효하고 이전 버전과의 호환성을 위해 제공됩니다. |
NULL |
CodePage |
smallint |
서버 코드 페이지 또는 서버에서 사용한 문자 집합 |
NULL |
UnicodeLocaleId |
int |
유니코드 문자 데이터 정렬에 사용한 서버 유니코드 로캘 ID 구성 옵션. 이전 버전과의 호환성을 위해 제공됩니다. |
NULL |
UnicodeComparisonStyle |
int |
유니코드 데이터 정렬에 대한 추가 제어를 제공하는 서버 유니코드 비교 스타일 구성 옵션. 이전 버전과의 호환성을 위해 제공됩니다. |
NULL |
CompatibilityLevel |
tinyint |
백업을 만들 데이터베이스의 호환성 수준 설정 |
NULL |
SoftwareVendorId |
int |
소프트웨어 공급업체 ID. SQL Server의 경우 이 번호는 4608(또는 0x1200 16진수)입니다. |
소프트웨어 공급업체 ID |
SoftwareVersionMajor |
int |
백업 세트를 만든 서버의 주 버전 번호 |
백업 세트를 만든 소프트웨어의 주 버전 번호 |
SoftwareVersionMinor |
int |
백업 세트를 만든 서버의 부 버전 번호 |
백업 세트를 만든 소프트웨어의 부 버전 번호 |
SoftwareVersionBuild |
int |
백업 세트를 만든 서버의 빌드 번호 |
NULL |
MachineName |
nvarchar(128) |
백업 작업을 수행한 컴퓨터의 이름 |
백업 작업을 수행한 컴퓨터의 유형 |
Flags |
int |
1로 설정된 경우 개별 플래그 비트의 의미는 다음과 같습니다. 1 = 로그 백업에 대량 로그 작업이 포함됩니다. 2 = 스냅숏 백업입니다. 4 = 데이터베이스가 읽기 전용으로 백업되었습니다. 8 = 데이터베이스가 단일 사용자 모드로 백업되었습니다. 16 =백업에 백업 체크섬을 포함합니다. 32 = 백업 시 데이터베이스가 손상되었으나 오류가 있더라도 백업 작업을 계속하도록 요청했습니다. 64 = 비상 로그 백업입니다. 128 = 메타데이터가 완전하지 않은 비상 로그 백업입니다. 256 = NORECOVERY 상태의 비상 로그 백업입니다.
중요
Flags 대신 개별 Boolean 열을 사용하는 것이 좋습니다. 이 열은 아래의 HasBulkLoggedData부터 IsCopyOnly까지 나열되어 있습니다.
|
NULL |
BindingID |
uniqueidentifier |
데이터베이스에 대한 바인딩 ID입니다. 이 열은 sys.databasesdatabase_guid에 해당됩니다. 데이터베이스를 복원하면 새 값이 할당됩니다. 아래의 FamilyGUID를 참조하십시오. |
NULL |
RecoveryForkID |
uniqueidentifier |
복구 분기 끝 지점의 ID입니다. 이 열은 backupset 테이블의 last_recovery_fork_guid에 해당됩니다. 데이터 백업의 경우 RecoveryForkID가 FirstRecoveryForkID와 동일합니다. |
NULL |
데이터 정렬 |
nvarchar(128) |
데이터베이스에서 사용한 데이터 정렬 |
NULL |
FamilyGUID |
uniqueidentifier |
생성된 원본 데이터베이스의 ID입니다. 이 값은 데이터베이스가 복구될 때와 동일하게 유지됩니다. |
NULL |
HasBulkLoggedData |
bit |
1 = 대량 로그 작업을 포함하는 로그 백업입니다. |
NULL |
IsSnapshot |
bit |
1 = 스냅숏 백업입니다. |
NULL |
IsReadOnly |
bit |
1 = 데이터베이스가 읽기 전용으로 백업되었습니다. |
NULL |
IsSingleUser |
bit |
1 = 데이터베이스가 단일 사용자 모드로 백업되었습니다. |
NULL |
HasBackupChecksums |
bit |
1 =백업에 백업 체크섬을 포함합니다. |
NULL |
IsDamaged |
bit |
1 = 백업 시 데이터베이스가 손상되었으나 오류가 있더라도 백업 작업을 계속하도록 요청했습니다. |
NULL |
BeginsLogChain |
bit |
1 = 연속되는 로그 백업 체인에서 첫 번째 체인입니다. 로그 체인은 데이터베이스가 생성된 후 또는 단순 복구 모델에서 전체 또는 대량 로그 복구 모델로 전환될 때 수행된 첫 번째 로그 백업에서 시작됩니다. |
NULL |
HasIncompleteMetaData |
bit |
1 = 메타데이터가 완전하지 않은 비상 로그 백업입니다. 백업 메타데이터가 완전하지 않은 비상 로그 백업에 대한 자세한 내용은 비상 로그 백업를 참조하십시오. |
NULL |
IsForceOffline |
bit |
1 = NORECOVERY 옵션으로 수행된 백업이며 데이터베이스는 백업에 의해 오프라인 상태가 됩니다. |
NULL |
IsCopyOnly |
bit |
1 = 복사 전용 백업입니다. 복사 전용 백업은 백업 전체에 영향을 주지 않고 데이터베이스에 대한 프로시저를 복원합니다. 자세한 내용은 복사 전용 백업을 참조하십시오. |
NULL |
FirstRecoveryForkID |
uniqueidentifier |
복구 분기 시작 지점의 ID입니다. 이 열은 backupset 테이블의 first_recovery_fork_guid에 해당됩니다. 데이터 백업의 경우 FirstRecoveryForkID가 RecoveryForkID와 동일합니다. |
NULL |
ForkPointLSN |
numeric(25,0) NULL |
FirstRecoveryForkID가 RecoveryForkID와 다른 경우 이 열은 분기 지점의 로그 시퀀스 번호입니다. 그렇지 않은 경우 이 값은 NULL입니다. |
NULL |
RecoveryModel |
nvarchar(60) |
데이터베이스의 복구 모델이며 다음 중 하나입니다. FULL BULK-LOGGED SIMPLE |
NULL |
DifferentialBaseLSN |
numeric(25,0) NULL |
단일 백업을 기준으로 하는 차등 백업의 경우 이 값은 차등 기반의 FirstLSN과 같으며 DifferentialBaseLSN보다 크거나 같도록 LSN을 변경하면 차등 백업에 포함됩니다. 여러 백업을 기반으로 하는 차등 백업의 경우 값은 NULL이며 기본 LSN은 파일 수준에서 결정해야 합니다. 자세한 내용은 RESTORE FILELISTONLY(Transact-SQL)를 참조하십시오. 비 차등 백업 유형의 경우 값은 항상 NULL입니다. 자세한 내용은 차등 백업의 기반을 참조하십시오. |
NULL |
DifferentialBaseGUID |
uniqueidentifier |
단일 백업을 기준으로 하는 차등 백업의 경우 값은 차등 기반의 고유 식별자입니다. 여러 백업을 기반으로 하는 차등 백업의 경우 값은 NULL이며 기본 차등 백업은 파일 단위로 결정해야 합니다. 비 차등 백업 유형의 경우 값은 NULL입니다. |
NULL |
BackupTypeDescription |
nvarchar(60) |
백업 유형이 문자열인 경우 다음 중 하나입니다. DATABASE TRANSACTION LOG FILE OR FILEGROUP DATABASE DIFFERENTIAL FILE DIFFERENTIAL PARTIAL PARTIAL DIFFERENTIAL |
백업 유형이 문자열인 경우 다음 중 하나입니다. NORMAL DIFFERENTIAL INCREMENTAL DAILY |
BackupSetGUID |
uniqueidentifier NULL |
미디어에서 식별의 기준이 되는 백업 세트의 고유 ID입니다. |
NULL |
CompressedBackupSize |
uint64 |
백업 세트의 바이트 수입니다. 압축되지 않은 백업의 경우 이 값은 BackupSize와 같습니다. 압축 비율을 계산하려면 CompressedBackupSize 및 BackupSize를 사용합니다. msdb 업그레이드 동안 이 값은 BackupSize 열의 값과 일치하도록 설정됩니다. |
NULL |
[!참고]
백업 세트에 대한 암호를 정의한 경우 RESTORE HEADERONLY는 명령의 지정한 PASSWORD 옵션과 일치하는 암호의 백업 세트에 대한 정보만 모두 표시합니다. RESTORE HEADERONLY는 보호되지 않은 백업 세트에 대한 정보도 모두 표시합니다. 암호로 보호된 미디어의 다른 백업 세트에 대한 BackupName 열은 '***암호로 보호됨***'으로 설정되고 다른 열은 모두 NULL이 됩니다.
주의
클라이언트는 RESTORE HEADERONLY를 사용하여 특정 백업 장치의 모든 백업에 대한 백업 헤더 정보를 모두 검색합니다. 서버는 백업 장치의 각 백업에 대한 헤더 정보를 행으로 보냅니다.
사용 권한
SQL Server 2008부터는 백업 세트나 백업 장치에 대한 정보를 얻으려면 CREATE DATABASE 권한이 필요합니다. 자세한 내용은 GRANT 데이터베이스 사용 권한(Transact-SQL)을 참조하십시오.
백업 작업은 미디어 세트, 백업 세트 또는 이 둘 모두에 대해 암호를 지정할 수 있습니다. 미디어 세트나 백업 세트에 암호가 정의되어 있는 경우 RESTORE 문에서 정확한 암호를 지정해야 합니다. 이러한 암호를 지정하면 MicrosoftSQL Server 도구를 사용하여 무단으로 복원 작업을 수행하거나 미디어에 백업 세트를 무단으로 추가하는 작업을 방지할 수 있습니다. 하지만 암호를 사용해도 BACKUP 문의 FORMAT 옵션을 사용하여 미디어를 덮어쓰는 작업은 수행됩니다.
보안 정보 |
---|
이 암호에 의한 보호 수준은 낮습니다. 이 보호 수준에서는 권한 유무에 관계없이 사용자가 SQL Server 도구를 사용하여 잘못된 복원을 수행하는 것이 방지됩니다. 다른 수단을 사용한 백업 데이터 읽기나 암호 바꾸기를 방지하지는 않습니다. Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오. 백업을 보호하는 최상의 방법은 백업 테이프를 안전한 장소에 보관하거나 적합한 ACL(액세스 제어 목록)로 보호되는 디스크 파일에 백업하는 것입니다. ACL은 백업이 만들어지는 디렉터리 루트에 설정해야 합니다. |
예
다음 예에서는 디스크 파일 C:\AdventureWorks-FullBackup.bak에 대한 헤더 정보를 반환합니다.
RESTORE HEADERONLY
FROM DISK = N'C:\AdventureWorks-FullBackup.bak'
WITH NOUNLOAD;
GO