Sandaran dan Pulihkan Pangkalan Data SQL Server Anda dari Barisan Perintah
Bahagian yang paling penting dalam pelan penyelenggaraan SQL Server adalah menyediakan pangkalan data anda dengan kerap. Untuk membuat sandaran pangkalan data, anda tidak boleh menyalin fail MDF dan LDF masing-masing pangkalan data sebagai SQL Server mempunyai kunci pada ini. Sebaliknya, anda perlu membuat fail sandaran sebenar melalui SQL Server.
Walaupun ini boleh dilakukan dengan membangunkan Pelan Penyelenggaraan di dalam SQL Management Studio, edisi Express percuma dari SQL Server tidak menawarkan antara muka ini. Untuk mengatasi masalah ini, anda boleh dengan mudah membuat sandaran pangkalan data anda dengan menjalankan perintah di bawah semasa log masuk sebagai Pentadbir Windows:
SqlCmd -E -S Server_Name -Q "BACKUP DATABASE [Name_of_Database] TO DISK =" X: PathToBackupLocation [Name_of_Database] .bak ""
Contoh di bawah akan membantu.
Contoh SQL Server lalai:
SqlCmd -E -S MyServer -Q "BACKUP DATABASE [MyDB] TO DISK =" D: BackupsMyDB.bak ""
Dinamakan contoh SQL Server:
SqlCmd -E -S MyServerMyInstance -Q "BACKUP DATABASE [MyDB] TO DISK =" D: BackupsMyDB.bak ""
Di atas membuat salinan sandaran penuh "MyDB" ke fail "D: BackupsMyDB.bak" yang boleh digunakan untuk pemulihan bencana. Sudah tentu, anda boleh menukar lokasi sandaran dan fail kepada apa sahaja yang anda perlukan, tetapi pastikan anda menentukan lokasi folder yang ada di mesin tempatan. Fail sandaran ini kemudian boleh disalin ke pemacu pita atau lokasi sandaran luar lain.
Persoalan umum ialah "Bolehkah fail sandaran dibuat ke pemacu yang dipetakan atau lokasi UNC?" Dan jawapan yang cepat tidak. Sebabnya ialah kerana Perkhidmatan Windows Server SQL berjalan sebagai akaun pengguna yang hanya mempunyai akses kepada mesin tempatan. Anda boleh mengubah akaun perkhidmatan berjalan sebagai, tetapi ini sangat tidak digalakkan atas sebab keselamatan.
Memulihkan Backup Pangkalan Data dari Barisan Perintah
Untuk memulihkan pangkalan data dari fail sandaran, cukup gunakan arahan:
SqlCmd -E -S Server_Name -Q "RESTORE DATABASE [Name_of_Database] FROM DISK =" X: PathToBackupFile [File_Name] .bak ""
Sebagai contoh:
SqlCmd -E -S MyServer -Q "RESTORE DATABASE [MyDB] FROM DISK =" D: BackupsMyDB.bak ""
Perintah di atas akan memulihkan sandaran "MyDB" daripada data yang disimpan dalam fail sandaran "D: BackupsMyDB.bak". Apa-apa perubahan yang dibuat ke MyDB kerana fail sandaran dibuat akan hilang.
Satu perkara penting untuk diingat apabila menggunakan arahan di atas adalah bahawa ia bertujuan untuk digunakan pada SQL Server yang sama bahawa fail sandaran masing-masing telah dicipta. Fail sandaran SQL menyimpan 'di belakang maklumat' yang mengendalikan di mana dan bagaimana fail data dalam fail sandaran disalin. Sekiranya anda memulihkan sandaran daripada Pelayan SQL yang berbeza, lokasi laluan dalam fail sandaran mungkin tidak sepadan dengan pelayan yang anda pulihkan dan kesilapan akan berlaku. Walaupun ini boleh dikendalikan, lebih mudah untuk mengembalikan sandaran yang dibuat pada SQL Server lain menggunakan alat Pengurusan SQL Studio.
Nota: arahan di atas akan berfungsi pada SQL 2005 dan lebih tinggi (sebarang edisi). Untuk SQL 2000 dan lebih awal, gantikan 'SqlCmd' dengan 'oSql'.