DBA ekibimiz aşağıdakileri kullanarak yedeklemeleri doğrulamaz TSQL
(bu , yedeklemeden sonra kolayca yapılabilir ve neredeyse hiç zaman almaz, bu yüzden neden olmasın):
RESTORE VERIFYONLY
FROM DISK = 'D:\Backups\LOCATION'
Geçmişte sorunları vardı, bu yüzden ondan öğreneceklerini düşünüyor olsak da bilmiyorlardı. Bunu yapmak için bir Powershell betiği oluşturdum çünkü yaklaşık 100+ sunucumuz var ve bu betiği sadece geçerli olduklarından emin olmak için tüm yedeklemelere karşı çalıştırmak istiyorum. Komut altında doğru çalışır (o kırmak veya hataları atmak etmediğini) o devletler normalde SSMS alacağı Powershell basılmış mesajı geri almak için bir yol varsa, ben merak ediyorum dosya 1'dir üzerinde yedekleme kümesi doğrulama olarak geçerli .
$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
çıktıyı hemen ana bilgisayara yazdırmak yerine daha sonra kullanmak üzere yeniden yönlendirmek istiyorsanız da iyi olur .
invoke-sqlcmd -verbose
?