If-Koubou

Kā dublēt SQL datu bāzes tīkla daļai

Kā dublēt SQL datu bāzes tīkla daļai (Kā)

Regulāri jāatjauno SQL datu bāzes. Mēs jau esam apskatījuši veidus, kā viegli var dublēt visas jūsu SQL servera datu bāzes vietējā cietajā diskā, taču tas neaizsargā pret disku un / vai sistēmas kļūmi. Kā papildus aizsardzības slānis pret šāda veida katastrofu jūs varat kopēt vai tieši izveidot savas dublējumkopijas tīklā.

Lokālā dublēšana un pēc tam opcija Kopēt uz tīkla koplietošanu

Vēlamais un vistiešākais veids, kā izpildīt šo uzdevumu, ir vienkārši izveidot vietējo datu bāzes dublējumu un pēc tam nokopēt attiecīgo dublējuma failu tīkla daļai. To varat izdarīt, izveidojot partijas skriptu, kas izskatās šādi:

SET LocalFolder = C: Programmas failiMicrosoft SQL ServerMSSQL.1MSSQLBackup
SqlCmd -E -Q "Dublēšanas datu bāze MyDB uz diska ="% LocalFolder% MyDB.bak ""
XCopy "% LocalFolder% MyDB.bak" "\ 192.168.16.55BackupDatabases" / Z / V
DEL "% LocalFolder% MyDB.bak"

Šis skripts veic šādu (pēc vienas rindas):

  1. Iestata mainīgo vietējā SQL rezerves direktorijā.
  2. Izveido MyDB SQL rezerves (izmantojot Windows autentifikāciju) vietējā SQL rezerves direktorijā.
  3. Kopē vietējo dublējuma failu tīkla daļai.
  4. Dzēš lokālo dublējuma failu.

Atkal šī ir vēlamā metode, jo tā darbojas ārpus kastes un iespējamība, ka rezerves kļūme ir minimāla, jo dublējums tiek izveidots lokālajā diskā. Tomēr, ja jums nav pietiekami daudz vietas diskā, lai saglabātu vietējās dublējuma failu kopijas, šī darbība neizdosies. Šajā gadījumā jums būs jāpievieno papildu diska vietas vai rezerves tieši tīkla kopīgai.

Dublēt tieši tīmeklī

Parasti, mēģinot izveidot rezerves tieši tīkla koplietošanai, izmantojot šādu komandu:

SqlCmd -E -Q "Rezerves datu bāze MyDB uz diska =" \ 192.168.16.55BackupDatabasesMyDB.bak ""

Jūs visticamāk saņemsit kļūdu šādās pozīcijās:

Msg 3201, 16. līmenis, 1. stāvoklis, JF serveris, 1. rindiņa
Nevar atvērt rezerves kopiju '\ 192.168.16.55BackupDatabasesMyDB.bak'. Operētājsistēmas kļūda 5 (piekļuve ir liegta.).
Msg 3013, 16. līmenis, 1. stāvoklis, JF serveris, 1. rindiņa
BACKUP DATUBĀZE pārtrauc anormāli.

Šī kļūda rodas, neskatoties uz to, ka jūs izmantojāt SQL backup komandu, izmantojot Windows autentifikāciju (-E slēdzi) un Windows kontu kā iespēju piekļūt un kopēt failus uz kopīgošanu, izmantojot Windows Explorer.

Iemesls, kādēļ šī darbība neizdodas, ir tādēļ, ka SQL komanda tiek izpildīta tā paša konta robežās, kurā darbojas SQL Server pakalpojums. Pārskatot Pakalpojumu sarakstu savā datorā, visticamāk, jūs redzēsiet, ka SQL Server pakalpojums darbojas kā (kolonna Log On As) vai nu vietējā sistēma, vai tīkla pakalpojums, kas ir sistēmas konti, kuriem nav tīkla piekļuves.

Mūsu sistēmā rezerves tīkla komandrindas komandai neizdodas, jo mums ir SQL Server pakalpojums, kas darbojas kā vietējā sistēma, kas atkal nevar piekļūt nevienam tīkla resursam.

