If-Koubou

Kako sigurnosno kopirati SQL baze podataka u mrežni udio

Kako sigurnosno kopirati SQL baze podataka u mrežni udio (Kako da)

Podržavanje SQL baza podataka redovito je potrebno. Već smo pokrivali načine kako lako sigurnosno kopirati sve vaše SQL poslužiteljske baze podataka na lokalni tvrdi disk, ali to ne štiti od pogona i / ili neuspjeha sustava. Kao dodatni sloj zaštite od ove vrste katastrofe možete kopirati ili izravno izraditi sigurnosne kopije u mrežnom udjelu.

Lokalno kopiranje i kopiranje na mrežni udio

Poželjan i najizravniji način ostvarivanja ovog zadatka je jednostavno stvaranje lokalne sigurnosne kopije baze podataka, a zatim kopirati odgovarajuću sigurnosnu kopiju datoteke u mrežni udio. To možete učiniti tako da izradite skupnu skriptu koja izgleda ovako:

SET LocalFolder = C: Programske datotekeMicrosoft SQL ServerMSSQL.1MSSQLBackup
SqlCmd -E -Q "Baza podataka sigurnosne kopije MyDB na disk ="% LocalFolder% MyDB.bak ""
XCopy "% LocalFolder% MyDB.bak" "\ 192.168.16.55BackupDatabases" / Z / V
DEL "% LocalFolder% MyDB.bak"

Ova skripta čini sljedeće (redak po retku):

  1. Postavlja varijablu na lokalni SQL rezervni direktorij.
  2. Stvara SQL sigurnosnu kopiju MyDB (koristeći Windows Authentication) u lokalni SQL backup direktorij.
  3. Kopira datoteku lokalne sigurnosne kopije u mrežni udio.
  4. Briše lokalnu datoteku sigurnosne kopije.

Ponovno, to je metoda koja se preporučuje jer radi izvan okvira i vjerojatnost sigurnosnog kopiranja je minimalna jer se sigurnosna kopija stvara na lokalnom disku. Međutim, ako nemate dovoljno prostora na disku za pohranjivanje lokalnih kopija sigurnosnih kopija, ova akcija neće uspjeti. U tom slučaju, morat ćete dodati dodatni prostor na disku ili kopirati izravno u mrežni udio.

Sigurnosno kopiranje izravno na mrežni udio

Obično, kada pokušavate stvoriti sigurnosnu kopiju izravno na mrežni udio pomoću naredbe kao što su:

SqlCmd -E -Q "Baza podataka sigurnosne kopije MyDB na disk =" \ 192.168.16.55BackupDatabasesMyDB.bak ""

Uglavnom ćete vjerojatno dobiti pogrešku u skladu s:

Msg 3201, Razina 16, Država 1, Poslužitelj JF, Linija 1
Nije moguće otvoriti sigurnosno kopiranje uređaja \ 192.168.16.55BackupDatabasesMyDB.bak '. Pogreška u operacijskom sustavu 5 (Pristup odbijen.).
Msg 3013, Razina 16, Država 1, Poslužitelj JF, Linija 1
BACKUP DATABASE prestaje abnormalno.

Ta se pogreška pojavljuje unatoč činjenici da ste pokrenuli SQL backup naredbu koristeći Windows Authentication (-E prekidač) i Windows račun kao mogućnost pristupa i kopiranja datoteka u udio putem programa Windows Explorer.

Razlog zbog kojeg ova akcija ne uspije je zato što se naredba SQL izvršava unutar granica računa kojim se SQL Server poslužitelj koristi. Kada pregledavate popis usluga na računalu, najvjerojatnije će se usluga SQL Server prikazivati ​​kao (stupac Prijava kao) lokalnog ili mrežnog servisa koji su računalni sustavi koji nemaju mrežni pristup.

Na našem sustavu sigurnosna kopija naredbe za mrežni udjel ne uspijeva jer imamo servis SQL Server kao lokalni sustav koji, opet, ne može doći do bilo kojeg mrežnog resursa.

