Atsarginių kopijų kūrimas SQL duomenų bazėse yra privalomas. Mes jau apžvelgėme būdus, kaip galima lengvai atsarginę kopiją visus savo SQL serverio duomenų bazes vietiniame kietajame diske, tačiau tai neapsaugo nuo diskų ir (arba) sistemos gedimų. Kaip papildomas apsaugos sluoksnis nuo šio tipo nelaimės, galite kopijuoti arba tiesiogiai sukurti atsargines kopijas tinklo daliniuose.
Atsarginė kopija vietoje ir tada Kopijuoti į tinklo dalijimą
Norint atlikti šią užduotį pageidaujamas ir tiesiogiausias būdas yra sukurti vietinę duomenų bazės atsarginę kopiją ir nukopijuoti atitinkamą atsarginę failą į tinklo dalį. Tai galite padaryti sukūrę paketinį scenarijų, kuris atrodo taip:
SET LocalFolder=C:Program FilesMicrosoft 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”
Šis scenarijus yra toks (eilutė po eilutės):
- Nustato kintamąjį vietiniam SQL atsarginių kopijų katalogui.
-
Sukuria MyDB SQL atsarginę kopiją (naudojant Windows autentifikavimą) vietiniam SQL atsarginės kopijos katalogui.
- Kopijuoja vietinę atsarginę kopiją prie tinklo.
- Ištrina vietinį atsarginės kopijos failą.
Vėlgi, tai yra pageidaujamas metodas, nes jis veikia iš lauko, o tikimybė, kad atsarginė gedimas yra minimalus, nes atsarginė kopija sukurta vietiniame diske. Tačiau, jei neturite pakankamai vietos diske vietos kopijų atsarginėms kopijoms kopijuoti, šis veiksmas nepavyks. Tokiu atveju turėsite pridėti papildomos vietos diske ar atsarginės kopijos tiesiai į tinklo dalį.
Atsarginė kopija tiesiai į tinklo dalijimąsi
Paprastai, kai bandote sukurti atsarginę kopiją tiesiai prie tinklo dalijimosi naudodami tokią komandą kaip:
SqlCmd -E -Q “Backup Database MyDB To Disk=’192.168.16.55BackupDatabasesMyDB.bak'”
Jūs greičiausiai gausite klaidą pagal šias eilutes:
Msg 3201, Level 16, State 1, Server JF, Line 1 Cannot open backup device ‘192.168.16.55BackupDatabasesMyDB.bak’. Operating system error 5(Access is denied.). Msg 3013, Level 16, State 1, Server JF, Line 1 BACKUP DATABASE is terminating abnormally.
Ši klaida atsiranda nepaisant to, kad paleidėte SQL atsarginės kopijos komandą naudodami Windows autentifikavimą (-E jungiklį) ir "Windows" paskyrą kaip galimybę pasiekti ir kopijuoti failus į "Windows Explorer".
Mūsų sistemoje atsarginės kopijavimas į tinklo dalijimosi komandą nepavyksta, nes mes turime SQL Server tarnybą, veikiančią kaip vietinė sistema, kuri vėl negali patekti į bet kuriuos tinklo išteklius.
Redaguokite "SQL Server" paslaugų savybes ir skirtuką "Prisijungti", konfigūruokite paslaugą kaip alternatyvią paskyrą, turintį tinklo prieigos teises.
SqlCmd -E -Q “Backup Database MyDB To Disk=’192.168.16.55BackupDatabasesMyDB.bak'”
Turėtumėte pamatyti sėkmės pranešimą:
Processed 152 pages for database ‘MyDB’, file ‘MyDB’ on file 1. Processed 2 pages for database ‘MyDB’, file ‘MyDB_log’ on file 1. BACKUP DATABASE successfully processed 154 pages in 0.503 seconds (2.493 MB/sec).
Dabar kopijavimo failas tinklo aplanke:
Tinklo dalijimosi aspektai
Svarbu pažymėti, kad atsarginė komanda tikisi, kad galės prisijungti tiesiai prie tinklo, nepalaikydami įgaliojimų. Sąskaita, kuria sukonfigūravote SQL Server paslaugą paleisti, turi būti patikimas ryšys su tinklo dalimi, kur atitinkami įgaliojimai leidžia pasiekti, kitaip gali atsirasti tokia klaida:
Msg 3201, Level 16, State 1, Server JF, Line 1 Cannot open backup device ‘192.168.16.55BackupDatabasesMyDB.bak’. Operating system error 1326(Logon failure: unknown user name or bad password.). Msg 3013, Level 16, State 1, Server JF, Line 1 BACKUP DATABASE is terminating abnormally.
Ši klaida rodo, kad tinklo paskyra nepriėmė vartotojo vardo ir slaptažodžio sąskaitos, o komanda nepavyko.
Kitas dalykas, į kurį reikia atkreipti dėmesį, yra tai, kad atsarginė kopija yra atliekama tiesiai į tinklo resursą, taigi bet kokie tinklo jungimosi žagsai gali sukelti jūsų atsarginę kopiją nepavykti. Dėl šios priežasties turėtumėte atsarginę kopiją tik toms vietoms, kurios yra stabilios (t. Y. Tikriausiai ne VPN).
Saugumo padariniai
Kaip minėta anksčiau, pageidaujama naudoti metodą, kuriame atsarginė kopija yra lokali, o tada nukopijuoti į tinklo paskyrą, nes ji leidžia paleisti SQL paslaugą kaip sąskaitą tik su vietine sistema.
Įdiegę paslaugą kaip alternatyvią paskyrą, atidarote duris į galimus saugumo klausimus. Pavyzdžiui, kenkėjiškas SQL scenarijus gali būti vykdomas pagal pakaitinę paskyrą ir atakuoti tinklo išteklius. Be to, bet kokie atitinkamos paskyros pakeitimai (slaptažodžio keitimas / pasibaigimas arba sąskaitos ištrynimas / išjungimas) gali neveikti "SQL Server" paslaugos.
Svarbu atsižvelgti į šiuos dalykus, jei paleidžiate savo "SQL Server" egzempliorių naudodami alternatyvią paskyrą. Jei tinkamos atsargumo priemonės nebus rodomos, neužsimenkite, turėtumėte apsvarstyti galimybę pridėti kietojo disko vietos ir tada įdiegti vietinę atsarginę kopiją ir kopiją, kad galėtumėte paleisti SQL paslaugą naudodami vietinę paskyrą.