Kaip atsargines SQL duomenų bazes prie tinklo dalintis

Turinys:

Kaip atsargines SQL duomenų bazes prie tinklo dalintis
Kaip atsargines SQL duomenų bazes prie tinklo dalintis

Video: Kaip atsargines SQL duomenų bazes prie tinklo dalintis

Video: Kaip atsargines SQL duomenų bazes prie tinklo dalintis
Video: Business Internet vs Home Internet: What's the Difference? - YouTube 2024, Gegužė
Anonim

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):

  1. Nustato kintamąjį vietiniam SQL atsarginių kopijų katalogui.
  2. Sukuria MyDB SQL atsarginę kopiją (naudojant Windows autentifikavimą) vietiniam SQL atsarginės kopijos katalogui.

  3. Kopijuoja vietinę atsarginę kopiją prie tinklo.
  4. 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".

Priežastis, kodėl šis veiksmas nepavyksta, yra tai, kad SQL komanda vykdoma toje sąskaitoje, kurioje veikia "SQL Server" paslauga. Kai peržiūrėjote savo paslaugų sąrašą savo kompiuteryje, greičiausiai pamatysite SQL Server tarnybą (kaip stulpelį "Prisijungti kaip") arba vietinę sistemą arba tinklo paslaugą, kurios yra sistemos paskyros, neturinčios prieigos prie tinklo.
Priežastis, kodėl šis veiksmas nepavyksta, yra tai, kad SQL komanda vykdoma toje sąskaitoje, kurioje veikia "SQL Server" paslauga. Kai peržiūrėjote savo paslaugų sąrašą savo kompiuteryje, greičiausiai pamatysite SQL Server tarnybą (kaip stulpelį "Prisijungti kaip") arba vietinę sistemą arba tinklo paslaugą, kurios yra sistemos paskyros, neturinčios prieigos prie tinklo.

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.

Kad SQL būtų galima atsarginę kopiją tiesiogiai perduoti tinklo daliai, turime paleisti "SQL Server" paslaugą kaip vietinę paskyrą, prie kurios prieigą prie tinklo išteklių.
Kad SQL būtų galima atsarginę kopiją tiesiogiai perduoti tinklo daliai, turime paleisti "SQL Server" paslaugą kaip vietinę paskyrą, prie kurios prieigą prie tinklo išteklių.

Redaguokite "SQL Server" paslaugų savybes ir skirtuką "Prisijungti", konfigūruokite paslaugą kaip alternatyvią paskyrą, turintį tinklo prieigos teises.

Kai spustelėsite "Gerai", gausite raginimą, kad nustatymai neįsigalios, kol paslauga bus paleista iš naujo.
Kai spustelėsite "Gerai", gausite raginimą, kad nustatymai neįsigalios, kol paslauga bus paleista iš naujo.
Iš naujo paleiskite paslaugą.
Iš naujo paleiskite paslaugą.
Paslaugų sąrašas turėtų parodyti, kad "SQL Server" paslauga veikia kaip sąskaita, kurią sukonfigūravote.
Paslaugų sąrašas turėtų parodyti, kad "SQL Server" paslauga veikia kaip sąskaita, kurią sukonfigūravote.
Dabar paleisdami komandą atsarginę kopiją ties tinklo dalimi:
Dabar paleisdami komandą atsarginę kopiją ties tinklo dalimi:

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:

Image
Image

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ą.

Rekomenduojamas: