26. 1. 2007

 

Microsoft SQL Server 2005 - zálohování databází

Návod, jak nejjednodušeji vytvořit dávku nebo job, kterým zazálohuji databázi SQL Serveru 2005 (2000 nebo 7.0)

Nechci se zabývat tím, jak zálohování naklikat nějakým grafickým nástrojem jako je například Management Studio nebo Enterprise Manager. Zaměřím se na psaní dávky nebo jobu.

Součástí instalace každého SQL Serveru 2005 (tedy i Express Edition) je řádková utilita SQLCMD, která slouží k dávkovému spouštění SQL-skriptů. A my využijeme příkazu BACKUP DATABASE takto:

SQLCMD.EXE -S JmenoServeru -E -Q "BACKUP DATABASE JmenoDatabaze TO DISK='C:\Cesta\JmenoDatabaze.bak' WITH INIT"

Význam jednotlivých parametrů (pozor, jsou case-sensitive, takže záleží na velikosti, -e a -E by bylo něco jiného):

Pro SQL Server 2000 nebo 7.0 bychom místo SQLCMD.EXE použili OSQL.EXE (je i ve verzích MSDE 1.0 a MSDE2000).

Tento příkaz můžete vložit do dávky (.CMD nebo .BAT soubor) nebo z něj udělat job přes Naplánované úlohy (Scheduled Tasks v anglických Windows).

Pokud chcete zálohování urychlit, podívejte se do mého článku TZblok: Výrazné urychlení zálohování na Microsoft SQL Serveru.

Pro úplnost ještě uvádím, jak by vypadala obnova databáze (RESTORE DATABASE):

SQLCMD.EXE -S JmenoServeru -E -Q "RESTORE DATABASE JmenoDatabaze FROM DISK='C:\Cesta\JmenoDatabaze.bak' WITH REPLACE"

Štítky:

Komentáře:
Jenom dotaz. Když to dělám na lokálním disku, tak je to OK. Když to chci poslat na síťový disk, tak se soubor nevytvoří. Je tam nějaká "finta"?
 
Problém je v tom, že samotnou zálohu provádí služba SQL Server a ta běží pod nějakým účtem Windows. Většinou Local System nebo Local Service nebo Network Service (pod kterou, se rozhoduje při instalaci). Tento účet ale nemá žádná práva na síťové prostředky. Takže je několik cest, jak to vyřešit:

- zálohu dělat na lokál a pak nějakou dávkou přesouvat na síť

- změnit účet, pod kterým běží SQL Server na nějaký, který má práva na danou síťovou složku (mění se SQL Server Configuration Managerem). Pozor, to ovšem otevírá novou skupinu problémů - např. při změně hesla pro účet, pod kterým bude nově SQL Server běžet, při příštím restartu služba nenaběhne (z důvodu špatného hesla).
 
Okomentovat

Přihlášení k odběru Komentáře k příspěvku [Atom]





<< Domovská stránka