Kā dublēt SQL datubāzes ar tīkla koplietošanu
Regulāri jāveic SQL datu bāzu dublēšana. Mēs jau esam iekļāvuši veidus, kā viegli backup visus jūsu SQL servera datubāzes vietējā cietajā diskā, bet tas neaizsargā pret disku un / vai sistēmas kļūmēm. Kā papildu aizsardzības slānis pret šāda veida katastrofām jūs varat kopēt vai tieši izveidot rezerves kopijas tīklā.
Dublējiet lokāli un pēc tam kopējiet tīklā
Vēlamais un tiešākais veids, kā izpildīt šo uzdevumu, ir vienkārši izveidot datubāzes vietējo dublējumu un pēc tam kopēt attiecīgo rezerves failu tīkla daļai. To var izdarīt, izveidojot partijas skriptu, kas izskatās šādi:
SET LocalFolder = C: Programmu failiMicrosoft SQL ServerMSSQL.1MSSQLBackup
SqlCmd -E -Q “Backup datu bāze MyDB uz disku ="% LocalFolder% MyDB.bak "”
XCopy “% LocalFolder% MyDB.bak” “19.168.16.55BackupDatabases” / Z / V
DEL “% LocalFolder% MyDB.bak”
Šis skripts veic šādu darbību (pēc rindas):
- Iestata vietējā SQL rezerves direktorija mainīgo.
- Izveido SQL rezerves kopiju MyDB (izmantojot Windows autentifikāciju) vietējai SQL rezerves direktorijai.
- Kopē vietējo dublējuma failu uz tīkla koplietošanu.
- Dzēš vietējo dublējuma failu.
Atkal, šī ir vēlamā metode, jo tā darbojas ārpus kastes, un dublējuma kļūdas iespējamība ir minimāla, jo dublējums ir izveidots lokālajā diskā. Tomēr, ja jums nav pietiekami daudz vietas, lai saglabātu vietējo kopiju dublējuma failiem, šī darbība neizdosies. Šādā gadījumā jums būs jāpievieno papildu diska vietas vai dublējumkopijas tieši tīkla daļai.
Dublēšana tieši tīklā
Parasti, mēģinot izveidot dublējumu tieši tīkla daļai, izmantojot komandu, piemēram:
SqlCmd -E -Q “Backup datu bāze MyDB uz disku =" 191.168.16.55BackupDatabasesMyDB.bak ""
Iespējams, ka jūs saņemsiet kļūdas:
Ziņojums 3201, 16. līmenis, 1. stāvoklis, serveris JF, 1. līnija
Nevar atvērt rezerves ierīci '19.168.16.55BackupDatabasesMyDB.bak'. Operētājsistēmas kļūda 5 (piekļuve liegta.).
Ziņojums 3013, 16. līmenis, 1. stāvoklis, serveris JF, 1. līnija
BACKUP DATABASE beidzas neparasti.
Šī kļūda rodas, neskatoties uz to, ka jūs izmantojāt SQL dublēšanas komandu, izmantojot Windows autentifikāciju (-E slēdzi) un Windows kontu kā iespēju piekļūt failiem un kopēt tos kopīgot, izmantojot programmu Windows Explorer.
Iemesls, kāpēc šī darbība neizdodas, ir tā, ka SQL komanda tiek izpildīta tā konta robežās, kurā darbojas SQL Server pakalpojums. Skatoties datorā esošo pakalpojumu sarakstu, visticamāk, jūs redzēsiet, ka SQL Server pakalpojums darbojas kā (Log On As kolonna) vai nu lokālā sistēma, vai tīkla pakalpojums, kas ir sistēmas konts, kam nav tīkla piekļuves.
Mūsu sistēmā rezerves koplietošanas komandas dublējums neizdodas, jo mums ir SQL Server pakalpojums, kas darbojas kā lokālā sistēma, kas atkal nevar nokļūt nevienā tīkla resursā.
Lai SQL varētu dublēt tieši uz tīkla koplietošanu, SQL Server pakalpojums ir jāizmanto kā vietējais konts, kuram ir piekļuve tīkla resursiem..
Rediģējiet SQL Server pakalpojuma rekvizītus un cilnē Pieteikties, konfigurējiet pakalpojumu, lai palaistu to kā alternatīvu kontu, kam ir piekļuves tiesības tīklam.
Noklikšķinot uz Labi, jūs saņemsiet uzvedni, ka iestatījumi nedarbosies, kamēr pakalpojums nav restartēts.
Restartējiet pakalpojumu.
Pakalpojumu sarakstam tagad jāparāda, ka SQL Server pakalpojums darbojas kā konts, kuru konfigurējāt.
Tagad, kad palaižat komandu, lai dublētu tieši uz tīkla daļu:
SqlCmd -E -Q “Backup datu bāze MyDB uz disku =" 191.168.16.55BackupDatabasesMyDB.bak ""
Jums vajadzētu redzēt panākumu ziņojumu:
Apstrādāja 152 lapas datubāzei "MyDB", failā "MyDB" failā 1.
Apstrādātas 2 lapas datubāzei "MyDB", failā "MyDB_log" failā 1.
BACKUP DATABASE veiksmīgi apstrādāja 154 lapas 0,503 sekundēs (2.493 MB / sek.).
Izmantojot dublējuma failu tagad tīkla koplietošanas direktorijā:
Tīkla daļu apsvērumi
Ir svarīgi atzīmēt, ka dublēšanas komanda sagaida, ka tā varēs tieši pieslēgties tīkla daļai, neprasot pilnvaras. Konts, kuru esat konfigurējis, lai palaistu SQL Server pakalpojumu, jo tam jābūt uzticamam savienojumam ar tīkla daļu, kur attiecīgie akreditācijas dati ļauj piekļūt, pretējā gadījumā var rasties šāda kļūda:
Ziņojums 3201, 16. līmenis, 1. stāvoklis, serveris JF, 1. līnija
Nevar atvērt rezerves ierīci '19.168.16.55BackupDatabasesMyDB.bak'. Operētājsistēmas kļūda 1326 (pieteikšanās kļūda: nezināms lietotājvārds vai slikta parole.).
Ziņojums 3013, 16. līmenis, 1. stāvoklis, serveris JF, 1. līnija
BACKUP DATABASE beidzas neparasti.
Šī kļūda norāda, ka tīkla daļa nav akceptējusi konta lietotāja vārdu un paroli, un komanda neizdevās.
Vēl viens jautājums, kas jāpatur prātā, ir dublējums tiek veikts tieši tīkla resursā, tāpēc jebkurš tīkla savienojuma žagas var izraisīt jūsu rezerves dublēšanu. Šā iemesla dēļ jums ir tikai rezerves tīkla vietām, kas ir stabilas (t.i., iespējams, nav VPN).
Drošības ietekme
Kā jau iepriekš minēts, ieteicams izmantot metodi, kurā dublējat lokāli un pēc tam kopējiet uz tīkla daļu, jo tas ļauj jums palaist SQL pakalpojumu kā kontu ar lokālās sistēmas piekļuvi.
Veicot pakalpojumu kā alternatīvu kontu, varat atvērt durvis potenciālajiem drošības jautājumiem. Piemēram, ļaunprātīgu SQL skriptu var izpildīt saskaņā ar alternatīvo kontu un uzbrukt tīkla resursiem. Turklāt jebkuras izmaiņas attiecīgajā kontā (paroles maiņa / derīguma termiņa izbeigšana vai konta dzēšana / atspējošana) SQL Server pakalpojuma neizdodas sākt.
Ir svarīgi paturēt prātā šos punktus, ja SQL servera gadījumu izmantojat, izmantojot alternatīvu kontu. Lai gan tie nerāda aizbāžņus, ja tiek veikti atbilstoši piesardzības pasākumi, jums vajadzētu apsvērt iespēju pievienot papildu cietā diska vietu un pēc tam īstenot vietējo dublējumu un kopēt, lai jūs varētu palaist SQL pakalpojumu, izmantojot vietējo kontu.