„SQL Server“ duomenų bazės atsarginė kopija ir atkūrimas iš komandų eilutės
Svarbiausia SQL Server techninės priežiūros plano dalis yra duomenų bazių atsarginė kopijavimas. Norėdami sukurti atsarginę duomenų bazės kopiją, negalite tiesiog kopijuoti atitinkamų duomenų bazės MDF ir LDF failų, nes SQL Server turi užraktą. Vietoj to, jums reikia sukurti tikrą atsarginę failą per „SQL Server“.
Nors tai gali būti padaryta kuriant „SQL Management Studio“ viduje esantį priežiūros planą, nemokami „Express Server“ leidimai „SQL Server“ nesiūlo šios sąsajos. Jei norite tai apeiti, galite lengvai kopijuoti savo duomenų bazes naudodami toliau nurodytą komandą, kai prisijungiate kaip „Windows“ administratorius:
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.
Numatytasis SQL serverio pavyzdys:
„SqlCmd -E -S MyServer -Q“ „BACKUP DATABASE [MyDB] TO DISK =„ D: BackupsMyDB.bak ““
Pavadintas SQL serverio pavyzdys:
„SqlCmd -E -S“ „MyServerMyInstance“ -Q „BACKUP DATABASE [MyDB] TO DISK =" D: BackupsMyDB.bak ""
Pirmiau sukurta visiškai atkuriama „MyDB“ atsarginė kopija failui „D: BackupsMyDB.bak“, kurią galima panaudoti atkūrimui. Žinoma, galite pakeisti atsarginės kopijos vietą ir failą, kad būtumėte reikalingi, tačiau įsitikinkite, kad nurodote aplanko vietą, esančią vietiniame kompiuteryje. Tada šis atsarginis failas gali būti nukopijuotas į juostinį diską arba kitą išorinę atsarginę vietą.
Bendras klausimas yra „Ar galima sukurti atsarginę failą prie susieto disko ar UNC vietos?“ Ir greitas atsakymas yra „ne“. Taip yra todėl, kad „SQL Server“ „Windows“ paslauga veikia kaip vartotojo abonementas, turintis tik prieigą prie vietinio kompiuterio. Galite pakeisti paskyrą, kuria veikia ši paslauga, tačiau saugumo sumetimais tai labai nepalanki.
Duomenų bazės atsarginės kopijos atkūrimas iš komandų eilutės
Norėdami atkurti duomenų bazę iš atsarginio failo, tiesiog naudokite komandą:
SqlCmd -E -S Server_Name -Q „RESTORE DATABASE [Name_of_Database] IŠ DISK =" X: PathToBackupFile [File_Name] .bak ""
Pavyzdžiui:
„SqlCmd -E -S MyServer -Q“ „RESTORE DATABASE [MyDB] FROM DISK =„ D: BackupsMyDB.bak ““
Pirmiau minėta komanda atkurs „MyDB“ atsarginę kopiją iš atsarginių failų „D: BackupsMyDB.bak“ saugomų duomenų. Visi pakeitimai, padaryti MyDB, nes buvo sukurtas atsarginės kopijos failas, bus prarasti.
Svarbus dalykas, kurį reikia prisiminti naudojant pirmiau nurodytą komandą, yra tas, kad jis skirtas naudoti tame pačiame SQL serveryje, kuriame buvo sukurtas atitinkamas atsarginis failas. SQL atsarginės kopijos failai saugo „užkulisių“ informaciją, kuri kontroliuoja, kur ir kaip kopijuojami atsarginės kopijos duomenų failai. Jei atkuriate atsarginę kopiją iš kito „SQL Server“, atsarginės kopijos failo vietos gali neatitikti atkurto serverio ir atsiras klaida. Nors tai gali būti daroma, daug lengviau atkurti atsargines kopijas, sukurtas kitame SQL serveryje naudojant „SQL Management Studio“ įrankį.
Pastaba: aukščiau nurodytos komandos veiks su SQL 2005 ir naujesnėmis versijomis (bet kokiu leidimu). „SQL 2000“ ir naujesnėse versijose „SqlCmd“ pakeiskite „oSql“.