최근에 데이터베이스를 복원하기 위해 스크립트를 발견했을 때 왜 " FILE = 1 " 을 사용해야하는지에 대한 의문이 생겼 습니까? 그 진술이 없으면 데이터베이스를 복원 할 수 없습니까!? 기본적으로 무엇을 위해 사용됩니까?
최근에 데이터베이스를 복원하기 위해 스크립트를 발견했을 때 왜 " FILE = 1 " 을 사용해야하는지에 대한 의문이 생겼 습니까? 그 진술이 없으면 데이터베이스를 복원 할 수 없습니까!? 기본적으로 무엇을 위해 사용됩니까?
답변:
백업 파일 (예 : 장치)에 둘 이상의 백업을 저장할 수 있습니다. 이 FILE
절을 사용하면 .bak
파일 내에서 여러 항목을 선택할 수있을 때 특정 백업 작업에 액세스 할 수 있습니다 .
RESTORE 명령 의 다양한 옵션에 대한 자세한 정보 는 RESTORE 인수에 대한 다음 MSDN 문서를 참조하십시오 .
당신은 아래에 보면 백업 세트 옵션 섹션, 당신은 발견 할 것이다 :
파일 = { backup_set_file_number | @ backup_set_file_number }
복원 할 백업 세트를 식별합니다. 예를 들어, backup_set_file_number 의 1 백업 매체 상에 제 백업 세트를 표시하고 backup_set_file_number 의 2 번째 백업 세트를 나타낸다. RESTORE HEADERONLY 문을 사용하여 백업 세트 의 backup_set_file_number 를 얻을 수 있습니다 .
지정하지 않으면 기본값은 1이며, RESTORE HEADERONLY를 제외하고 미디어 세트의 모든 백업 세트가 처리됩니다. 자세한 내용은이 항목 뒷부분의 "백업 세트 지정"을 참조하십시오.
중요 사항
이 FILE 옵션은 데이터베이스 파일을 지정하기위한 FILE 옵션과 관련이 없습니다. FILE = { logical_file_name_in_backup | @ logical_file_name_in_backup_var }.
예, 어쨌든 기본값 은 FILE = 1
그대로 유지 하면서 복원 할 수 있어야 1
합니다. 또한 백업 파일에 단일 백업 세트 만있는 경우 문제가되지 않습니다.
FILE
옵션 사용시기를 설명하는 예제 는 다음과 같습니다 . RESTORE 명령 MSDN 페이지 (위에 링크 됨)의 예 B 입니다. 단일 백업 파일에서 두 가지 복원을 수행하는 것을 보여줍니다. 첫 번째 RESTORE
는 FULL 백업이고 두 번째 RESTORE
는 DIFFerential 백업입니다.
RESTORE DATABASE AdventureWorks2012
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'
WITH FILE = 6
NORECOVERY;
RESTORE DATABASE AdventureWorks2012
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'
WITH FILE = 9
RECOVERY;