Atsarginę kopiją ir atkurti savo SQL Server duomenų bazę iš komandinės eilutės

Turinys:

Atsarginę kopiją ir atkurti savo SQL Server duomenų bazę iš komandinės eilutės
Atsarginę kopiją ir atkurti savo SQL Server duomenų bazę iš komandinės eilutės
Anonim

Svarbiausia "SQL Server" techninės priežiūros plano dalis nuolat tvarko jūsų duomenų bazes. Norėdami kopijuoti duomenų bazę, negalite tiesiog kopijuoti atitinkamų MDF ir LDF duomenų bazių, nes "SQL Server" yra užrakintas. Vietoje to turite sukurti tikrą atsarginę failą per "SQL Server".

Nors tai gali būti padaryta plėtojant priežiūros planą "SQL Management Studio" viduje, "SQL Server" "Free Express" leidimai nesiūlo šios sąsajos. Norėdami išspręsti šią problemą, galite lengvai kopijuoti savo duomenų bazes paleisdami žemiau pateiktą komandą, kai prisijungėte kaip "Windows" administratorė:

SqlCmd -E -S Server_Name –Q “BACKUP DATABASE [Name_of_Database] TO DISK=’X:PathToBackupLocation[Name_of_Database].bak'”

Toliau pateikti pavyzdžiai padės.

Numatytoji SQL Server instancija:

SqlCmd -E -S MyServer –Q “BACKUP DATABASE [MyDB] TO DISK=’D:BackupsMyDB.bak'”

Pavadinta SQL Server instancija:

SqlCmd -E -S MyServerMyInstance –Q “BACKUP DATABASE [MyDB] TO DISK=’D:BackupsMyDB.bak'”

Pirmiau sukurta "MyDB" visiškai atkurianti atsarginė kopija į failą "D: BackupsMyDB.bak", kuris gali būti naudojamas nelaimės išieškojimo metu. Žinoma, galite pakeisti atsarginę buvimo vietą ir failą viskuo, ko jums reikia, bet įsitikinkite, kad nurodote aplanko vietą, esančią vietiniame kompiuteryje. Šis atsarginės kopijos failas gali būti nukopijuotas į juostinį diską arba kitą išorinę atsarginę kopiją.

Dažniausiai užduodamas klausimas: "Ar gali būti sukurtas atsarginis failas susietam diske ar UNC vietovėje?", O greitas atsakymas yra ne. Priežastis yra ta, kad SQL Server "Windows Service" veikia kaip vartotojo abonementas, turintis prieigą tik prie vietinio kompiuterio. Galite pakeisti paskyrą, kuria naudojatės paslauga, tačiau dėl saugumo tai labai nerūpi.

Duomenų bazės atkūrimas iš komandinės eilutės

Norėdami atkurti duomenų bazę iš atsarginės kopijos failo, tiesiog naudokite šią komandą:

SqlCmd -E -S Server_Name –Q “RESTORE DATABASE [Name_of_Database] FROM DISK=’X:PathToBackupFile[File_Name].bak'”

Pavyzdžiui:

SqlCmd -E -S MyServer –Q “RESTORE DATABASE [MyDB] FROM DISK=’D:BackupsMyDB.bak'”

Pirmiau nurodyta komanda atkurs "MyDB" atsarginę kopiją iš duomenų, saugomų atsarginės kopijos failo "D: BackupsMyDB.bak". Visi pakeitimai, padaryti "MyDB" nuo atsarginės kopijos failo sukūrimo, bus prarasti.

Svarbu pamiršti, kai naudojate pirmiau pateiktą komandą, kad jis bus naudojamas tame pačiame SQL Serveryje, kuriame buvo sukurtas atitinkamas atsarginės kopijos failas. SQL atsarginės bylos saugo "už siužetų" informaciją, kuri kontroliuoja, kur ir kaip kopijuojami atsarginės failo duomenų failai. Jei atkuriate atsarginę kopiją iš kito "SQL Server", atsarginės kopijos failo kelio vietos gali neatitikti serverio, kurį atkursite, ir atsiras klaidos. Nors tai gali būti atliekama, daug lengviau atkurti atsargines kopijas, sukurtas kitoje "SQL Server", naudojant "SQL Management Studio" įrankį.

Pastaba: pirmiau pateiktos komandos dirbs SQL 2005 ir naujesnėse versijose (bet kuri versija). SQL 2000 ir anksčiau pakeisti "SqlCmd" į "oSql".

Rekomenduojamas: