我每月進行一次完整備份,然後在兩者之間進行增量備份。是否有其他解決方案而不是僅複製完整備份?
但同時其他用戶可以做完整備份,並打破我的鏈。我知道只有副本纔有完整備份。
但在我的情況下,我不知道什麼時候和誰將做備份,所以我需要找到一個解決方案來實現我的一方,以避免這個問題。
有人有想法或解決方案來實現嗎?非常感謝你。
我每月進行一次完整備份,然後在兩者之間進行增量備份。是否有其他解決方案而不是僅複製完整備份?
但同時其他用戶可以做完整備份,並打破我的鏈。我知道只有副本纔有完整備份。
但在我的情況下,我不知道什麼時候和誰將做備份,所以我需要找到一個解決方案來實現我的一方,以避免這個問題。
有人有想法或解決方案來實現嗎?非常感謝你。
此代碼示例稍微詳細一點以便於理解,但表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
謝謝你的代碼。但我的問題不在於瞭解鏈條是否損壞以及差異基礎是否糟糕。我想知道是否有可以實施的解決方案,無論何時何地進行完全備份,不會影響我的差異? –
答案是否定的。避免破壞的差異基礎的唯一方法是將其他備份限制爲僅複製,並且在沒有阻止其完全備份的能力的情況下無法強制執行該備份。您可以將條件邏輯添加到備份中,以便在由於其他人正在進行非複製備份而導致差異基礎中斷時它將恢復爲完全備份。 –
其他用戶是否有權限進行備份?特別是,如果他們通過不勾選copy_only選項來打破這個鏈條。 – VDK
我建議你的組織控制誰可以更嚴格地執行備份。 –