GUI를 사용하여 데이터베이스 복원-잘못된 파일 복원


20

SSMS 그래픽 인터페이스를 엉망으로 만들고 "복원"작업의 옵션을 연구하고 있습니다.

내가 주목 한 것은 "스크립트 생성"을 클릭하면 쿼리의 첫 번째 줄은 다음과 같습니다.

 RESTORE DATABASE [MyDatabase] FROM  DISK = N'Server_Patch\Database_name_LOGSHIPPING.BKP' WITH  FILE = 1,  NORECOVERY,  NOUNLOAD,  STATS = 5 ( and a lot of log backups for point in time )

좋아, 문제는 없지만이 데이터베이스를 매일 백업하고 있습니다. 이것은 Database_name_LOGSHIPPING.BKP한 달 전에 로그 전달을 위해 만든 파일 이름입니다.

SSMS 그래픽 인터페이스를 사용하여 백업을 복원하려고 할 때이 백업 파일을 가리키는 이유는 무엇입니까? 더 이상이 파일이 없습니다.


MSSQLTIPS의이 쿼리를 사용하면이 데이터베이스의 모든 백업을 볼 수 있습니다.

SELECT 
CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server, 
msdb.dbo.backupset.database_name, 
msdb.dbo.backupset.backup_start_date, 
msdb.dbo.backupset.backup_finish_date, 
msdb.dbo.backupset.expiration_date, 
CASE msdb..backupset.type 
WHEN 'D' THEN 'Database' 
WHEN 'L' THEN 'Log' 
END AS backup_type, 
msdb.dbo.backupset.backup_size, 
msdb.dbo.backupmediafamily.logical_device_name, 
msdb.dbo.backupmediafamily.physical_device_name, 
msdb.dbo.backupset.name AS backupset_name, 
msdb.dbo.backupset.description 
FROM msdb.dbo.backupmediafamily 
INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id 
WHERE (CONVERT(datetime, msdb.dbo.backupset.backup_start_date, 102) >= GETDATE() - 7)   and  msdb..backupset.type ='D'
ORDER BY 
msdb.dbo.backupset.database_name, 
msdb.dbo.backupset.backup_finish_date 

여기에 이미지 설명을 입력하십시오

여기서 무엇이 잘못 될 수 있습니까? COPY 만 사용하고 있습니다.


EDIT2 :

테스트를 위해 매일 수동 백업을 만들고 있는데,이 방법으로도 SQL Server는 더 이상 존재하지 않는 오래된 백업을 선택합니다. 실행할 때 RESTORE HEADERONLY...파일이 존재하지 않는다고 말합니다.


편집 3 :

이것은 GUI 인쇄입니다.

1 여기에 이미지 설명을 입력하십시오 와우 와우 와우 잠시만 기다려요 !

이 데이터베이스는 다른 서버 (동일한 서버, 다른 인스턴스)에서 복원되었습니다. 휴암 ... 문제가 여기에 있다고 생각합니다.

두 번째 그림에서 "서버"를 볼 수 있습니까? 서버가 2 대 있습니다. GDLIC2014라는 이름의 인스턴스를 사용하고 있습니다.

스크립트 :

여기에 이미지 설명을 입력하십시오

백업 스크립트 :

DECLARE @Patch varchar(1000)

SELECT @Patch = (SELECT 'PATCH\FULL\DATABASE_ ' + convert(varchar(500),GetDate(),112) + '.bkp') 

BACKUP DATABASE DATABASE TO DISK=@Patch with compression

MSSQLTIPS와 동일한 쿼리로 날짜 범위없이 결과를 사용할 수 있습니다.

여기에 이미지 설명을 입력하십시오

빨간색 사각형은 이전 인스턴스의 잘못된 백업이고 파란색 사각형은 마지막으로 수행 된 백업입니다 (GUI는이를 사용해야합니다)

편집 4 :

이 쿼리를 사용하여 백업 기록을 나열하면 모든 로그와 전체가 올바르게 나열됩니다.

SELECT TOP 100
s.database_name,
m.physical_device_name,
CAST(CAST(s.backup_size / 1000000 AS INT) AS VARCHAR(14)) + ' ' + 'MB' AS bkSize,
CAST(DATEDIFF(second, s.backup_start_date,
s.backup_finish_date) AS VARCHAR(4)) + ' ' + 'Seconds' TimeTaken,
s.backup_start_date,
CAST(s.first_lsn AS VARCHAR(50)) AS first_lsn,
CAST(s.last_lsn AS VARCHAR(50)) AS last_lsn,
CASE s.[type]
WHEN 'D' THEN 'Full'
WHEN 'I' THEN 'Differential'
WHEN 'L' THEN 'Transaction Log'
END AS BackupType,
s.server_name,
s.recovery_model
FROM msdb.dbo.backupset s
INNER JOIN msdb.dbo.backupmediafamily m ON s.media_set_id = m.media_set_id
WHERE s.database_name = DB_NAME() -- Remove this line for all the database
ORDER BY backup_start_date DESC, backup_finish_date
GO

