私たちのDBAチームは、以下を使用してバックアップを検証していませんTSQL
(バックアップ後に簡単に実行でき、ほとんど時間がかからないので、理由がわかりません)。
RESTORE VERIFYONLY
FROM DISK = 'D:\Backups\LOCATION'
彼らは過去に問題を抱えていたので、そこから学べると思っていても、そうではありません。約100台以上のサーバーがあり、すべてのバックアップに対してこのスクリプトを実行して、それらが有効であることを確認するため、これを行うためにPowershellスクリプトを作成しました。以下のスクリプトは正しく実行されます(エラーが発生したり、エラーが発生したりしないため)、PowerShellで印刷されたメッセージを取得する方法があり、SSMSで通常取得する方法があり、ファイル1のバックアップセットは検証として有効です。
$SqlCon = New-Object System.Data.SqlClient.SqlConnection
$SqlCon.ConnectionString = "SERVER=SERV\INST;Integrated Security=true;DATABASE=master"
$baks = Get-ChildItem "D:\Backups\" -Filter *.BAK
foreach ($bak in $baks)
{
$SqlCon.Open()
$cd = New-Object System.Data.SqlClient.SqlCommand
$cd.Connection = $SqlCon
$cd.CommandText = "RESTORE VERIFYONLY FROM DISK = @f"
$cd.Parameters.Add("@f", $bak.FullName)
$cd.ExecuteNonQuery()
$SqlCon.Close()
}
invoke-sqlcmd -verbose
?