Domača » kako » Kako izdelati varnostno kopijo baz podatkov SQL v omrežno skupno rabo

    Kako izdelati varnostno kopijo baz podatkov SQL v omrežno skupno rabo

    Redno je treba varnostno kopirati baze podatkov SQL. Smo že pokrili načine, kako lahko preprosto varnostno kopirate vse vaše podatkovne baze strežnika SQL na lokalni trdi disk, vendar to ne ščiti pred napako pogona in / ali sistema. Kot dodatno zaščito pred to vrsto nesreče lahko kopirate ali neposredno ustvarite varnostne kopije v omrežnem omrežju.

    Varnostno kopirajte lokalno in nato kopirajte v omrežno skupno rabo

    Najprimernejši in najbolj neposreden način za izpolnitev te naloge je preprosto ustvariti lokalno varnostno kopijo baze podatkov in nato kopirati ustrezno datoteko varnostne kopije v omrežni delež. To lahko naredite tako, da ustvarite paketni skript, ki izgleda takole:

    SET LocalFolder = C: Programske datotekeMicrosoft SQL ServerMSSQL.1MSSQLBackup
    SqlCmd -E -Q “Varnostna kopija baze podatkov MyDB To Disk ="% LocalFolder% MyDB.bak ""
    XCopy “% LocalFolder% MyDB.bak” “\ t
    DEL “% LocalFolder% MyDB.bak”

    Ta skript izvaja naslednje (vrstica za vrstico):

    1. Nastavi spremenljivko v lokalni imenik za varnostno kopiranje SQL.
    2. Ustvari varnostno kopijo SQL za MyDB (z uporabo overjanja Windows) v lokalni imenik za varnostno kopiranje SQL.
    3. Kopira lokalno varnostno kopijo v omrežni delež.
    4. Izbriše lokalno datoteko varnostne kopije.

    Tudi to je najprimernejša metoda, ker deluje iz škatle in verjetnost napake varnostne kopije je minimalna, ker je varnostna kopija ustvarjena na lokalnem disku. Vendar, če nimate dovolj prostora na disku za shranjevanje lokalnih kopij varnostnih kopij, to dejanje ne bo uspelo. V tem primeru boste morali dodati dodatni prostor na disku ali varnostno kopijo neposredno v omrežni delež.

    Varnostno kopiranje neposredno v omrežno skupno rabo

    Običajno, ko skušate ustvariti varnostno kopijo neposredno v omrežnem omrežju z ukazom, kot je:

    SqlCmd -E -Q “Varnostna kopija podatkovne baze MyDB na disk =" \ t

    Verjetno boste verjetno dobili napako v skladu z:

    Msg 3201, nivo 16, stanje 1, strežnik JF, vrstica 1
    Naprave za varnostno kopiranje ni mogoče odpreti "\ t Napaka operacijskega sistema 5 (Dostop je zavrnjen.).
    Msg 3013, nivo 16, stanje 1, strežnik JF, vrstica 1
    BACKUP DATABASE se nenormalno konča.

    Do te napake pride kljub dejstvu, da ste zagnali ukaz za varnostno kopiranje SQL s preverjanjem pristnosti Windows (stikalo -E) in računom Windows kot možnostjo dostopa in kopiranja datotek v skupno rabo prek programa Windows Explorer.

    Razlog za neuspeh tega dejanja je, da se ukaz SQL izvaja v mejah računa, ki ga izvaja storitev SQL Server. Ko si v računalniku ogledate seznam storitev, boste verjetno videli storitev strežnika SQL Server, ki se izvaja kot (stolpec za prijavo kot) lokalni sistem ali omrežna storitev, ki so sistemski računi, ki nimajo dostopa do omrežja.

    V našem sistemu varnostna kopija ukaza za omrežno skupno rabo ne uspe, ker imamo storitev SQL Server, ki deluje kot lokalni sistem, ki spet ne more priti do omrežnih virov..

    Da bi SQL dovolil varnostno kopiranje neposredno v omrežni delež, moramo zagnati storitev SQL Server kot lokalni račun, ki ima dostop do omrežnih virov..

    Urejanje lastnosti storitve SQL Server in na kartici Prijava se konfigurira, da se storitev izvaja kot nadomestni račun, ki ima pravice dostopa do omrežja.

    Ko kliknete V redu, boste dobili poziv, da nastavitve ne bodo začele veljati, dokler se storitev ne zažene.

    Ponovno zaženite storitev.

    Seznam storitev naj bi zdaj prikazoval, da se storitev SQL Server izvaja kot račun, ki ste ga konfigurirali.

    Zdaj, ko zaženete ukaz za neposredno varnostno kopiranje v omrežno skupno rabo:

    SqlCmd -E -Q “Varnostna kopija podatkovne baze MyDB na disk =" \ t

    Videli boste sporočilo o uspehu:

    Obdelanih 152 strani za podatkovno bazo 'MyDB', datoteka 'MyDB' v datoteki 1.
    Obdelana je bila 2 strani za podatkovno bazo 'MyDB', datoteka 'MyDB_log' v datoteki 1.
    BACKUP DATABASE je uspešno obdelalo 154 strani v 0,503 sekunde (2,499 MB / s).

    Z datoteko varnostne kopije, ki je zdaj v omrežnem imeniku:

    Premisleki o skupni rabi omrežja

    Pomembno je vedeti, da ukaz za varnostno kopiranje pričakuje, da se bo lahko neposredno povezal z omrežnim deležem, ne da bi bil pozvan za poverilnice. Račun, ki ste ga konfigurirali za izvajanje strežnika SQL Server, mora imeti zanesljivo povezavo z omrežnim omrežjem, kjer ustrezni poverilnici omogočajo dostop, sicer lahko pride do napake:

    Msg 3201, nivo 16, stanje 1, strežnik JF, vrstica 1
    Naprave za varnostno kopiranje ni mogoče odpreti "\ t Napaka operacijskega sistema 1326 (Neuspela prijava: neznano uporabniško ime ali slabo geslo.).
    Msg 3013, nivo 16, stanje 1, strežnik JF, vrstica 1
    BACKUP DATABASE se nenormalno konča.

    Ta napaka kaže, da omrežno omrežje ni sprejelo uporabniškega imena in gesla računa, zato ukaz ni uspel.

    Druga stvar, ki jo je treba upoštevati, je, da se varnostna kopija izvede neposredno v omrežnem viru, zato lahko morebitne napake v omrežni povezavi povzročijo neuspeh varnostne kopije. Zaradi tega morate varnostno kopirati samo na omrežna mesta, ki so stabilna (to je verjetno ne VPN)..

    Varnostne posledice

    Kot smo že omenili, je zaželena uporaba metode, kjer lokalno varnostno kopirate in nato kopirate v omrežni delež, saj vam omogoča, da zaženete storitev SQL kot račun z dostopom do lokalnega sistema.

    Z izvajanjem storitve kot nadomestnega računa odprete vrata potencialnim varnostnim vprašanjem. Na primer, zlonamerni SQL skript bi se lahko izvajal pod nadomestnim računom in napadal omrežne vire. Poleg tega bodo vse spremembe ustreznega računa (spremembe gesel / izteka gesla ali brisanje / onemogočanje računa) povzročile, da se storitev SQL Server ne zažene..

    Pomembno je, da obdržite te točke v mislih, če izvajate primerek SQL Server z nadomestnim računom. Čeprav se ne prikažejo zamaški, če so sprejeti ustrezni varnostni ukrepi, razmislite o dodajanju dodatnega prostora na trdem disku in nato izvedite lokalno varnostno kopiranje in kopiranje, tako da lahko zaženete storitev SQL z lokalnim računom..