Lai SQL varētu tieši dublēt tīkla daļu, mums ir jāuzstāda SQL Server pakalpojums kā vietējais konts, kuram ir piekļuve tīkla resursiem.

Rediģējiet SQL Server pakalpojuma rekvizītus un cilnē Ieejiet, konfigurējiet pakalpojumu, lai tā darbotos kā alternatīvais konts, kuram ir tīkla piekļuves tiesības.

Noklikšķinot uz Labi, jūs saņemsiet īsziņu, ka iestatījumi netiks stāties spēkā, kamēr pakalpojums netiek restartēts.

Restartējiet pakalpojumu.

Pakalpojumu sarakstam tagad jāparādās, ka SQL Server pakalpojums darbojas kā jūsu konfigurētais konts.

Tagad, kad palaižat komandu, lai dublētu tieši tīkla kopīgai:

SqlCmd -E -Q "Rezerves datu bāze MyDB uz diska =" \ 192.168.16.55BackupDatabasesMyDB.bak ""

Jums vajadzētu redzēt veiksmes ziņojumu:

Pārstrādāts 152 lapas datubāzei MyDB, failā 'MyDB' failā 1.
Pārstrādāts 2 lapas datubāzei "MyDB", failā "MyDB_log" failā 1.
BACKUP DATUBĀZE veiksmīgi apstrādā 154 lapas 0,503 sekundēs (2,493 MB / s).

Ar dublējuma failu tagad tīkla koplietošanas direktorijā:

Tīkla koplietošanas apsvērumi

Ir svarīgi atzīmēt, ka rezerves komanda cer izveidot tiešu savienojumu ar tīkla daļu, neprasot akreditācijas datus. Konts, kuram ir konfigurēts SQL Server pakalpojums, lai palaistu, kā arī tam ir jābūt uzticamam savienojumam ar tīkla daļu, ja attiecīgajiem akreditācijas datiem ir piekļuve, pretējā gadījumā var rasties šāda kļūda:

Msg 3201, 16. līmenis, 1. stāvoklis, JF serveris, 1. rindiņa
Nevar atvērt rezerves kopiju '\ 192.168.16.55BackupDatabasesMyDB.bak'. Operētājsistēmas kļūda 1326 (Pieteikšanās kļūme: nezināms lietotāja vārds vai slikta parole.).
Msg 3013, 16. līmenis, 1. stāvoklis, JF serveris, 1. rindiņa
BACKUP DATUBĀZE pārtrauc anormāli.

Šī kļūda norāda, ka tīkla koplietojums nepieņēma konta lietotāja vārdu un paroli, un komanda neizdevās.

Cits jautājums, kas jāpatur prātā, ir dublēšana tiek veikta tieši tīkla resursam, tādēļ visi tīkla savienojuma žagari var izraisīt dublēšanos jūsu dublējumkopijā. Šī iemesla dēļ rezerves kopīgošana vietnēm, kas ir stabilas (t.i., droši vien, nav VPN), ir jāoptimizē.

Drošības sekas

Kā jau minēts iepriekš, tiek dota priekšroka vietnes dublēšanas metodei un pēc tam kopēšana uz tīkla koplietošanu, jo tas ļauj jums palaist SQL pakalpojumu kā kontu ar vietējās sistēmas piekļuvi.

Izmantojot pakalpojumu kā rezerves kontu, jūs atverat durvis iespējamām drošības problēmām. Piemēram, ļaunprātīgs SQL skripts varētu tikt izpildīts zem rezerves konta un uzbrukums tīkla resursiem. Turklāt jebkuras izmaiņas attiecīgajā kontā (paroles maiņa / izbeigšanās vai konta dzēšana / atspējošana) izraisīs SQL Server pakalpojuma palaišanu.

Ir svarīgi saglabāt šos punktus, ja jūs vadāt savu SQL Server instance, izmantojot alternatīvu kontu. Lai gan tie neuzrāda aizbāzni, ja tiek veikti pienācīgi piesardzības pasākumi, jums vajadzētu apsvērt iespēju pievienot papildu cietā diska vietas un pēc tam ieviest vietējo dublējumu un kopēt, lai jūs varētu palaist SQL pakalpojumu, izmantojot vietējo kontu.