2017-04-24 4 views
0

한 달에 한 번 전체 백업을 수행 한 다음 그 사이에 증분 백업을 수행합니다.복사 전용 전체 백업 이외의 다른 솔루션이 있습니까?

그러나 다른 사용자는 전체 백업을 수행 할 수 있으며 이로 인해 내 체인이 손상 될 수 있습니다. 사본이있는 전체 백업이 있다는 것을 알고 있습니다.

내 경우에는 누가 백업을 할 것인지 알 수 없으므로이 문제를 피하기 위해 내 편에서 구현할 솔루션을 찾아야합니다.

구현할 아이디어 나 해결책이 있습니까? 고맙습니다.

+1

는 다른 사용자가 백업을 수행 할 수있는 권한이해야 하는가? 특히, copy_only 옵션을 체크하지 않고 체인을 끊는 경우. – VDK

+2

귀하의 조직이 누가 백업을보다 엄격하게 수행 할 수 있는지를 제안합니다. –

답변

0

이 코드 샘플은 이해하기 쉽도록 자세한 정보가 표시되어 있지만 msdb.dbo.backupset 테이블을 사용하면 도움이됩니다. https://docs.microsoft.com/en-us/sql/relational-databases/system-tables/backupset-transact-sql

declare @MostRecentAuthorizedFullBackup datetime 
declare @MostRecentUnauthorizedNonCopyOnlyBackup datetime 
declare @AuthorizedBackupUser nvarchar(128) = N'YourBackupUser' 
declare @DatabaseName nvarchar(128) = N'YourDatabase' 

select @MostRecentAuthorizedFullBackup = backup_start_date 
from msdb.dbo.backupset 
where database_name = @DatabaseName 
    and is_copy_only = 0 
    and type = 'D' 
    and user_name = @AuthorizedBackupUser 
order by backup_start_date desc 

select @MostRecentUnauthorizedNonCopyOnlyBackup = backup_start_date 
from msdb.dbo.backupset 
where database_name = @DatabaseName 
    and is_copy_only = 0 
    and type = 'D' 
    and user_name <> @AuthorizedBackupUser 
order by backup_start_date desc 

if @MostRecentAuthorizedFullBackup > @MostRecentUnauthorizedNonCopyOnlyBackup 
begin 
    print 'Differential base is good' 
end 
else 
begin 
    print 'Differential base is bad' 
end 
+0

코드를 제공해 주셔서 감사합니다. 그러나 내 질문은 체인이 파손되었는지 여부와 미분 기초가 나쁘다는 것을 아는 것이 아닙니다. 나는 어딘가에서 나의 차이에 영향을 미치지 않을 완전한 백업을 할 때마다 내가 구현할 수있는 솔루션이 있는지 알고 싶다. –

+0

그 대답은 '아니오'입니다. 손상된 차등 기반을 피할 수있는 유일한 방법은 다른 백업을 복사 전용으로 제한하는 것이며 백업을 전혀 수행하지 못하도록 차단하지 않고이를 수행 할 방법이 없습니다. 조건부 논리를 백업에 추가하여 다른 사람이 비 복사 전용 백업을 수행하여 차등 기반이 손상된 경우 전체 백업으로 되돌릴 수 있습니다. –

관련 문제