편집 5 :

데이터베이스 헤더를 다시 시작할 무언가가 있습니까?

(나는 아이디어가 없다)


3
최신 SSMS GUI-2014 를 사용해 볼 수 있습니까 ? 있습니다 많은 수정 통합
킨 샤

1
SSMS가 정보를 얻는 방법을 캡처하기 위해 추적을 설정 한 후 GUI 옵션을 통해 실행 했습니까? 더 빠를지도 모릅니다.
Steve Mangiameli

1
@ RafaelPiccinelli-간단한 것이 간과되고 있지만 그것이 무엇인지 잘 모르겠습니다. msdb 데이터베이스를 원본에서 GDLIC2014 인스턴스로 복원 했습니까? 무언가 잘못된 연결 문자열이나 경로를 사용하고 있습니까? 확실히 SQL Server는 백업 및 복원을위한 데이터를 구성하지 않습니다. (제외 적으로, _2.mdf, _3.mdf 및 _4.mdf를 복원하고 있지만 접미사가없는 .mdf 또는 _1.mdf는 복원하지 않는 것이 흥미 롭습니다.)
RLF

GUI를 사용하여 복원을 종료하십시오. 백업 디스크 또는 테이프를보고 실제로 가지고있는 것을 확인한 후 시작하십시오.
위조 방지 암호

@ Anti-weakpasswords 안녕하세요. 아니 아니. GUI를 사용하지 않습니다. 로그 시퀀스를 쿼리하고 작업합니다. GUI에 대해 궁금한 점이 있었지만이 문제가 발생했습니다. 가능한 한 GUI에서 멀리 떨어져 있습니다.
Racer SQL

답변:


1

가능성은 백업 기록 테이블에 동기화되지 않은 것이며 UI가 마지막 "일관된"전체 백업으로 이동하는 것입니다. 실제로 수행중인 작업에 관심이있는 경우 계정으로 제한된 프로파일 러 추적을 시작하고 GUI에서 복원 단계를 수행 한 후 추적에서 캡처 된 명령을 검토하여 UI가이면에서 수행중인 작업을 표시하십시오. . 이것은 당신이 찾고있는 확실한 대답을 얻을 것입니다.

오히려 이것을 지나서 옮기려면 EXEC [msdb].[dbo].[sp_delete_backuphistory] @oldest_date=getdate()(이 마지막으로 실행 한 시간에 따라 한 번에 한 달에 한 번 지우고 싶을 수도 있음)을 통해 백업 기록 을 지운 다음 새 전체를 채울 수 있습니다. I 앞으로 올바른 백업을 사용하도록 GUI가 재설정 될 것입니다.

마지막으로 또 다른 옵션은 Wayne Sheffield가 작성한 이 스크립트 를 실행 하는 것 입니다. 백업 체인 관련 문제에 대한 추가 정보를 제공 할 수 있습니다. 이 답변을 원래 게시 한 후에야이 문제를 겪지 않았지만 앞으로 다른 사람을 도울 수 있기를 바랍니다.


안녕하세요 @john 답변 주셔서 감사합니다 .. 내가 한 declare @data datetime set @data=getdate() EXEC msdb.dbo.sp_delete_backuphistory @oldest_date=@data그리고 역사를 삭제했습니다. 나는 그것이 작동하는지 확인하기 위해 몇 가지 테스트를 할 것입니다. 고맙습니다.
Racer SQL

안녕하세요 @RafaelPiccinelli. 이것이 당신을 위해 일했습니까?
Kefash

안녕하세요 @Kefash. 나는 그것이 작동하지 않는다고 생각합니다. 지금은 기억이 안나 그러나 답을 얻을 때마다 즉시 찬성하여 답을 선택합니다. 내 문제가 해결되지 않았다고 생각합니다.
Racer SQL

@ john 나는이 sooo에 대한 수정이 필요합니다. 문제가 결국 해결 되었습니까?
Kefash

@ RafaelPiccinelli HAG에 데이터베이스를 추가한다고 말하는 시점으로 복원해야 할 때이 문제를 해결해야합니다. GUI 없이이 작업을 수행 할 수 있지만 트랜잭션 로그는 10 분마다 가져옵니다. 다른 접근법은 무엇입니까?
Kefash
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.