[英]How to specify backup directory for SQL Server backup using powershell
[英]Using Powershell to get SQL Backup Data
我一直在尋找自動獲取有關SQL備份信息的方法,並且Technet這篇文章中的Powershell腳本可以很好地執行,除了返回的數據有問題。
運行時,它將為我知道尚未通過SQL備份的測試數據庫返回一個“最后備份”日期。 似乎正在花費系統備份的時間。 它與OS事件日志中的beVSS開始時間一致(服務器由Backup Exec 2010備份,而不使用SQL代理)。
我希望它收集上次運行SQL備份而不是系統備份的時間。 這有可能以某種方式過濾掉嗎?
DB Server是Windows Server 2008 / SQL Server 2008。
編輯 :
為了明確起見,我正在尋找PowerShell中的解決方案,而不是SQL,並了解PowerShell為什么返回其作用。
在查找最新備份的時間和文件名時,我經常使用這樣的查詢。 該特定查詢將返回最新的完整備份或差異備份,但是顯然,您可以根據需要進行更改。
SELECT
bf.physical_device_name ,
name ,
bs.backup_start_date ,
bs.media_set_id
FROM sys.databases d
OUTER APPLY (
SELECT TOP 1
backup_start_date ,
media_set_id
FROM msdb.dbo.backupset
WHERE type != 'L'
AND database_name = d.name
ORDER BY backup_start_date DESC
) bs
INNER JOIN msdb.dbo.backupmediafamily bf ON bf.media_set_id = bs.media_set_id
我傾向於對msdb中的backupset表使用查詢,而不是對您引用的文章中提到的SMO LastBackupDate數據庫屬性進行查詢。
在我的環境中,我們使用CommVault Galaxy進行備份,並且可以通過查看backupset表的user_name列來過濾CommvVault與常規SQL備份的備份。 SQL Agent和CommVault在不同的用戶帳戶下運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.