Varnostno kopiranje in obnovitev baze podatkov strežnika SQL iz ukazne vrstice
Najpomembnejši del načrta vzdrževanja SQL Server je redno varnostno kopiranje vaših podatkovnih baz. Če želite izdelati varnostno kopijo baze podatkov, ne morete preprosto kopirati datotek MDF in LDF baze podatkov, saj ima SQL Server ključavnico na njih. Namesto tega morate ustvariti resnično varnostno kopijo prek strežnika SQL Server.
Čeprav je to mogoče doseči z razvojem načrta za vzdrževanje znotraj programa SQL Management Studio, brezplačne Express izdaje strežnika SQL Server ne ponujajo tega vmesnika. Če se želite temu izogniti, lahko preprosto izdelate varnostno kopijo podatkovnih baz, tako da zaženete spodnji ukaz, ko ste prijavljeni kot skrbnik za Windows:
SqlCmd -E -S Ime_ strežnika -Q “BACKUP DATABASE [Name_of_Database] TO DISK =" X: PathToBackupLocation [Name_of_Database] .bak "
Spodnji primeri vam bodo pomagali.
Privzeti primerek strežnika SQL Server:
SqlCmd -E -S MyServer -Q “BACKUP DATABASE [MyDB] TO DISK =" D: Varnostne kopijeMyDB.bak "
Ime primera strežnika SQL Server:
SqlCmd -E -S MyServerMyInstance -Q “BACKUP DATABASE [MyDB] TO DISK =" D: Varnostne kopijeMyDB.bak "
Zgoraj ustvarite popolnoma obnovljivo varnostno kopijo »MyDB« v datoteko »D: BackupsMyDB.bak«, ki jo lahko uporabite za obnovitev po nesreči. Seveda lahko lokacijo varnostne kopije in datoteko spremenite v vse, kar potrebujete, vendar poskrbite, da določite lokacijo mape, ki obstaja na lokalnem računalniku. To datoteko varnostne kopije lahko nato kopirate na tračno enoto ali drugo zunanjo rezervno lokacijo.
Skupno vprašanje je »Ali lahko varnostno kopijo ustvarite na preslikanem pogonu ali lokaciji UNC?« In hiter odgovor je ne. Razlog je v tem, da se storitev SQL Server Windows izvaja kot uporabniški račun, ki ima dostop samo do lokalnega računalnika. Lahko spremenite račun, s katerim se storitev izvaja, vendar je to iz varnostnih razlogov zelo odsvetovano.
Obnavljanje varnostne kopije baze podatkov iz ukazne vrstice
Če želite obnoviti bazo podatkov iz varnostne kopije, preprosto uporabite ukaz:
SqlCmd -E -S ime_ strežnika -Q “OBNOVA DATABASE [Name_of_Database] FROM DISK =" X: PathToBackupFile [File_Name] .bak ""
Na primer:
SqlCmd -E -S MyServer -Q “Obnovi podatkovno bazo [MyDB] iz diska =" D: varnostne kopijeMyDB.bak "
Zgornji ukaz bo obnovil varnostno kopijo »MyDB« iz podatkov, shranjenih v varnostni kopiji »D: BackupsMyDB.bak«. Kakršne koli spremembe v MyDB od izdelave varnostne kopije bodo izgubljene.
Pomembna stvar, ki jo morate zapomniti pri uporabi zgornjega ukaza je, da je namenjena uporabi na istem strežniku SQL, na katerem je bila ustvarjena ustrezna datoteka varnostne kopije. Datoteke varnostne kopije SQL shranjujejo podatke za kulisami, ki nadzorujejo, kje in kako se kopirajo podatkovne datoteke v datoteki varnostne kopije. Če obnovite varnostno kopijo iz drugega strežnika SQL, se lokacije poti v datoteki varnostne kopije morda ne bodo ujemale s strežnikom, ki ga obnovite, in nastala bo napaka. Čeprav je to mogoče delati, je veliko lažje obnoviti varnostne kopije, ustvarjene na drugem strežniku SQL, z orodjem SQL Management Studio.
Opomba: zgornji ukazi bodo delali na SQL 2005 in višji (katera koli izdaja). Za SQL 2000 in starejše, 'SqlCmd' nadomestite z 'oSql' \ t.