SQL-tietokantojen varmuuskopioiminen säännöllisesti on välttämätöntä. Olemme jo selvittäneet tapoja, joilla voidaan helposti varmuuskopioida kaikki SQL-palvelimen tietokannat paikalliseen kovalevyyn, mutta tämä ei suojaa asemilta ja / tai järjestelmän vioilta. Lisäsuojakerrostumana tämäntyyppisten katastrofien varalta voit kopioida tai luoda varmuuskopiot suoraan verkkoosioon.
Haluttu ja suorin tapa suorittaa tämä tehtävä on yksinkertaisesti luoda tietokannan paikallinen varmuuskopio ja kopioida sitten varmuuskopiotiedosto verkko-osuudelle. Voit tehdä tämän luomalla eräkirjoitus, joka näyttää tältä:
SET LocalFolder = C: Ohjelmatiedostot Microsoft 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"
Tämä kirjoitus tekee seuraavaa (rivi riviltä):
Jälleen tämä on suositeltava menetelmä, koska se toimii ulos laatikosta ja todennäköisyys varmuuskopioinnin epäonnistumisesta on vähäistä, koska varmuuskopio luodaan paikalliselle levylle. Jos sinulla ei kuitenkaan ole tarpeeksi levytilaa paikallisten kopioiden varmuuskopiotiedostojen tallentamiseen, tämä toiminta ei onnistu. Tällöin sinun on lisättävä lisää levytilaa tai varmuuskopiointia suoraan verkko-osuuteen.
Tyypillisesti, kun yrität luoda varmuuskopion suoraan verkko-osuuteen komennolla, kuten:
SqlCmd -E -Q "Backup Database MyDB To Disk =" \ 192.168.16.55BackupDatabasesMyDB.bak ""
Saat useimmiten todennäköisesti virheen seuraavilla tavoilla:
Messu 3201, taso 16, tila 1, palvelin JF, linja 1
Varmuuskopiolaitetta ei voi avata '\ 192.168.16.55BackupDatabasesMyDB.bak'. Käyttöjärjestelmän virhe 5 (Access denied.).
Messu 3013, taso 16, tila 1, palvelin JF, linja 1
BACKUP DATABASE päättyy epänormaalisti.
Tämä virhe ilmenee siitä huolimatta, että suoritit SQL-varmuuskomennon Windows Authentication (-E-kytkin) ja Windows-tilin avulla, koska voit käyttää tiedostoja ja kopioida niitä Windowsin Resurssienhallinnassa.
Tämän toiminnon epäonnistuminen johtuu siitä, että SQL-komento suoritetaan SQL Server -palvelun käynnissä olevan tilin rajojen sisällä. Kun tarkastelet Palveluluetteloa tietokoneellasi, todennäköisesti näet, että SQL Server-palvelu toimii (Lokitiedosto-sarakkeena) joko paikallisena järjestelmänä tai verkkopalveluna, joka on verkkotiliä, jolla ei ole verkkoyhteyttä.
Järjestelmässämme varmuuskopio verkon jakamiskomennolle epäonnistuu, koska meillä on SQL Server-palvelu, joka toimii paikallisena järjestelmänä, joka taas ei pääse mihinkään verkkoresurssiin.
Jotta SQL voi varmuuskopioida suoraan verkko-osuuteen, meidän on suoritettava SQL Server -palvelu paikallisena tilinä, jolla on pääsy verkkoresursseihin.
Muokkaa SQL Server -palvelun ominaisuuksia ja Kirjaudu sisään -välilehdellä määritä palvelu toimimaan vaihtoehtoisena tilinä, jolla on verkon käyttöoikeudet.
Kun valitset OK, saat kehotteen, että asetukset eivät tule voimaan ennen kuin palvelu käynnistetään uudelleen.
Käynnistä palvelu uudelleen.
Palveluluettelossa pitäisi nyt näyttää, että SQL Server -palvelu on käynnissä määritettynä tilinä.
Kun suoritat komennon varmuuskopioinnin suoraan verkko-osuuteen:
SqlCmd -E -Q "Backup Database MyDB To Disk =" \ 192.168.16.55BackupDatabasesMyDB.bak ""
Sinun pitäisi nähdä menestysviesti:
Käsitelty 152 sivua tietokannasta "MyDB", tiedosto 'MyDB' tiedostossa 1.
Käsitelty 2 sivua tietokannasta "MyDB", tiedosto 'MyDB_log' tiedostossa 1.
BACKUP DATABASE onnistuneesti käsitellyt 154 sivua 0.503 sekunnissa (2.493 MB / s).
Kun varmuuskopiotiedosto on nyt verkko-osakehakemistossa:
Verkon jakokohdat
On tärkeää huomata, että varmuuskopio-komento odottaa voivansa muodostaa yhteyden verkko-osuuteen ilman, että sitä pyydetään kirjautumistiedoista. Tilillä, jonka olet määrittänyt SQL Server -palvelun suoritettavaksi, täytyy olla luotettu yhteys verkko-osuuteen, jossa kyseiset tunnistetiedot antavat pääsyn, muuten tällainen virhe saattaa ilmetä:
Messu 3201, taso 16, tila 1, palvelin JF, linja 1
Varmuuskopiolaitetta ei voi avata '\ 192.168.16.55BackupDatabasesMyDB.bak'. Käyttöjärjestelmän virhe 1326 (kirjautumisvirhe: tuntematon käyttäjänimi tai huono salasana).
Messu 3013, taso 16, tila 1, palvelin JF, linja 1
BACKUP DATABASE päättyy epänormaalisti.
Tämä virhe ilmaisee, että verkko-osake ei hyväksynyt tilin käyttäjänimeä ja salasanaa ja komento epäonnistui.
Toinen asia, joka pitää mielessä on se, että varmuuskopio suoritetaan suoraan verkkoresurssille, minkä vuoksi verkon liittymät voivat aiheuttaa varmuuskopioinnin epäonnistumisen. Tästä syystä kannattaa vain varmuuskopioida verkon sijaintiin, jotka ovat vakaita (eli luultavasti ei VPN).
Turvallisuusvaikutukset
Kuten aiemmin mainittiin, suosittelemme menetelmää, jolla varmuuskopioit paikallisesti ja kopioit verkko-osuudelle, koska se sallii sinun käyttää SQL-palvelua tilinä, jolla on vain paikallisen järjestelmän käyttöoikeus.
Kun suoritat palvelua vaihtoehtoisena tilinä, avaat oven mahdollisille turvallisuuskysymyksille. Esimerkiksi haitallinen SQL-komentosarja voi suorittaa vaihtoehtoisen tilin alla ja hyökätä verkon resursseja. Lisäksi muutokset vastaavaan tiliin (salasanan muutokset / vanhentumiset tai tilin poistaminen / poistaminen käytöstä) aiheuttavat SQL Server -palvelun epäonnistumisen.
On tärkeää pitää nämä kohdat mielessä, jos suoritat SQL Server -esimerkin vaihtoehtoisella tilillä. Vaikka nämä eivät ole näyttösuppiloja, jos asianmukaisia varotoimia toteutetaan, harkitse lisää kiintolevytilaa ja asenna paikalliset varmuuskopiot ja kopiot, jotta voit käyttää SQL-palvelua paikallisella tilillä.