privacy
Hlavní stránka > počítače > MSSQL – záloha a obnova MSSQL bez zálohovacího SW

MSSQL – záloha a obnova MSSQL bez zálohovacího SW

24.04.2014 (5,909 zobrazení) Komentuj Přejdi na komentáře

Někdy je třeba zálohovat MSSQL např. 1x za hodinu a nejsou peníze na nákup zálohovacího programu. Ideální řešení je ukládat denně full zálohu (v případě velké databáze full jen 1x týdně a denně diff) a každou hodinu transakční log.

Ve full verzi MSSQL by šlo joby nadefinovat v agentu přímo v MSSQL, ale budu vycházet z free verze MSSQL Express, která agenty nemá a je nutné zálohy shedulovat např. ve Windows Sheduleru. Nejdříve je nutné přidat uživatele s oprávněním na zálohování, nastavil jsem mu SA oprávnění.

 

Je nutné zkontrolovat, zda jsou databáze ve FULL RECOVERY MODELu – viz minulý post. Nyní stačí vytvořit například ve složce c:\scripts SQL scripty pro FULL a TRANS zálohu.
sqlbackup_full.sql


DECLARE @FileName varchar(250)
SELECT @FileName='N:\bck\' + REPLACE(convert(nvarchar(20),GetDate(),120),':','-') + '-PiKo-full.bak'
BACKUP DATABASE PiKo TO DISK = @FileName

sqlbackup_trans.sql


DECLARE @FileName varchar(250)
SELECT @FileName='N:\bck\' + REPLACE(convert(nvarchar(20),GetDate(),120),':','-') + '-PiKo-trans.trn'
BACKUP LOG PiKo TO DISK = @FileName

Dále k nim vytvoříme batky pro sheduler (cesta o osql dle verze MSSQL)
sqlbackup_full.bat


"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\osql.exe" -U pikobackup -P pikoheslo -i c:\scripts\sqlbackup_full.sql

sqlbackup_trans.bat


"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\osql.exe" -U pikobackup -P pikoheslo -i c:\scripts\sqlbackup_trans.sql

Nyní stačí spustit FULL a poté TRANS batku (případně si ji naplánovat v sheduleru)

Takto by nám ale složka se zálohami rostla – pokud nemáme možnost přesunu např. na pásky, je dobré data komprimovat. Zvolil jsem GNU 7-ZIP (v aktuální verzi neuměla move to archive tak jsem nasadil alfa verzi 9.32. alpha – časem vyměním).

Update 30.4. – vyskytl se problém s

Error:
Duplicate filename:

Stačilo dát cestu napřímo, bez definice v souboru

2archive.txt

</del>
<del> N:\bck\*</del>
<del> 

2archive.bat


<del>"C:\Program Files (x86)\7-Zip\7z" a -r -sdel N:\BackupSQL-7Z\SQLBACKUP-%date:~4,2%-%date:~7,2%-%date:~10%.7z @c:\scripts\2archive.txt</del>

"C:\Program Files (x86)\7-Zip\7z" a -r -sdel N:\BackupSQL-7Z\SQLBACKUP-%date:~4,2%-%date:~7,2%-%date:~10%.7z "z:\co_archivovat"

Tento job jsem nasheduloval na další noc před backupem (s rezervou, aby byl dokončen před spušěním další full), aby v případě obnovy druhý den nebylo nutné dekomprimovat data. Bude ještě nutné udělat mazání souborů starších než např. 7 dní, aby se mi nehromadily archívy.

No a následuje obnova přes klikátka – MSSQL Studio. Stačí se připojit do instance a viz komix:
Nejdříve klikneme na obnovu

Zadáme nový název (nebo původní a v otions zaklikneme přepsat), vybereme FROM DEVICE kde proklikáme na FULL zálohu a zaškrteme RESUME checkbox. Poté přepneme na záložku OPTIONS.

 

Jelikož budeme chtít obnovit i data z transakčního logu, vybereme v OPTIONS volbu viz screen

 

Databáze je obnovena, ale nelze ji používat a čeká na doobnovení transakčního logu. Tak mu ho dodáme

 

Vyklikat (ve verzi SQL2005 se musí po jednom, u novějších jsem netestoval) trans log a vždy dát Leave database nono-operational a u posledního nechat default nastaveni Leave database ready….

 

 

Categories: počítače Tags: ,
  1. October 30th, 2017 at 12:56 | #1

    Il tuo sito mi ha aiutato molto sapendo molte cose, grazie mille.

IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)

What is 12 + 5 ?
Please leave these two fields as-is:

content
language