VM 的 DPM 備份中斷 SQL 備份鏈/時間線
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 這樣做的方法。
到目前為止我嘗試了什麼:
內部虛擬機客戶作業系統
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLWriter\Settings\ 。DWORD DisableLogShrink 1。僅在 SQL VSS 備份期間禁用 Log Shrink,但它仍然是完整備份。
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Virtualization\VssRequestor\ 。DWORD 備份類型 1 。KB975354。如果創建此系統資料庫項並將其值設置為 1,則應用程序備份將不受執行 Hyper-V 的伺服器上的虛擬機備份操作的影響。沒有效果。
在主機伺服器上(集群中的所有節點都重新啟動)
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Data Protection Manager\Agent\HonorFilesNotToBackup\ Plus HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToBackup\ MULTI_SZ 字元串,帶有指向包含 SQL 數據庫的 VHDX 的路徑。沒有效果。
- 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 伺服器上
- 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 編寫器。