SQL-Server:백업 세트는 기존 데이터베이스 이외의 백업을 보유하고 있습니다.
데이터베이스에 대한 SQL Server 백업 파일을 복원하려고 하는데 다음과 같은 오류가 발생합니다.
백업 세트는 기존 데이터베이스 이외의 백업을 보유하고 있습니다.
SQL Server 2008의 데이터베이스와 백업파일은 2005년입니다.
무엇이 문제일까요?
저도 이 문제를 접하게 되었습니다.
해결책:
- " " " " 를
.bak
줄서서 처리해 주세요. - SQL Server Management Studio의 "Databases" 분기를 마우스 오른쪽 버튼으로 클릭하여 액세스할 수 있는 "Restore Database" 옵션을 사용하고 복원할 소스를 제공하면서 데이터베이스 이름을 지정합니다.
- 또한 다른 데이터베이스가 여전히 존재하는 경우 "파일"에서 파일 이름을 변경합니다.그렇지 않으면 파일 '...'을 덮어쓸 수 없습니다.데이터베이스 'yourFirstDb'에서 사용되고 있습니다.
다음 중 하나:
사용 1) 사용WITH REPLACE
를 하고 있습니다.RESTORE
GUI를 [Options [ ]->[ GUI ]-> [ Overwrite ]).WITH REPLACE
) ) 。
2)Delete
RESTORE
명령어를 입력합니다.
자세한 내용은 링크를 참조하십시오.
먼저 같은 이름의 빈 데이터베이스를 만듭니다.그러면 restore 옵션을 선택합니다.
왼쪽 페인의 [옵션(Options)]에서 다음 항목을 선택하는 것을 잊지 마십시오.
- 기존 데이터베이스 덮어쓰기
- 복제 설정 유지
바로 그겁니다.
도 같은 하여 SSMS .
database(REPLACE)를.
이는 항상 버전 비호환성으로 인해 발생합니다.다음 단계에 따라 해결합니다.
1단계: 원하는 이름으로 데이터베이스를 만듭니다.(당사의 Adventure Works의 경우)
순서 2: 데이터베이스를 클릭하여 [태스크]> [복원]> [데이터베이스...]을 클릭합니다.
순서 3: 복원 화면에서 세 번째 옵션 선택 항목으로 이동합니다.이제 "기존 데이터베이스 덮어쓰기(WITH REPLACE)" 확인란을 선택합니다.
4단계: [OK]을 클릭합니다.데이터베이스가 정상적으로 복원됩니다.
참고: 데이터베이스를 REPLACE로 복원하면 이전 데이터베이스가 덮어씁니다.
USE [master];
GO
CREATE DATABASE db;
GO
CREATE DATABASE db2;
GO
BACKUP DATABASE db TO DISK = 'c:\temp\db.bak' WITH INIT, COMPRESSION;
GO
RESTORE DATABASE db2
FROM DISK = 'c:\temp\db.bak'
WITH REPLACE,
MOVE 'db' TO 'c:\temp\db2.mdf',
MOVE 'db_log' TO 'c:\temp\db2.ldf';
간단한 3단계:
1- 데이터베이스 → 작업 → 복원 → 데이터베이스를 마우스 오른쪽 버튼으로 클릭합니다.
2-체크Device
.bak(또는 압축된 .bak) 파일을 찾습니다.
- 페인으로 [3]을 합니다.options
아,아,아,아,아,아,아,아,아,아,아,아,아,아,아.
- 기존 데이터베이스 덮어쓰기를 선택합니다.
- 복원하기 전에 테일 로그 백업 수행 선택 취소
- 대상 데이터베이스에 대한 기존 연결 닫기를 선택하십시오.
그 외의 옵션은 매우 옵션입니다(물론 중요합니다).
스크립트 방식을 사용하는 경우 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://learn.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 문서에서 찾을 수 있습니다.
는 its its its가.mdf
★★★★★★★★★★★★★★★★★」.ldf
본 the the the의 Db
그 장소에 있었을 겁니다.c:\programFile\....
이정!!!!!!!!!!!!!!
SQL SQL DB에 동일한 DB를 .c:\program Files (x86)\ ....
평상시와 같이 복원할 수 없습니다. 경우 이동 해야 합니다..mdf
★★★★★★★★★★★★★★★★★」.ldf
그 때문에,
새 서버에 빈 DB 생성
]> [ ]> [ ]> [ ]> [ Tasks ]> [ Database ]> [ select ]를합니다.
.bak
(Files)]> [파일(DB)]로 하려면 [를 선택합니다.- 왼쪽의 [파일]을 클릭합니다.> [모든 파일을 폴더로 리로케이션]를 선택합니다.
- 왼쪽 사이트의 [Options](옵션)을 클릭합니다.> Overwrite ]을 클릭합니다.
★★★★★★★★★★★★★★★★!
도움이 됐으면 좋겠다!
저도 오늘 비슷한 문제에 부딪혔어요.위의 모든 솔루션을 시도했지만 작동하지 않았다.그래서 여기에 내 해결책을 올린다.
복원하기 전에 Tail-Long Backup 선택을 취소해야 합니다.
그것이 다른 사람들에게도 도움이 되기를 바랍니다!
또한 데이터베이스 이름이 복원하려는 백업의 데이터베이스 이름과 일치하는지 확인하는 것도 중요합니다.일치하지 않으면 동일한 오류가 발생합니다.
system.data.sqlclient.sqlerror:백업 세트에 기존 'Dbname' 데이터베이스가 아닌 다른 데이터베이스의 백업이 있습니다.
난 영혼의 정취를 찾으러 왔다.
이름이 같거나 다른 데이터베이스 이름을 가진 데이터베이스를 만들지 마십시오!중요한.
database | Tasks > Restore > Database 우클릭
"복원 원본"에서 "장치에서"를 선택합니다.
.bak 파일을 선택합니다.
아래 그리드 뷰에서 데이터베이스 확인란을 선택하십시오.
데이터베이스로: "여기서 새 데이터베이스 이름을 입력할 수 있습니다"(예: DemoDB)
드롭다운 목록에서 기존 데이터베이스 선택 안 함
[확인] 버튼을 클릭합니다.새로운 데이터베이스가 생성되어 .bak 파일에서 모든 데이터가 복원됩니다.
당신의 문제를 해결하는 데 도움이 되길 바랍니다.
다른 작업을 수행하기 전에 백업이 Full인지 Differential인지 확인하십시오.차등 백업에서 새 데이터베이스를 생성하려고 하면 어떤 작업을 수행해도 오류가 발생합니다.
나도 마찬가지야.해결책은 다음과 같습니다.
- 데이터베이스를 오른쪽 클릭합니다.
- 작업을 선택하고 데이터베이스 복원을 선택합니다.
- 왼쪽에 있는 옵션을 클릭합니다.
- 첫 번째 옵션 기존 데이터베이스 덮어쓰기(WITH REPLACE)를 선택합니다.
- 일반으로 이동하여 소스 및 대상 데이터베이스를 선택합니다.
- [확인]을 클릭합니다.
나는 단지 이 문제를 해결하려고 했을 뿐이다.
관리자로서 실행하는 것부터 여기나 다른 곳에서 찾을 수 있는 제안까지 모든 것을 시도해 보았습니다.결국 이 문제를 해결한 것은 [파일(Files)]탭의 [파일 재배치(Relocate files)]옵션을 체크하는 것이었습니다.
이게 다른 사람에게 도움이 되길 바라.
여러분 중 몇몇은 이것을 매우 복잡하게 만들었다.나는 이것이 매우 간단하다는 것을 알았다.
1) .bak 파일 데이터베이스 이름과 동일한 이름으로 데이터베이스를 만듭니다!중요한
2) Database | Tasks > Restore > Database 우클릭
3) "복원용 소스"에서 "디바이스에서"를 선택합니다.
4) .bak 파일을 선택합니다.
5) 아래 그리드 뷰에서 데이터베이스 체크박스를 켭니다.
6) 우측의 [Select a Page](페이지 선택)에서 [Options](옵션)을 선택합니다.
7) [레플리케이션 설정 유지(WITH KEEP_REPLICATION)]체크박스를 켜겠습니다
이제 General 페이지로 돌아가서 OK를 클릭하여 데이터베이스를 복원합니다.바로 그거야.
테스트를 위해 로컬에 새로운 db를 작성해야 했고, 프로바이더로부터 백업을 받았습니다.먼저 db를 만들고 새로운 db 위에서 BAK를 실행하려고 했습니다.그 결과 이 에러가 발생하였습니다.복원 화면 자체에서 새 DB 이름을 소싱하면서 DB를 삭제하고 복원했습니다.복원 시 DB가 자동으로 생성되었습니다.
Generate 스크립트를 사용하여 다른 방법으로 작업을 수행했습니다.같은 오류로 인해 백업-복원이 문제 해결에 도움이 되지 않았기 때문에 이 방법은 효과가 있었습니다.
옵션에서 "다른 이름으로 복원" 파일 이름을 새 데이터베이스 mdf 및 ldf로 변경합니다.소스 데이터베이스 .mdf 및 .ldf 파일을 참조하고 있습니다.
새 DB로 복원하여 파일 이름 구문이 로그 파일에 있는지 확인할 수 있습니다. 새 SQL 버전은 "_log" 접미사가 됩니다.
옵션 탭에서 기존 데이터베이스 플래그 덮어쓰기 확인
파비오
이를 통해 시스템 드라이브에서 백업 파일을 가져올 수 있습니다.
- .bak 파일 데이터베이스 이름과 동일한 이름(권장)으로 데이터베이스를 작성합니다.
- 데이터베이스 > 태스크 > 복원 > 데이터베이스를 오른쪽 클릭합니다.
- "복원 원본"에서 "장치에서"를 선택합니다.
- 시스템에서 경로를 선택하는 .bak 파일을 선택합니다.
- 아래 목록 상자에서 데이터베이스 확인란을 선택하십시오.
- 오른쪽의 "Select a Page(페이지 선택)"에서 "Options(옵션)"를 선택합니다.
- 레플리케이션 설정 유지(WITH KEEP_REPLICATION) 확인란을 선택합니다.
- Overwrite the existing database(WITH REPLACE) Now General(일반) 페이지로 돌아가 OK(확인)를 클릭하여 데이터베이스를 복원합니다.
이 문제는 파일 및 폴더 권한과 관련이 있습니다.
프로덕션 데이터베이스를 같은 서버의 스테이징 데이터베이스로 복원하려고 했습니다.
내 경우엔 새 빈 데이터베이스로 복구하는 것밖에 효과가 없었어이렇게 하면 운영 파일을 덮어쓰려고 시도하지 않았습니다(운영 백업 파일을 기존 준비 데이터베이스에 복원하는 경우).그런 다음 오래된 데이터베이스를 삭제하고 이름을 바꿉니다.파일은 새로운 임시 이름을 유지하지만 제 경우에는 괜찮습니다.
(또는 스테이징 데이터베이스를 먼저 삭제한 후 스테이징 데이터베이스와 동일한 이름의 새 데이터베이스로 복원할 수 있습니다.
Restore Database를 클릭하는 대신 Restore File and File groups를 클릭합니다.
그것은 내 SQL 서버에서 작동한다.
PS에서도 같은 문제가 있었습니다.누군가 같은 일을 하려고 할 때를 대비해서 여기 놔뒀어요
Restore-SqlDatabase -ServerInstance "<your instance name>" -Database "<your db name>" -BackupFile "<backup file route>.bak" -ReplaceDatabase
사용하는 것을 잊지 않다Set-ExecutionPolicy Unrestricted -Force
및 Importimport-module sqlps
실행 정책이 완료되면 반드시 다시 제한으로 설정하십시오.
일반적으로 .bak 파일을 취급할 때는 문제가 따르지만, 보다 직접적인 방법은 sqldump 파일을 사용하여 데이터베이스를 전송하는 것입니다.
- 이동 또는 복사할 현재 데이터베이스의 스크립트를 생성합니다.
- 전체 데이터베이스 대신 모든 테이블을 선택합니다.
- 옵션 메뉴에서 save as script를 선택하고 advanced 버튼을 클릭하여 다음 구성을 설정합니다(MS SQL 2016 소송을 제기합니다).
- 이러한 데이터를 Import 하는 경우는, 새로운 데이타베이스를 작성해, 이 데이타베이스로 전환합니다(디폴트로 설정합니다).
- 마지막으로 스크립트를 실행하면 모든 테이블과 데이터가 Import됩니다.
행운을 빌어요.
- 목록 항목
언급URL : https://stackoverflow.com/questions/10204480/sql-server-the-backup-set-holds-a-backup-of-a-database-other-than-the-existing
'itsource' 카테고리의 다른 글
현재 데이터베이스 백업이 없으므로 백업 로그를 수행할 수 없습니다. (0) | 2023.04.07 |
---|---|
고유 제약 조건에 대한 명명 규칙 (0) | 2023.04.07 |
Lookup()과 Dictionary(Of list)의 차이점 (0) | 2023.04.07 |
마지막으로 삽입된 행 ID 가져오기(SQL 문 포함) (0) | 2023.04.07 |
일반적으로 String Comparison을 사용하는 것이 가장 좋습니다.Ordinal Ignore Case 또는 String Comparison.Universent Culture Ignore Case? (0) | 2023.04.07 |