Úvodná » ako » Ako zálohovať databázy SQL na zdieľanie siete

    Ako zálohovať databázy SQL na zdieľanie siete

    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 zdieľanej sieti.

    Zálohovať lokálne a potom Kopí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: Programové súboryMicrosoft SQL ServerMSSQL.1MSSQLBackup
    SqlCmd -E -Q "Zálohová databáza MyDB na disk ="% LocalFolder% MyDB.bak ""
    XCopy "% LocalFolder% MyDB.bak" "\ 192.168.16.55BackupDatabázy" / Z / V
    DEL "% LocalFolder% MyDB.bak"

    Tento skript robí nasledujúce (riadok po riadku):

    1. Nastavuje premennú na lokálny adresár zálohovania SQL.
    2. Vytvorí zálohu SQL MyDB (pomocou systému Windows Authentication) do lokálneho adresára zálohovania SQL.
    3. Kopíruje súbor lokálnej zálohy na zdieľanú sieť.
    4. 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í súborov zálohovania, táto akcia zlyhá. V takom prípade budete musieť pridať ďalší priestor 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 "Zálohová databáza MyDB To Disk =" \ 192.168.16.55BackupDatabasesMyDB.bak ""

    Budete pravdepodobne mať pravdepodobne chybu v podobe:

    Msg 3201, úroveň 16, stav 1, server JF, riadok 1
    Nedá sa otvoriť záložné zariadenie '\ 192.168.16.55BackupDatabasesMyDB.bak'. Chyba operačného systému 5 (prístup je zamietnutý.).
    Msg 3013, úroveň 16, stav 1, server JF, riadok 1
    ZÁLOHOVÁ DATABÁZA sa nezvyčajne končí.

    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ôvod, prečo táto akcia zlyhá, je, že príkaz SQL je spustený 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 zlyhá záloha na zdieľanie sieťového príkazu, pretože máme službu SQL Server spustenú ako lokálny systém, ktorý sa znova nedokáže dostať na žiadne sieťové zdroje.

    Aby bolo možné SQL zálohovať priamo do zdieľanej siete, musíme spustiť službu SQL Server ako lokálny účet, ktorý má prístup k 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.

    Keď kliknete na tlačidlo OK, zobrazí sa výzva, aby sa nastavenia neuplatnili až po reštarte služby.

    Reštartujte službu.

    Zoznam služieb by teraz mal ukázať, že služba SQL Server beží ako konto, na ktorom ste nakonfigurovali.

    Teraz, keď spustíte príkaz na zálohovanie priamo do zdieľanej siete:

    SqlCmd -E -Q "Zálohová databáza MyDB To Disk =" \ 192.168.16.55BackupDatabasesMyDB.bak ""

    Mali by ste vidieť správu o úspechu:

    Spracované 152 stránok pre databázu "MyDB", súbor "MyDB" v súbore 1.
    Spracované 2 strany pre databázu "MyDB", súbor "MyDB_log" v súbore 1.
    BACKUP DATABASE úspešne spracované 154 strán za 0,503 sekundy (2,493 MB / s).

    So záložným súborom teraz v adresári zdieľania siete:

    Dôvody zdieľania siete

    Je dôležité poznamenať, že príkaz na zálohovanie očakáva, že sa bude môcť priamo pripojiť k zdieľanej sieti bez toho, aby bola vyzvaná na zadanie poverení. Účet, ktorý ste nakonfigurovali na spustenie služby SQL Server, musí mať dôveryhodné pripojenie so zdieľanou sieťou, v ktorej príslušné poverenia umožňujú prístup, inak sa môže vyskytnúť chyba, ako je táto:

    Msg 3201, úroveň 16, stav 1, server JF, riadok 1
    Nedá sa otvoriť záložné zariadenie '\ 192.168.16.55BackupDatabasesMyDB.bak'. Chyba operačného systému 1326 (Zlyhanie prihlásenia: neznáme meno používateľa alebo zlé heslo.).
    Msg 3013, úroveň 16, stav 1, server JF, riadok 1
    ZÁLOHOVÁ DATABÁZA sa nezvyčajne končí.

    Táto chyba naznačuje, že používateľské meno a heslo účtu neboli prijaté sieťovou zdieľanou sieťou a príkaz zlyhal.

    Ďalším problémom, ktorý je potrebné mať na pamäti, je zálohovanie vykonávané priamo na sieťovom prostriedku, 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ť len na miesta 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 otvoríte dvere potenciálnym bezpečnostným problémom. Napríklad nebezpečný skript SQL by mohol spúšťať pod alternatívnym účtom a napadnúť sieťové zdroje. Okrem toho 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.