Varmuuskopioi ja palauta SQL Server -tietokanta komentoriviltä
SQL Serverin ylläpitosuunnitelman tärkein osa on tietokantojen varmuuskopiointi säännöllisesti. Tietokannan varmuuskopioimiseksi et voi yksinkertaisesti kopioida tietokannan vastaavia MDF- ja LDF-tiedostoja, koska SQL Serverillä on lukko näihin. Sen sijaan sinun on luotava varmuuskopiotiedosto SQL Serverin kautta.
Vaikka tämä voidaan tehdä kehittämällä ylläpitosuunnitelma SQL Management Studion sisällä, SQL Serverin ilmaiset Express-versiot eivät tarjoa tätä käyttöliittymää. Voit kiertää tämän helposti varmuuskopioimalla tietokannat suorittamalla alla olevan komennon kirjautuneena Windowsin järjestelmänvalvojaksi:
SqlCmd -E -S Server_Name -Q “BACKUP DATABASE [Name_of_Database] TO DISK =" X: PathToBackupLocation [Name_of_Database] .bak ""
Alla olevat esimerkit auttavat.
SQL-palvelimen oletusasetus:
SqlCmd -E -S MyServer -Q “BACKUP DATABASE [MyDB] TO DISK =" D: BackupsMyDB.bak ""
Nimetty SQL-palvelimen esimerkki:
SqlCmd -E -S MyServerMyInstance -Q “BACKUP DATABASE [MyDB] TO DISK =" D: BackupsMyDB.bak ""
Edellä mainittu luo täysin palautettavan varmuuskopion "MyDB" -toiminnosta tiedostoon "D: BackupsMyDB.bak", jota voidaan käyttää katastrofien korjaamiseen. Voit tietysti muuttaa varmuuskopion sijaintia ja tiedostoa mitä tarvitset, mutta varmista, että määrität paikallisella koneella olevan kansion sijainnin. Tämän varmuuskopiotiedoston voi sitten kopioida kasettiasemaan tai toiseen ulkoiseen varmuuskopiointipaikkaan.
Yleinen kysymys on "Voiko varmuuskopiotiedosto luoda luotuun asemaan tai UNC-sijaintiin?" Ja nopea vastaus on ei. Syynä on se, että SQL Server Windows Service toimii käyttäjätilinä, jolla on pääsy vain paikalliseen koneeseen. Voit muuttaa tiliä, jota palvelu toimii, mutta tämä on erittäin lannistunut turvallisuussyistä.
Tietokannan varmuuskopion palauttaminen komentoriviltä
Jos haluat palauttaa tietokannan varmuuskopiotiedostosta, käytä komentoa:
SqlCmd -E -S Server_Name -Q “RESTORE DATABASE [Name_of_Database] FROM DISK =" X: PathToBackupFile [File_Name] .bak ""
Esimerkiksi:
SqlCmd -E -S MyServer -Q “RESTORE DATABASE [MyDB] FROM DISK =" D: BackupsMyDB.bak ""
Yllä oleva komento palauttaa varmuuskopiotiedostoon "D: BackupsMyDB.bak" tallennettujen tietojen varmuuskopion. Kaikki muutokset, jotka on tehty MyDB: hen varmuuskopiotiedoston luomisen jälkeen, menetetään.
Tärkeää on muistaa, kun yllä olevaa komentoa käytetään, sillä se on tarkoitettu käytettäväksi samassa SQL-palvelimessa, johon vastaava varmuuskopiotiedosto luotiin. SQL-varmuuskopiotiedostot tallentavat "kulissien takana" -tietojen hallintaan, missä ja miten varmuuskopiotiedoston tiedostot kopioidaan. Jos palautat varmuuskopion toisesta SQL-palvelimesta, varmuuskopiotiedoston polkupaikat eivät välttämättä vastaa palvelinta, jonka olet palauttanut, ja virhe tulee. Vaikka tätä voidaan käsitellä, on paljon helpompi palauttaa toisella SQL Server -palvelimella luotuja varmuuskopioita SQL Management Studio -työkalun avulla.
Huomautus: yllä olevat komennot toimivat SQL 2005: ssä ja uudemmissa (mikä tahansa versio). SQL 2000: ssa ja aikaisemmissa versioissa korvaa 'SqlCmd' 'oSql': lla.