web-dev-qa-db-ja.com

SQL Server 2008 R2クエリ、最後に成功したすべてのデータベースのデータベースバックアップ

SQL Sever 2008 R2の各データベースの最後に成功したバックアップ日付(およびおそらくバックアップのタイプ)を照会することは可能ですか?

4
Kyle Brandt

これを試して:

SELECT Database_Name,
CONVERT( SmallDateTime , MAX(Backup_Finish_Date)) as Last_Backup, 
DATEDIFF(d, MAX(Backup_Finish_Date), Getdate()) as Days_Since_Last
FROM MSDB.dbo.BackupSet
WHERE Type = 'd'
GROUP BY Database_Name
6
OliverAsmus

はい、履歴データがまだmsdbデータベースにある限り。次のコードブロックは、完全バックアップ、差分バックアップ、ログバックアップを含む最新の100バックアップを取得します。

SELECT TOP 100 
    s.database_name, 
    m.physical_device_name,
    CAST(DATEDIFF(second, s.backup_start_date,
    s.backup_finish_date) AS VARCHAR(100)) + ' ' + 'Seconds' TimeTaken,
    s.backup_start_date,
    CASE s.[type]
    WHEN 'D' THEN 'Full'
    WHEN 'I' THEN 'Differential'
    WHEN 'L' THEN 'Transaction Log'
    END AS BackupType,
    s.server_name,
    s.recovery_model
    FROM msdb.dbo.backupset s
    INNER JOIN msdb.dbo.backupmediafamily m ON s.media_set_id = m.media_set_id 
    WHERE s.database_name = DB_NAME() -- Remove this line for all the database
    ORDER BY backup_start_date DESC, backup_finish_date
    GO
7
JohnS

Powershellを使用したい場合、これが私が持っているものです。コンピューターにSQL 2008 SMO DDLがある場合は1行目を使用します。SQL2005 SMOがある場合は1行目を削除し、#を削除して2行目を使用します。 。Your_Server_Name_Hereを、チェックするサーバーの名前に置き換えます。


Add-Type -AssemblyName "Microsoft.SqlServer.Smo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" -EA Stop
# Add-Type -AssemblyName "Microsoft.SqlServer.Smo, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" -EA Stop
# [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | Out-Null
$srvObject = = new-object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList 'Your_Server_Name_Here'
$srvObject.Databases | Select Name, LastBackupDate, LastDifferentialBackupDate, LastLogBackupDate
1
Bruce