Temat: Synchronizacja kopii zapasowych z katalogiem
Witam wszystkich.W jaki sposób w MSMSQL Server 2005 zachować synchronizację pomiędzy posiadanymi kopiami zapasowymi a ich katalogiem (msdb.backupset)?
Baza pracująca w trybie Full Recovery Mode. Robię każdą kopię do innego pliku skryptem.
@echo off
set dbname=test,test1,master,msdb
set h=%TIME:~0,2%
set h=%h: =%
set m=%TIME:~3,2%
set m=%m: =%
set s=%TIME:~6,2%
set m=%m: =%
set dt=%date%
set dt=%dt: =%
set backup_dir=x:\sciezka_do_kopii
FOR %%A IN (%dbname%) DO (
echo *** %date% %TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2% Backup Database %%A ***
mkdir %backup_dir%\%%A\full-%dt%_%h%_%m%
rem backupset
sqlcmd -S nazwa_hosta\SQLEXPRESS -Q "BACKUP DATABASE [%%A] TO DISK = N'%backup_dir%\%%A\full-%dt%_%h%_%m%\%%A_full.bak' WITH RETAINDAYS = 2, NOFORMAT, NOINIT, NAME = N'%backup_dir%\%%A\full-%dt%_%h%_%m%\%%A_full.bak', SKIP, STATS = 20" > %backup_dir%\%%A\full-%dt%_%h%_%m%\%%A_full.log
rem veryfication backupset
sqlcmd -S nazwa_hosta\SQLEXPRESS -Q "declare @backupSetId as int select @backupSetId = position from msdb..backupset where database_name=N'%%A' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'%%A') if @backupSetId is null begin raiserror(N'Verify failed. Backup information for database ''%%A'' not found.', 16, 1) end RESTORE VERIFYONLY FROM DISK = N'%backup_dir%\%%A\full-%dt%_%h%_%m%\%%A_full.bak' WITH FILE = @backupSetId, NOUNLOAD, NOREWIND" >> %backup_dir%\%%A\full-%dt%_%h%_%m%\%%A_full.log
echo *** %date% %TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2% Backup Database %%A Complete ***
Kopie loga wykonuję w analigiczny sposób.
W jaki sposób stare kopie powinny być usuwane? Czy jest jakiś prosty sposób na jednoczesne usuwanie starych kopii z katalogu oraz z dysku?
Czy parameter RETAINDAYS = 2 powinien powodować automatyczne kasowanie starych kopii z dysku oraz z katalogu?
Czy istnieją narzędzia do sprawdzania czy istnieją na dysku wszystkie kopie zapasowe, które znajdują się w katalogu?
Za podpowiedzi z góry dzieki.
Pozdrawiam