Mengapa kami menggunakan FILE = 1 dalam skrip untuk memulihkan database


13

Baru-baru ini ketika saya menemukan skrip untuk memulihkan database, saya ragu mengapa kita harus menggunakan " FILE = 1 "? Tidak bisakah kita mengembalikan database tanpa pernyataan itu !? Pada dasarnya, untuk apa itu digunakan?

Jawaban:


22

Anda diizinkan untuk menyimpan lebih dari satu cadangan dalam file cadangan (yaitu perangkat). The FILEklausul memungkinkan Anda mengakses operasi backup tertentu ketika ada beberapa untuk memilih dari dalam .bakberkas.

Untuk informasi lebih lanjut tentang berbagai opsi perintah RESTORE , silakan lihat dokumentasi MSDN berikut untuk Argumen RESTORE .

Jika Anda melihat di bagian Opsi Pengaturan Cadangan , Anda akan menemukan:

FILE = { backup_set_file_number | @ backup_set_file_number }

Mengidentifikasi set cadangan yang akan dipulihkan. Misalnya, cadangan_set_file_number dari 1 menunjukkan cadangan pertama yang ditetapkan pada media cadangan dan cadangan_set_file_number dari 2 menunjukkan cadangan kedua. Anda dapat memperoleh backup_set_file_number dari set cadangan dengan menggunakan pernyataan RESTORE HEADERONLY.

Ketika tidak ditentukan, standarnya adalah 1, kecuali untuk RESTORE HEADERONLY dalam hal ini semua set cadangan dalam set media diproses. Untuk informasi lebih lanjut, lihat "Menentukan Set Cadangan," nanti dalam topik ini.

Penting
Opsi FILE ini tidak terkait dengan opsi FILE untuk menentukan file database, FILE = { logical_file_name_in_backup | @ logical_file_name_in_backup_var }.

Ya, Anda harus dapat memulihkan tanpa apa adanya FILE = 1sebagai 1standarnya. Dan jika Anda hanya memiliki satu set cadangan dalam file cadangan, maka itu seharusnya tidak menimbulkan masalah.

Contoh untuk membantu mengilustrasikan kapan Anda akan menggunakan FILEopsi adalah yang berikut, yang merupakan Contoh B dari halaman RESTORE perintah MSDN (ditautkan di atas). Ini menunjukkan melakukan dua pemulihan dari satu file cadangan: yang pertama RESTOREadalah cadangan LENGKAP, dan yang kedua RESTOREadalah cadangan DIFFERENSI.

RESTORE DATABASE AdventureWorks2012
   FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'
   WITH FILE = 6
      NORECOVERY;
RESTORE DATABASE AdventureWorks2012
   FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'
   WITH FILE = 9
      RECOVERY;
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.