Kuidas varundada SQL-i andmebaase võrgu jagamisele
SQL-andmebaaside varundamine on regulaarselt vajalik. Oleme juba käsitlenud viise, kuidas kõiki SQL-serveri andmebaase hõlpsasti varundada kohalikule kõvakettale, kuid see ei kaitse draivi ja / või süsteemi rikke eest. Sellise katastroofi vastase täiendava kaitsekihina saate kopeerida või otseselt luua varukoopiaid võrgusüsteemis.
Varunda lokaalselt ja seejärel kopeeri võrku
Eelistatud ja kõige otsesem viis selle ülesande täitmiseks on lihtsalt andmebaasi kohaliku varukoopia loomine ja seejärel vastava varufaili kopeerimine võrgu jagamisse. Seda saate teha, luues partii skripti, mis näeb välja selline:
SET LocalFolder = C: programmifailidMicrosoft SQL ServerMSSQL.1MSSQLBackup
SqlCmd -E -Q “Varukoopiate andmebaas MyDB kettale ="% LocalFolder% MyDB.bak "”
XCopy “% LocalFolder% MyDB.bak” “191.168.16.55BackupDatabases” / Z / V
DEL “% LocalFolder% MyDB.bak”
See skript teeb järgmist (rea järgi):
- Määrab kohaliku SQL varukataloogi muutuja.
- Loob SQL-varukoopia MyDB-st (kasutades Windowsi autentimist) kohalikule SQL varukataloogile.
- Kopeerib kohaliku varundusfaili võrguvõrku.
- Kustutab kohaliku varukoopia faili.
Jällegi, see on eelistatud meetod, sest see töötab välja kasti ja varukoopia ebaõnnestumise tõenäosus on minimaalne, kuna varukoopia luuakse kohalikul kettal. Kui aga teil ei ole piisavalt vaba ruumi varukoopiate kohalike koopiate salvestamiseks, siis see toiming ebaõnnestub. Sellisel juhul peate lisama täiendava kettaruumi või varukoopia otse võrgu jagamisele.
Varundamine otse võrgu jagamisele
Tavaliselt, kui proovite luua varukoopia otse võrgupõhisele käsule, näiteks:
SqlCmd -E -Q “Varukoopiate andmebaas MyDB kettale =" \ t
Enamasti tõenäoliselt tekib viga järgmiste näitajate järgi:
Msg 3201, tase 16, olek 1, server JF, liin 1
Varundusseadet ei saa avada '19.168.16.55BackupDatabasesMyDB.bak'. Operatsioonisüsteemi viga 5 (juurdepääs keelatakse.).
Sõnum 3013, tase 16, olek 1, server JF, liin 1
BACKUP DATABASE lõpetab ebanormaalselt.
See tõrge ilmneb hoolimata asjaolust, et kasutasite Windowsi autentimist (-E-lülitit) ja Windowsi kontot SQL-varunduskäskuna failide jagamiseks ja kopeerimiseks Windows Exploreri kaudu.
Põhjus, miks see toiming ebaõnnestub, on see, et SQL käsk täidetakse selle konto piires, kus SQL Server teenus töötab. Kui vaatate oma arvutis Teenuste loendit, näete tõenäoliselt, et SQL Serveri teenus töötab (veerus Logi sisse) kas Kohalik süsteem või võrguteenus, mis on võrgu kontod, millel puudub juurdepääs võrgule.
Meie süsteemis ebaõnnestub varukoopia võrgupõhisele käsule, sest meil on SQL Server teenus, mis töötab kohaliku süsteemina ja mis jälle ei pääse ühegi võrguressursi juurde.
Selleks, et võimaldada SQL-il varukoopiaid otse võrgupartnerile varustada, peame SQL Serveri teenust kasutama kohaliku kontona, millel on juurdepääs võrguressurssidele.
Redigeerige SQL Serveri teenuse omadusi ja seadistage vahekaardil Logi sisse, et teenus töötaks alternatiivse kontona, millel on võrgule juurdepääsu õigused.
Kui klõpsate nuppu OK, saate teate, et seaded ei jõustu enne teenuse taaskäivitamist.
Taaskäivitage teenus.
Teenuste loend peaks nüüd näitama, et SQL Serveri teenus töötab nii nagu teie määratud konto.
Nüüd, kui käivitate käsu, et varundada otse võrgupartnerile:
SqlCmd -E -Q “Varukoopiate andmebaas MyDB kettale =" \ t
Peaksite nägema edu sõnumit:
Töötles 152 lehekülge andmebaasi 'MyDB', faili 'MyDB' failis 1.
Töötles 2 lehekülge andmebaasi 'MyDB', faili 'MyDB_log' failis 1.
BACKUP DATABASE töötles edukalt 154 lehekülge 0,503 sekundiga (2,443 MB / s).
Varukoopiafail on nüüd võrgu jagamise kataloogis:
Võrgu jagamise kaalutlused
Oluline on märkida, et varukäsk loodab, et see suudab võrguühenduse otse ühendada ilma, et neile küsitaks volitusi. Konto, millega olete konfigureerinud SQL Serveri teenuse, peab töötama võrguühendusega, kus vastavad volitused võimaldavad juurdepääsu, vastasel juhul võib tekkida selline viga:
Msg 3201, tase 16, olek 1, server JF, liin 1
Varundusseadet ei saa avada '19.168.16.55BackupDatabasesMyDB.bak'. Operatsioonisüsteemi viga 1326 (sisselogimise ebaõnnestumine: tundmatu kasutajanimi või halb parool.).
Sõnum 3013, tase 16, olek 1, server JF, liin 1
BACKUP DATABASE lõpetab ebanormaalselt.
See viga näitab, et võrgu jagamine ei võtnud konto kasutajanime ja parooli vastu ning käsk nurjus.
Teine probleem, mida meeles pidada, on varukoopia tegemine otse võrguressursile, nii et kõik võrguga ühenduses olevad luksused võivad teie varukoopia ebaõnnestuda. Sel põhjusel peaksite varundama ainult võrgukohtadesse, mis on stabiilsed (st tõenäoliselt mitte VPN).
Turvalisuse mõjud
Nagu eelnevalt mainitud, eelistatakse meetodit, kus te varukoopiaid teete ja seejärel kopeerite võrgupartnerile, kuna see võimaldab SQL Serveri käivitamist ainult kohaliku süsteemi juurdepääsuga kontona.
Teenusega alternatiivse konto käivitamisel avate ukse potentsiaalsetele turvaküsimustele. Näiteks võib pahatahtlik SQL-skript täita alternatiivse konto all ja rünnata võrguressursse. Lisaks põhjustab iga konto muutmine (parooli muutmine / aegumine või konto kustutamine / blokeerimine) SQL Serveri teenuse käivitamata jätmise.
Oluline on neid punkte meeles pidada, kui kasutate oma SQL Serveri eksemplari alternatiivse konto abil. Kuigi need ei näita korralikke ettevaatusabinõusid kasutades korgid, peaksite kaaluma täiendava kõvaketta ruumi lisamist ja seejärel kohaliku varunduse ja koopia rakendamist, et saaksite SQL-teenust kohaliku konto abil käivitada.