[英]Powershell Script for creating a local *.bak backup of a SQL Server database on a server via a remote Powershell connection
[英]Check when SQL backup failes via Powershell
運行sql備份時是否可以捕獲信息? 如果備份失敗了? 我使用MSSQL和Powershell
該查詢將為您提供有關備份的信息,包括上次執行時間。 它不會顯示備份是否失敗,因為失敗的備份未列為備份。 您應該在工作概述或歷史記錄中找到這些內容。 如果使用powershell,則不會記錄失敗備份的日志。 (我所知道的)
Sequenchel(.com)中也使用此查詢來監視備份
SELECT isnull(y.server_name,CAST(SERVERPROPERTY('ServerName') AS nvarchar(255))) as ServerName,
x.name as databaseNameM, y.database_name as DatabaseNameB,
CAST(DatabasePropertyEx(x.name,'Recovery') AS nvarchar(15)) as RecoveryModel ,
case y.type
when 'D' then 'FULL BCK'
when 'I' then 'DIFF BCK'
when 'L' then 'TRAN BCK'
when 'F' then 'FILE BCK'
else 'UNKNOWN!'
end as BackupType,
y.backup_finish_date as LastBackup,
y.Bck_Location as Location
FROM master.dbo.sysdatabases x
FULL OUTER JOIN
(SELECT max_bck.server_name,max_bck.database_name,max_bck.backup_finish_date,max_bck.type,
left(fam.physical_device_name,len(fam.physical_device_name)-patindex('%\%',reverse(fam.physical_device_name))+1) AS Bck_Location
FROM (select bak.server_name,bak.database_name,max(bak.backup_finish_date) as backup_finish_date,bak.type
from msdb.dbo.backupset bak
group by bak.server_name,bak.database_name,bak.type) max_bck
INNER JOIN msdb.dbo.backupset bak
ON max_bck.backup_finish_date = bak.backup_finish_date
and max_bck.type = bak.type
and max_bck.database_name = bak.database_name
INNER JOIN msdb.dbo.backupmediafamily fam
ON bak.media_set_id = fam.media_set_id
) y
ON x.name = y.database_name
WHERE isnull(x.name,y.database_name) !='tempdb'
AND (y.server_name IS NULL OR y.server_name = CAST(SERVERPROPERTY('ServerName') AS nvarchar(255)))
AND CAST(DatabasePropertyEx(x.name,'Status') AS nvarchar(15)) = 'ONLINE'
ORDER BY ServerName,isnull(x.name,y.database_name),type
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.