Početna » kako da » Sigurnosna kopija i vraćanje SQL baze podataka iz naredbenog retka

    Sigurnosna kopija i vraćanje SQL baze podataka iz naredbenog retka

    Najvažniji dio plana održavanja SQL Servera je redovito sigurnosno kopiranje vaših baza podataka. Da biste izradili sigurnosnu kopiju baze podataka, ne možete jednostavno kopirati odgovarajuće datoteke MDF-a i LDF-a baze podataka kao što SQL Server ima zaključavanje. Umjesto toga, morate stvoriti pravu datoteku sigurnosne kopije putem SQL Servera.

    Iako se to može postići razvojem Plana održavanja unutar SQL Management Studio, slobodna Express izdanja sustava SQL Server ne nude ovo sučelje. Da biste zaobišli ovo, možete jednostavno izraditi sigurnosnu kopiju baza podataka tako da pokrenete naredbu ispod dok ste prijavljeni kao Windows administrator:

    SqlCmd -E -S Ime_ poslužitelja -Q “BACKUP DATABASE [Name_of_Database] TO DISK =" X: PathToBackupLocation [Name_of_Database] .bak ""

    Primjeri u nastavku pomoći će vam.

    Zadana instanca SQL Servera:

    SqlCmd -E -S MyServer -Q “BACKUP DATABASE [MyDB] U DISK =" D: BackupsMyDB.bak ""

    Ime SQL poslužitelja:

    SqlCmd -E -S MyServerMyInstance -Q “BACKUP DATABASE [MyDB] U DISK =" D: BackupsMyDB.bak ""

    Gore stvorena je potpuno obnovljiva sigurnosna kopija "MyDB" u datoteku "D: BackupsMyDB.bak" koja se može koristiti za oporavak od katastrofe. Naravno, možete promijeniti lokaciju i datoteku sigurnosne kopije na sve što trebate, ali provjerite jeste li odredili mjesto mape koje postoji na lokalnom računalu. Ta se sigurnosna kopija može kopirati na pogon trake ili na drugu vanjsku lokaciju za pohranu.

    Uobičajeno je pitanje “Može li se sigurnosna kopija stvoriti na mapiranom pogonu ili UNC lokaciji?” I brzi odgovor je ne. Razlog tome je što se SQL Server Windows Service pokreće kao korisnički račun koji ima pristup samo lokalnom računalu. Možete promijeniti račun na kojem se pokreće usluga, ali to se iz sigurnosnih razloga ne preporučuje.

    Vraćanje sigurnosne kopije baze podataka iz naredbenog retka

    Da biste vratili bazu podataka iz sigurnosne kopije, jednostavno upotrijebite naredbu:

    SqlCmd -E -S Ime_ poslužitelja -Q “OBNOVA BAZE PODATAKA [Ime_datoteka] OD DISK =" X: PathToBackupFile [Naziv datoteke] .bak ""

    Na primjer:

    SqlCmd -E -S MyServer -Q “OBNOVA BAZE PODATAKA [MyDB] OD DISK =" D: BackupsMyDB.bak ""

    Gornja naredba će vratiti sigurnosnu kopiju "MyDB" iz podataka pohranjenih u datoteci sigurnosne kopije "D: BackupsMyDB.bak". Sve promjene napravljene u MyDB-u od stvaranja sigurnosne kopije bit će izgubljene.

    Važno je zapamtiti kada se koristi gore navedena naredba je da se namjerava koristiti na istom SQL poslužitelju na kojem je stvorena odgovarajuća datoteka sigurnosne kopije. SQL backup datoteke pohranjuju "iza kulisa" informacije koje kontroliraju gdje i kako se kopiraju podatkovne datoteke u datoteci sigurnosne kopije. Ako vraćate sigurnosnu kopiju s drugog SQL poslužitelja, lokacije putanje u datoteci sigurnosne kopije možda se neće podudarati s poslužiteljem na koji se vraćate, pa će se pojaviti pogreška. Iako se to može riješiti, mnogo je lakše vratiti sigurnosne kopije kreirane na drugom SQL poslužitelju pomoću alata SQL Management Studio.

    Napomena: gore navedene naredbe funkcionirat će na SQL 2005 i višoj razini (bilo koje izdanje). Za SQL 2000 i ranije, zamijenite 'SqlCmd' s 'oSql'.