차등 백업에서 데이터베이스를 복원하는 동안 문제가 발생합니다. 다음은 데이터베이스에 적용 할 내가 너무 최근의 LSN 81,125,000000059600,297에서 SQL Server 2008의 차등 백업. SSMS를 통해 복원 할 수 있지만 Transact SQL을 통해 복원 할 수 없음
DROP DATABASE DBName_delta
GO
BACKUP DATABASE DBName TO DISK = 'E:\Fullbak1.bak'
GO
RESTORE FILELISTONLY FROM DISK = 'E:\Fullbak.bak'
GO
RESTORE DATABASE DBName_delta
FROM DISK='E:\Fullbak.bak'
WITH MOVE 'DBName_Data' TO 'E:\DBData\DBName_delta.mdf',
MOVE 'DBName_Image_Data' TO 'E:\DBData\DBName_delta_Image_Data.mdf',
MOVE 'DBName_Log' TO 'D:\DBLog\DBName_delta.ldf',
NORECOVERY
--Made Some changes in the database
BACKUP DATABASE DBName
TO DISK = 'E:\DiffBak1.TRN'
WITH DIFFERENTIAL
GO
--Made Some more changes in the database
BACKUP DATABASE DBName
TO DISK = 'E:\DiffBak2.TRN'
WITH DIFFERENTIAL
GO
RESTORE FILELISTONLY FROM DISK = 'E:\DiffBak1.TRN'
GO
RESTORE LOG DBName_delta FROM DISK='E:\DiffBak1.TRN' WITH NORECOVERY
GO
메시지 4305, 수준 16, 상태 1, 줄 2
을 수행하는 단계입니다. LSN 81121000000116200001을 포함하는 이전 로그 백업을 복원 할 수 있습니다.
이 백업 세트의 로그가 시작메시지 1613, 수준 16, 상태 1, 줄 2
RESTORE LOG가 비정상적으로 종료됩니다. 나도 같은 E 복원하려고 할 때
RESTORE FILELISTONLY FROM DISK = 'E:\DiffBak2.TRN'
GO
RESTORE LOG DBName_delta FROM DISK='E:\DiffBak2.TRN' WITH STANDBY = 'c:\undo.ldf'
GO
는 그러나 다음 WITH NORECOVERY 옵션을 사용하여 \ DiffBak1.TRN SSMS를 통해를, 데이터베이스를 복원하고 다시 내가 사용하여 동일한 파일의 복원을 수행 할 수 있었다 Transact SQL. 내가 여기서 뭔가를 놓치고 있니? 이것은 RESTORE DATABASE와 관련이 있습니까? 그 사이에 어떤 로그도 놓치지 않았 음을 확신합니다. 어떤 도움을 많이 주시면 감사하겠습니다.
즉, 파일 경로에 영어 이외의 문자가 있음을 의미합니다. 'N '접두사는 문자열이 유니 코드임을 의미합니다. 모든 문자가 영어 인 경우 필요하지 않습니다. –
정확하지 않습니다. 로그를 복원하는 대신 두 번째 코드가 데이터베이스를 복원하는 중이었습니다. 그것은 차이를 만들었습니다. 나는 그 단계를 스크립트로 작성하여 그 차이점을 발견했다. –