Kako bismo SQL omogućili backup izravno na mrežni udio, moramo pokrenuti servis SQL Server kao lokalni račun koji ima pristup mrežnim resursima.

Uredite svojstva usluge SQL Server i na kartici Prijava, konfigurirati uslugu da se pokrene kao zamjenski račun s pravima pristupa mreži.

Kada kliknete U redu, dobit ćete upit da postavke neće stupiti na snagu dok se usluga ne ponovo pokrene.

Ponovo pokrenite uslugu.

Popis usluga trebao bi sad pokazati da usluga SQL Server radi kao račun koji ste konfigurirali.

Sada kad pokrenete naredbu za sigurnosno kopiranje izravno na mrežni udio:

SqlCmd -E -Q "Baza podataka sigurnosne kopije MyDB na disk =" \ 192.168.16.55BackupDatabasesMyDB.bak ""

Trebali biste vidjeti poruku o uspjehu:

Obrađeno 152 stranica za bazu podataka 'MyDB', datoteku 'MyDB' u datoteci 1.
Obradio 2 stranice za bazu podataka 'MyDB', datoteku 'MyDB_log' u datoteci 1.
BACKUP DATABASE uspješno je obrađeno 154 stranica u 0.503 sekundi (2.493 MB / s).

S datotečnom sigurnosnom kopijom sada u direktoriju za dijeljenje mreže:

Razmatranja mrežnih dijelova

Važno je napomenuti da sigurnosna kopija naredbe očekuje da će se moći izravno povezati s dijeljenjem mreže bez zatraživanja vjerodajnica. Račun za koji ste konfigurirali posluživanje usluge SQL Server mora imati pouzdanu vezu s mrežnim dijelom u kojem odgovarajuće vjerodajnice dopuštaju pristup, inače se može pojaviti takva pogreška:

Msg 3201, Razina 16, Država 1, Poslužitelj JF, Linija 1
Nije moguće otvoriti sigurnosno kopiranje uređaja \ 192.168.16.55BackupDatabasesMyDB.bak '. Pogreška u operacijskom sustavu 1326 (prijava neuspjeha: nepoznato korisničko ime ili loša lozinka.).
Msg 3013, Razina 16, Država 1, Poslužitelj JF, Linija 1
BACKUP DATABASE prestaje abnormalno.

Ova pogreška pokazuje da korisničko ime i lozinka računa nisu prihvaćeni od strane mrežnog dijela i naredba nije uspjela.

Još jedno pitanje koje treba imati na umu jest da se sigurnosna kopija izvršava izravno na mrežni resurs, tako da bilo koji štucanje u mrežnoj vezi može uzrokovati neuspjeh sigurnosne kopije. Iz tog razloga trebate samo sigurnosno kopirati mrežne lokacije koje su stabilne (tj. Vjerojatno nisu VPN).

Sigurnosne posljedice

Kao što je ranije spomenuto, preferira se način na koji lokalno kopirajte lokalnu kopiju, a zatim kopirajte na mrežni udio, jer vam omogućuje da pokrenete SQL uslugu kao račun samo lokalnim pristupom sustavu.

Pokretanjem usluge kao alternativnog računa otvarate vrata potencijalnim sigurnosnim problemima. Na primjer, zlonamjerna SQL skripta mogla bi se izvršiti pod alternativnim računom i napasti mrežne resurse. Osim toga, sve izmjene na odgovarajućem računu (izmjene / isteka zaporke ili brisanje / onemogućivanje računa) uzrokovat će neuspjeh pokretanja usluge SQL Server.

Važno je držati ove točke na umu ako pokrenete instancu SQL Server pomoću alternativnog računa. Iako to nisu pokazivači ako se poduzmu odgovarajuće mjere predostrožnosti, trebali biste razmotriti dodavanje dodatnog prostora na tvrdom disku, a zatim implementirati lokalnu kopiju i kopiranje tako da možete pokrenuti SQL uslugu pomoću lokalnog računa.