Sql-Server

VM 的 DPM 備份中斷 SQL 備份鏈/時間線

  • September 29, 2016

DPM 2012R2。在 Windows Server 2012R2 上使用 CSV 的 Hyper-V 故障轉移群集。來賓也是 Windows Server 2012R2 和 SQL Server 2014。所有最新更新、更新匯總、累積更新和一些推薦的修補程序。

故事:VM 來賓中的每個 SQL 安裝都有自己的維護計劃,其中包含完整、差異和日誌數據庫備份到網路共享。現在我在 DPM 的幫助下為虛擬機添加保護。

會發生什麼:每次 DPM 備份 VM 時,它都會使用 VSS,該 VSS 會命中 SQL VSS Writer,而後者又會在 SQL 中執行備份。

什麼不好:這個 VSS 備份是數據庫的完整備份,會產生所有後果。因此,現在無法使用自己的 SQL 備份,因為無法從處於 IN RECOVERY 狀態的 VM VHDx 還原 SQL 數據庫以應用差異或日誌備份。有一種方法只能恢復 mdf/ndf/ldf 文件並附加它們或整個 VM。

如 SQL VSS Writer 文件中所述,它不支持日誌備份,因此不存在生產數據庫無法接受的時間點恢復。(https://msdn.microsoft.com/en-us/library/ms175536.aspx

我看到的唯一方法是僅製作此備份副本。SQL VSS 編寫器支持它。VSS 本身支持這個參數 VSS_BACKUP_TYPE 到 VSS_BT_COPY

但我看不到告訴 DPM 這樣做的方法。

到目前為止我嘗試了什麼:

內部虛擬機客戶作業系統

  1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLWriter\Settings\ 。DWORD DisableLogShrink 1。僅在 SQL VSS 備份期間禁用 Log Shrink,但它仍然是完整備份。
  2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Virtualization\VssRequestor\ 。DWORD 備份類型 1 。KB975354。如果創建此系統資料庫項並將其值設置為 1,則應用程序備份將不受執行 Hyper-V 的伺服器上的虛擬機備份操作的影響。沒有效果。

在主機伺服器上(集群中的所有節點都重新啟動)

  1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Data Protection Manager\Agent\HonorFilesNotToBackup\ Plus HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToBackup\ MULTI_SZ 字元串,帶有指向包含 SQL 數據庫的 VHDX 的路徑。沒有效果。
  2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Data Protection Manager\Agent\2.0\ 。DWORD CopyBackupEnabled 1. ( https://blogs.technet.microsoft.com/dpm/2015/05/20/an-in-depth-look-at-the-registry-settings-that-c ​​ontrol-microsoft-dpm-2012 / ) 沒有效果。

在 DPM 伺服器上

  1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Data Protection Manager\Agent\2.0\CopyBackups\

DWORD DPM 中 VM 的名稱,值為 1。

也許就是這樣,我只是不知道如何正確編寫 DPM 將接受的 VM 名稱。現在它在共振峰 VMNAME.CLUSTERNAME.DOMAIN.COM 沒有效果。

好像我的 google-bing-whatever-fu 在這裡結束了。

它給我留下了幾個問題。- 如何使用 SQL 保護 VM 並保存使用 DPM 對其中的 SQL 數據庫進行時間點恢復的能力?- 所有其他人如何使用 DPM 使用 SQL 保護他們的 VM?對整個 VM 使用 15 分鐘的同步間隔?在數以萬計的虛擬機的情況下,它會佔用大量空間/負載/流量等

主要問題: - 有沒有人能夠實現 DPM 不會影響同一設置中 Hyper-V VM 內的 SQL 備份?

好。我終於做到了。

對我真正有用的是:

在主機伺服器上

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Data Protection Manager\Agent\2.0

DWORD CopyBackupEnabled 1

這確實使 VSS 備份僅複製,但它們仍然記錄在備份歷史中(不知何故我沒想到會這樣並忽略了它確實有效)。

其次,預設情況下,在客戶機作業系統 WS2012R2 中,日誌不會被截斷,但相反,在 2008R2 中,它們預設會被截斷。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Virtualization\VssRequestor DWORD BackupType 1

對 SQL 沒有影響,但 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLWriter\Settings\ DWORD DisableLogShrink 1

確實有幫助

日誌截斷由 fn_dblog() 或日誌大小檢查。

此外,

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Data Protection Manager\Agent\HonorFilesNotToBackup

Plus

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToBackup

MULTI_SZ 字元串與 VHDX 的路徑未按

預期工作。

使用這些密鑰時,VHDX 文件仍會受到 VSS 的影響,但它們會從生成的備份中排除。因此,如果使用這些密鑰,請注意,即使排除了帶有 DB 的 VHDX(或者僅排除了數據庫文件),SQL 也會記錄此備份並可能截斷日誌。

最後,DPM 伺服器鍵

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Data Protection Manager\Agent\2.0\CopyBackups

DWORD 數據源名稱

不影響 VM 備份,看起來共享點配置數據庫是該鍵的唯一目標

您可以通過禁用 SQL Server 的“SQL Server VSS 編寫器”服務來停止使用 SQL VSS 編寫器。

引用自:https://serverfault.com/questions/804767