DB를 백업할 떄 확장자를 걸어줬어야 하는데 걸지 않아서 파일이 로그파일과 BAK파일로 분할된 거 같다.
----------------------------------------------------------------------------------------------------------------
방법: 1
미디어 세트에 2개의 미디어가 있지만 1개만 제공하고 있습니다. 모든 멤버를 제공해야 합니다.
백업파일이 2개로 만들어졌는데, 1개만 지정해서 발생한 오류이다.
백업파일이 몇 개로 만들어졌는지 확인하기 위해 아래의 쿼리문을 실행하면 된다.
RESTORE LABELONLY FROM DISK = 'D:\DBA.bak' |
FamilyCount가 필요한 백업파일의 개수이다.
두 파일을 지정해야만 정상적으로 파일이 복원된다.
RESTORE DATABASE DBA FILE = N'DBA' FROM DISK = N'D:\DB_Backup\DBA.bak', DISK = N'D:\DB_Backup\DBA' GO |
왜 미디어 세트에 2개의 미디어가 생성되었는가?
백업할 때 백업할 위치의 파일명에 확장자를 적지 않아 확장자를 포함하여 한개 더 추가하여 백업한 결과 미디어 세트가 2개가 되었다.
대상에 백업할 위치의 개수만큼 미디어 세트의 개수가 늘어난다.
출처: http://lovedb.tistory.com/272 [More haste, less speed]
====================================================================
방법 2:
"미디어 세트에 2개의 미디어 패밀리가 있지만 1개만 제공하고 있습니다. 모든 멤버를 제공해야 합니다."
오류발생.....
쿼리창에서 다음과 같이 명령을 실행시키셔서 백업 파일 셋트의 수를 확인해 보시기 바랍니다.
RESTORE LABELONLY FROM DISK='d:\TestDB1.bak'
위의 명령을 수행한 결과 중, FamilyCount가 백업을 할 때의 파일 (or 미디어)의 수를 의미합니다.
다음과 같은 예제로 설명드리겠습니다.
--데이터베이스 생성
CREATE DATABASE TestDB
ON (name='data1', filename='d:\data1.mdf')
LOG ON (name='log', filename='d:\log.ldf')
GO
--백업 수행(D:\Test1.bak, D:\Test2.bak에 나누어서 백업)
BACKUP DATABASE TestDB TO DISK='d:\TestDB1.bak' , DISK='d:\TestDB2.bak' WITH INIT
GO
--기존 데이터베이스 삭제
DROP DATABASE TestDB
GO
즉, TestDB라는 데이터베이스는 TestDB1.bak와 TestDB2.bak 라는 두 개의 파일에 백업이 되었습니다.
이 백업 파일을 이용해서 복원을 할 경우, 두 개의 파일 모두를 지정해야 제대로 되며, 하나만 지정해서 복원할 경우, 말씀하신 것과 같은 에러가 발생합니다.
이는 Management Studio에서도 동일합니다.
이 경우, 장치 부분에서 나머지 백업 파일을 지정해야 에러 없이 복원이 가능합니다.
처음에 백업을 받았을 때, 파일 또는 미디어들이 어떻게 설정되어 있는지 확인하시고, 복원시 이를 모두 지정해 주시기 바랍니다.
발줴 : http://blog.naver.com/mok30224?Redirect=Log&logNo=40050168231
'DB > MSSQL' 카테고리의 다른 글
[MSSQL]데이터 파일(.mdf/.ndf)과 로그파일(.ldf) (0) | 2018.04.13 |
---|---|
[MSSQL]LDF/MDF파일 DB복원 방법 (0) | 2018.03.18 |
[MSSQL] 계정 만들기 (0) | 2018.03.18 |
[MSSQL]DB 백업 및 복원 (0) | 2018.03.18 |