Je potrebné pravidelne zálohovať databázy SQL. Už sme pokryli spôsoby, ako ľahko zálohovať všetky vaše SQL serverové databázy na lokálny pevný disk, ale to neposkytuje ochranu pred poruchou disku a / alebo systému. Ako ďalšiu vrstvu ochrany pred týmto druhom katastrofy môžete kopírovať alebo priamo vytvárať zálohy na sieťovom zdieľaní.
Zálohovať lokálne a potom skopírovať do zdieľania siete
Preferovaným a najpriamejším spôsobom, ako túto úlohu splniť, je jednoducho vytvoriť lokálnu zálohu databázy a potom skopírovať príslušný záložný súbor do zdieľanej siete. Môžete to urobiť vytvorením dávkového skriptu, ktorý vyzerá takto:
SET LocalFolder=C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBackup SqlCmd -E -Q “Backup Database MyDB To Disk=’%LocalFolder%MyDB.bak'” XCopy “%LocalFolder%MyDB.bak” “192.168.16.55BackupDatabases” /Z /V DEL “%LocalFolder%MyDB.bak”
Tento skript robí nasledujúce (riadok po riadku):
- Nastaví premennú na lokálny adresár zálohovania SQL.
-
Vytvorí zálohu SQL MyDB (pomocou systému Windows Authentication) do lokálneho adresára zálohovania SQL.
- Kopíruje lokálny záložný súbor na zdieľanú sieť.
- Odstráni súbor lokálnej zálohy.
Opäť je to preferovaná metóda, pretože funguje mimo krabice a pravdepodobnosť výpadku zálohy je minimálna od vytvorenia zálohy na lokálnom disku. Ak však nemáte dostatok miesta na uloženie miestnych kópií zálohovaných súborov, táto akcia zlyhá. V takom prípade budete musieť pridať ďalšie miesto na disku alebo zálohu priamo do zdieľanej siete.
Zálohovanie priamo na zdieľanie siete
Obvykle sa pokúsite vytvoriť zálohu priamo do zdieľanej siete pomocou príkazu, ako napríklad:
SqlCmd -E -Q “Backup Database MyDB To Disk=’192.168.16.55BackupDatabasesMyDB.bak'”
Budete pravdepodobne mať pravdepodobne chybu v podobe:
Msg 3201, Level 16, State 1, Server JF, Line 1 Cannot open backup device ‘192.168.16.55BackupDatabasesMyDB.bak’. Operating system error 5(Access is denied.). Msg 3013, Level 16, State 1, Server JF, Line 1 BACKUP DATABASE is terminating abnormally.
Táto chyba sa vyskytuje aj napriek tomu, že ste spustili príkaz na zálohovanie SQL pomocou funkcie Authentication systému Windows (prepínač -E) a účtu Windows ako možnosť prístupu a kopírovania súborov do zdieľanej zložky prostredníctvom programu Windows Explorer.
Dôvodom, prečo táto akcia zlyhá, je to, že príkaz SQL je vykonaný v medziach konta, na ktorom je spustená služba SQL Server ako. Pri zobrazení zoznamu služieb na vašom počítači s najväčšou pravdepodobnosťou uvidíte službu SQL Server spustenú ako (stĺpec Prihlásiť ako) buď lokálny systém alebo sieťová služba, ktoré sú systémové účty, ktoré nemajú prístup do siete.
V našom systéme zálohovanie príkazu sieťového zdieľania zlyhá, pretože máme službu SQL Server spustenú ako lokálny systém, ktorý sa znova nedokáže dostať k žiadnym sieťovým zdrojom.
Upravte vlastnosti služby SQL Server a na karte Prihlásenie nakonfigurujte službu na spustenie ako alternatívny účet, ktorý má prístupové práva k sieti.
SqlCmd -E -Q “Backup Database MyDB To Disk=’192.168.16.55BackupDatabasesMyDB.bak'”
Mali by ste vidieť správu o úspechu:
Processed 152 pages for database ‘MyDB’, file ‘MyDB’ on file 1. Processed 2 pages for database ‘MyDB’, file ‘MyDB_log’ on file 1. BACKUP DATABASE successfully processed 154 pages in 0.503 seconds (2.493 MB/sec).
S záložným súborom teraz v adresári zdieľania v sieti:
Dôležité informácie o sieti
Je dôležité poznamenať, že príkaz na zálohovanie očakáva, že sa bude môcť priamo pripojiť k sieťovej zdieľanosti bez výzvy na zadanie poverení. Účet, ktorý ste nakonfigurovali na spustenie služby SQL Server, musí mať dôveryhodné spojenie so zdieľanou sieťou, v ktorej príslušné poverenia umožňujú prístup, inak môže dôjsť k takejto chybe:
Msg 3201, Level 16, State 1, Server JF, Line 1 Cannot open backup device ‘192.168.16.55BackupDatabasesMyDB.bak’. Operating system error 1326(Logon failure: unknown user name or bad password.). Msg 3013, Level 16, State 1, Server JF, Line 1 BACKUP DATABASE is terminating abnormally.
Táto chyba naznačuje, že používateľské meno a heslo účtu neboli prijaté zdieľaním siete a príkaz zlyhal.
Ďalším problémom, ktorý je potrebné mať na pamäti, je zálohovanie vykonávané priamo na sieťovom zdroji, takže akékoľvek upútanie v sieťovom pripojení môže spôsobiť zlyhanie vašej zálohy. Z tohto dôvodu by ste mali zálohovať iba na miestach v sieti, ktoré sú stabilné (t. J. Pravdepodobne nie VPN).
Bezpečnostné dôsledky
Ako bolo spomenuté vyššie, je preferovaná metóda, pri ktorej lokálne zálohujete a potom skopírujete sieťovú zdieľanú sieť, pretože umožňuje spustiť službu SQL ako účet iba s miestnym prístupom k systému.
Spúšťaním služby ako alternatívneho účtu otvárate dvere možným bezpečnostným problémom. Napríklad malý skript SQL by sa mohol spustiť pod alternatívnym účtom a napadnúť sieťové zdroje. Navyše akékoľvek zmeny v príslušnom účte (zmeny hesla / vypršania platnosti alebo vymazanie / deaktivácia konta) spôsobia, že služba SQL Server sa nespustí.
Je dôležité mať na pamäti tieto body, ak spustíte inštanciu servera SQL Server pomocou alternatívneho účtu. Zatiaľ čo sa nezobrazujú zátky, ak sa vykonajú náležité opatrenia, mali by ste zvážiť pridanie ďalšieho miesta na pevnom disku a potom implementovať lokálnu zálohu a kopírovanie, aby ste mohli spustiť službu SQL pomocou lokálneho účtu.