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
Krzysztof Stachyra

Krzysztof Stachyra Szef Wydziału
Produkcji Systemów
Handlowo-Magazynowyc
h i ...

Temat: Synchronizacja kopii zapasowych z katalogiem

gotowych narzędzi nie znam, retaindays oznacza czas ważności do nadpisania na nośniku a nie do automatycznego kasowania danych.
Gdybyś chciał to zsynchronizować to pewnie trzeba by skonstruować dynamicznego SQLa, który wykona operacje najpierw na tabeli a później analogicznie przez xp_cmdshell wykona kasowanie plików z katalogu.

Temat: Synchronizacja kopii zapasowych z katalogiem

Dzięki za szybką odpowiedź.

Wygląda na to, że synchronizacja katalogu kopii w bazie MS nie jest tak istotna i ten temat został trochę pominięty.

Wydaje mi się ,że usuwanie z tabeli można by obsłużyć przez msdb.dbo.sp_delete_backuphistory.Ten post został edytowany przez Autora dnia 05.07.13 o godzinie 08:15
Daniel N.

Daniel N. Senior IT Architect,
DBA

Temat: Synchronizacja kopii zapasowych z katalogiem

Procedura sp_delete_backuphistory usunie Ci informacje na temat wszystkich backupów poniżej wyznaczonej daty.
Na podstawie wyżej wskazanej procedury możesz stworzyć coś swojego do usuwania historii baz wskazanych przez Ciebie.

USE msdb
GO
EXEC sp_helptext 'dbo.sp_delete_backuphistory'
GO

--
Pozdrawiam,
Daniel

Następna dyskusja:

Synchronizacja wybranych tabel




Wyślij zaproszenie do