데이터베이스의 SQL Server 백업 파일을 복원하려고하는데 다음과 같이 오류가 발생합니다.
백업 세트는 기존 이외의 데이터베이스 백업을 보유합니다.
SQL Server 2008의 내 데이터베이스와 백업 파일은 2005입니다.
무엇이 문제가 될 수 있습니까?
데이터베이스의 SQL Server 백업 파일을 복원하려고하는데 다음과 같이 오류가 발생합니다.
백업 세트는 기존 이외의 데이터베이스 백업을 보유합니다.
SQL Server 2008의 내 데이터베이스와 백업 파일은 2005입니다.
무엇이 문제가 될 수 있습니까?
답변:
나도이 문제를 만났다.
해결책 :
.bak
파일을 복원하십시오 .어느 한 쪽:
1) 명령을 사용 WITH REPLACE
하는 동안 사용하십시오 RESTORE
(GUI를 사용하는 경우 옵션-> 기존 데이터베이스 겹쳐 쓰기 ( WITH REPLACE
)에 있음).
2) Delete
충돌하는 이전 데이터베이스이며 RESTORE
명령을 사용하여 다시 복원하십시오 .
자세한 내용 은 링크 를 확인 하십시오.
원본 의 .mdf
및 .ldf
파일 이 Db
있을 수 있으며이 c:\programFile\....
정보가 백업에 저장 되었기 때문입니다 .
설치가있는 다른 SQL Server에서 동일한 DB를 작성하면 c:\program Files (x86)\ ....
평소대로 복원 할 수 없습니다. .mdf
및 .ldf
파일 의 경로를 재배치해야합니다 .
따라서:
새 서버에서 빈 DB를 만듭니다.
비어있는 Db> 작업> 복원> 데이터베이스를 마우스 오른쪽 단추로 클릭하고 장치를 클릭 한 다음 .bak
파일을 선택하고 Db를 선택하여 복원하십시오.
끝난!
그것이 도움이되기를 바랍니다!
나는 오늘 비슷한 문제에 부딪쳤다. 위의 모든 솔루션을 시도했지만 작동하지 않았습니다. 그래서 내 솔루션을 여기에 게시하십시오.
복원하기 전에 Tail-long Backup을 선택 취소하는 것을 잊지 마십시오
그것이 다른 사람들도 도울 수 있기를 바랍니다!
스크립트 접근 방식을 사용 중이고 LDF 및 MDF 파일과 관련된 오류가있는 경우 먼저 다음을 사용하여 백업 세트에서 파일 의 논리적 이름 (및 기타 세부 사항)에 대해 백업 파일 을 조회 할 수 있습니다 .
-- Queries the backup file for the file list in backup set, where Type denotes
-- type of file. Can be L,D,F or S
-- info: https://docs.microsoft.com/en-us/sql/t-sql/statements/restore-statements-filelistonly-transact-sql
RESTORE FILELISTONLY FROM DISK = 'C:\Temp\DB_backup.bak'
GO
다음과 유사한 결과가 나타납니다.
그런 다음 쿼리에서 해당 논리적 이름을 사용할 수 있습니다.
-- Script assumes you want MDF and LDF files restored on separate drives. Modify for your scenario
RESTORE DATABASE DB
FROM DISK='C:\Temp\DB_backup.bak'
WITH REPLACE,
MOVE 'DB' TO 'E:\MSSQL\Data\DB.mdf', -- "DB" is the mdf logical name from query above
MOVE 'DB_log' TO 'F:\MSSQL\Logs\DB.ldf'; -- "DB_log" is LDF logical name from query above
자세한 내용 RESTORE FILELISTONLY
은 SQL Server 문서에서 찾을 수 있습니다 .
다른 작업을 수행하기 전에 백업이 전체 또는 차등인지 확인하십시오. 차등 백업에서 새 데이터베이스를 만들려고하면 무엇을 하든지 오류가 발생합니다.
system.data.sqlclient.sqlerror : 백업 세트에 기존 'Dbname'데이터베이스 이외의 데이터베이스 백업이 있습니다.
나는 영혼을 찾기 위해왔다
이름이 같거나 다른 데이터베이스 이름으로 데이터베이스를 만들지 마십시오! 중요.
데이터베이스를 마우스 오른쪽 단추로 클릭하십시오 | 작업> 복원> 데이터베이스
"복원 소스"에서 "장치에서"를 선택하십시오.
.bak 파일을 선택하십시오
아래의 그리드 뷰에서 데이터베이스의 확인란을 선택하십시오.
데이터베이스에 : "여기에 새 데이터베이스 이름을 입력 할 수 있습니다"(예 : DemoDB)
DropDownlist에서 기존 데이터베이스를 선택하지 마십시오
이제 Ok 버튼을 클릭하면 새로운 Databse가 생성되고 .bak 파일의 모든 데이터가 복원됩니다.
문제를 해결하는 데 도움이되기를 바랍니다 ...
버전 비 호환성으로 인해 항상 발생합니다. 다음 단계를 따라 해결하십시오.
1 단계 : 원하는 이름으로 데이터베이스를 작성하십시오. (우리의 경우 AdventureWorks)
2 단계 : 데이터베이스를 클릭하고 작업 >> 복원 >> 데이터베이스…를 클릭하십시오.
3 단계 : 복원 화면에서 세 번째 옵션 선택으로 이동합니다. 이제“기존 데이터베이스 덮어 쓰기 (WITH REPLACE)”확인란을 선택하십시오.
4 단계 : 확인을 클릭하십시오. 데이터베이스를 성공적으로 복원해야합니다.
참고 : REPLACE를 사용하여 데이터베이스를 복원하면 이전 데이터베이스를 덮어 씁니다.
테스트를 위해 로컬에 새 DB를 만들어야했고 제품에서 백업했습니다. 먼저 db를 만들고 새 db 위에 BAK를 실행하려고 했는데이 오류가 발생했습니다. 복원 화면 자체에서 새 db 이름을 소싱하면서 db를 삭제하고 복원했습니다. 복원시 db가 자동으로 작성되었습니다.
여러분 중 일부는 이것을 지나치게 복잡하게했습니다. 나는 이것이 매우 간단하다는 것을 알았습니다.
1) .bak 파일 데이터베이스 이름과 같은 이름으로 데이터베이스를 만드십시오!
2) 데이터베이스를 마우스 오른쪽 단추로 클릭하십시오 | 작업> 복원> 데이터베이스
3) "복원 소스"에서 "장치에서"를 선택하십시오.
4) .bak 파일을 선택하십시오
5) 아래 표에서 데이터베이스의 확인란을 선택하십시오.
6) 오른쪽의 "페이지 선택"에서 "옵션"을 선택하십시오.
7) "복제 설정 유지 (KEEP_REPLICATION) 확인란을 선택하십시오.
이제 일반 페이지로 돌아가서 확인을 클릭하여 데이터베이스를 복원하십시오.
프로덕션 서버를 동일한 서버의 준비 데이터베이스로 복원하려고했습니다.
내 경우에 효과가 있었던 유일한 것은 새로운 빈 데이터베이스로 복원하는 것입니다. 이것은 훌륭하게 작동했으며 프로덕션 파일을 덮어 쓰려고 시도하지 않았습니다. 프로덕션 백업 파일을 기존 준비 데이터베이스로 복원하는 경우와 같습니다. 그런 다음 오래된 데이터베이스를 삭제하고 이름을 바꿉니다. 파일은 새 임시 이름을 유지하지만 제 경우에는 괜찮습니다.
또는 그렇지 않으면 준비 데이터베이스를 먼저 삭제 한 다음 준비 데이터베이스와 이름이 같은 새 데이터베이스로 복원 할 수 있습니다.
이를 통해 시스템 드라이브에서 백업 파일을 가져올 수있었습니다
WITH MOVE
WITH REPLACE, MOVE