Anda tidak dapat memulihkan sistem backup database untuk membangun berbeda dari SQL Server

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 264474 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

GEJALA

Anda tidak dapat mengembalikan cadangan dari database sistem (Master, Model, atau msdb) pada membangun server yang berbeda dari membangun pada yang cadangan awalnya dilakukan. Upaya untuk melakukan seperti mengembalikan menyebabkan pesan kesalahan berikut terjadi:
Server: Msg 3168, tingkat 16, negara bagian 1, baris 1
Cadangan dari database sistem pada perangkat d:\temp\master.bak tidak dapat dikembalikan karena ini diciptakan oleh versi yang berbeda dari server (134217904) dari server ini (134217920).
Server: Msg 3013, tingkat 16, negara bagian 1, baris 1
MEMULIHKAN DATABASE mengakhiri normal.

PENYEBAB

Mungkin bahwa skema database untuk sistem database berubah di server membangun. Dalam rangka untuk memastikan bahwa perubahan ini dalam skema tidak menyebabkan setiap inkonsistensi, salah satu cek pertama yang melakukan perintah pemulihan adalah perbandingan nomor membangun server pada berkas cadangan dan nomor yang membangun server di mana pengguna mencoba untuk melakukan pemulihan. Jika membangun dua berbeda, pesan galat terjadi dan operasi pemulihan berakhir tidak normal.

Catatan Instalasi paket layanan atau perbaikan terbaru membangun perubahan nomor membangun server, dan server membangun selalu inkremental.

Berikut adalah beberapa skenario di mana masalah ini dapat terjadi:
  • Pengguna mencoba untuk memulihkan sistem database pada Server A dari cadangan yang diambil pada Server server B. A dan b berada pada server yang berbeda membangun. Sebagai contoh, Server A mungkin pada RTM build dan Server B mungkin pada paket layanan 1 (SP1) membangun.
  • Pengguna mencoba untuk memulihkan sistem database dari cadangan yang diambil pada server yang sama. Namun, server berlari membangun berbeda ketika cadangan terjadi. Itu adalah, server ditingkatkan karena cadangan dilakukan.

TEKNIK PEMECAHAN MASALAH

Proses pemulihan dalam situasi seperti ini cukup terlibat, dan digunakan hanya sebagai pilihan terakhir.

Langkah pertama dalam berusaha untuk mengatasi masalah ini adalah untuk menentukan saat ini membangun server dan SQL Server membangun yang cadangan dilakukan.

Microsoft SQL Server 2000 dan Microsoft SQL Server 2005 menyediakan dua metode berikut untuk menentukan saat ini membangun SQL Server:
  • Metode 1
    SELECT @@version
    Kode ini kembali teks yang mirip dengan:
    Microsoft SQL Server  2000 - 8.00.192 (Intel X86)
    Jul 31 2000 15:47:46
    Copyright (c) 1988-2000 Microsoft Corporation 
    Enterprise Edition on Windows NT 5.0 (Build 2195: )
    (1 row(s) affected)
  • Metode 2
    SELECT SERVERPROPERTY('ProductVersion')
    Kode ini kembali teks yang mirip dengan:
    8.00.192
    (1 row(s) affected)
Dengan tujuan untuk artikel ini, jumlah membangun ini dirujuk sebagai "SQL Server membangun" dalam sisa artikel ini.

Anda dapat menentukan membangun pada cadangan yang terjadi dengan menggunakan perintah berikut di berkas cadangan:
RESTORE HEADERONLY
FROM DISK = 'd:\temp\master176.bak'
Output yang dihasilkan, berikut tiga (3) kolom menyediakan server membangun informasi:
SoftwareVersionMajor SoftwareVersionMinor SoftwareVersionBuild
-------------------- -------------------- --------------------
8                    0                    176

The actual output has several other columns; however, only the columns that are of interest are included in this article for clarity.
Dengan tujuan untuk artikel ini, jumlah membangun ini dirujuk sebagai "cadangan membangun" untuk sisa artikel ini.

Dalam contoh, "SQL Server membangun" adalah 8.00.192, sedangkan "Cadangan membangun" adalah 8.00.176. Karena membangun dua berbeda, operasi pemulihan tidak diperbolehkan dan pesan kesalahan 3168 terjadi.

Proses pemulihan untuk bekerja di sekitar masalah ini bervariasi tergantung pada sistem database pengguna mencoba untuk memulihkan. Sebagai tindakan pencegahan, Microsoft menganjurkan Anda membuat cadangan semua Anda ada database (sistem dan pengguna database) sebelum Anda melanjutkan untuk langkah ini.

Apakah usaha pemulihan Master database, Anda dapat menggunakan langkah-langkah berikut untuk berusaha mengembalikan sukses:
  1. Melepaskan semua database pengguna yang ada di sistem dengan menggunakan sp_detach_db prosedur yang tersimpan. Untuk informasi lebih lanjut tentang memisahkan pengguna database, lihat topik "Melampirkan dan memisahkan database" dalam SQL Server 2000 buku Online. Jika Anda menggunakan SQL Server 2005, lihat "Detaching dan melampirkan database" topik dalam SQL Server 2005 buku Online. Sebagai cek silang, query berikut Menampilkan daftar semua pengguna database pada sistem:
    SELECT name FROM SYSDATABASES
    WHERE dbid > 4
  2. Cadangan msdb dan Model database pada sistem dengan menggunakan perintah berikut:
    BACKUP DATABASE MSDB TO DISK = '<backup device>' WITH NOINIT, NOSKIP
    BACKUP DATABASE MODEL TO DISK = '<backup device>' WITH NOINIT, NOSKIP
  3. Jika "Cadangan membangun" lebih besar dari "SQL Server membangun", menginstal semua paket perlu layanan atau perbaikan terbaru membangun roll perangkat lunak server ke depan untuk "Backup membangun" yang telah ditentukan sebelumnya. Kemudian, lanjutkan ke langkah 6.
  4. Menghapus SQL Server 2000 atau SQL Server 2005. Untuk informasi lebih lanjut tentang menghapus SQL Server 2000, lihat topik "Bagaimana untuk menghilangkan SQL Server 2000" di SQL Server 2000 buku Online.
  5. Instal SQL Server 2000 atau SQL Server 2005 dan semua paket perlu layanan atau perbaikan terbaru membangun roll perangkat lunak server ke depan untuk "Backup membangun" yang telah ditentukan sebelumnya.
  6. Memulai server dalam satu-user mode dan mengembalikan Master database dengan menggunakan berkas cadangan untuk membangun ini. Untuk petunjuk tentang pemulihan Master database, lihat topik "Mengembalikan Master database dari cadangan saat ini" dalam SQL Server 2000 buku Online. Jika Anda menggunakan SQL Server 2005, lihat topik "Memulihkan master database" dalam SQL Server 2005 buku Online.
  7. Setelah berhasil memulihkan Master database, Anda harus menutup turun dan me-restart layanan SQL Server.
  8. Jika "Cadangan membangun" lebih besar dari "SQL Server membangun", pergi ke langkah 10.
  9. Mengajukan permohonan kembali setiap paket layanan atau perbaikan terbaru membangun diperlukan untuk roll perangkat lunak server maju ke "membangun SQL Server".
  10. Mengembalikan msdb dan Model database dari backup yang dibuat di langkah 2. Jika Anda menggunakan SQL Server 2005, lihat topik "Memulihkan database model dan msdb" dalam SQL Server 2005 buku Online.
  11. Kembali semua pengguna database dengan menggunakan sp_attach_db prosedur yang tersimpan. Untuk informasi lebih lanjut tentang bagaimana untuk melekatkan kembali database, lihat topik "Melampirkan dan memisahkan database" dalam SQL Server 2000 buku Online.
Perubahan yang dibuat untuk Master database setelah cadangan Master dilakukan adalah sekarang hilang dan diterapkan harus secara manual kembali.
Jika Anda mencoba operasi pemulihan pada Model atau msdb database, Anda dapat menggunakan langkah-langkah berikut untuk menyelesaikan masalah ini. Untuk menggambarkan prosedur ini dengan sebuah contoh, artikel ini merujuk ke server asli yang satu database ini, mengatakan msdb, akan dipulihkan sebagai Server A. Prosedur ini melibatkan menginstal SQL Server pada B Server yang berbeda untuk menghindari pesan kesalahan 3168. Asumsi tentu saja, adalah bahwa Anda hanya memiliki cadangan berlaku dari membangun yang lebih tua untuk msdb pada Server A.
  1. Instal SQL Server 2000 Server B (dengan pengaturan pemeriksaan yang sama sebagai Server A) dan paket layanan atau perbaikan terbaru membangun diperlukan untuk mendapatkan perangkat lunak server untuk "Backup membangun".
  2. Setelah SQL Server 2000 telah diinstal, mulai layanan SQL Server dan mencoba untuk memulihkan msdb basis data dari file cadangan. Karya pemulihan jika server membangun dan membangun pada yang cadangan dilakukan identik.
  3. Jika "Cadangan membangun" lebih besar dari "Saat ini membangun", pergi ke langkah 5.
  4. Setelah berhasil mengembalikan, upgrade SQL Server 2000 pada Server B dengan menerapkan paket layanan atau perbaikan terbaru membangun diperlukan untuk roll perangkat lunak server ke depan untuk "Saat ini membangun".
  5. Setelah upgrade selesai, melakukan cadangan msdb database. Sekarang Anda dapat mengembalikan dari cadangan ini pada Server A, mengingat bahwa membangun server di mana cadangan dilakukan dan "Saat ini membangun" sama.
Prosedur yang sama bekerja untuk Model database juga. Sekali lagi, setiap perubahan yang dibuat untuk database ini karena cadangan dilakukan hilang dan diterapkan harus secara manual kembali.

INFORMASI LEBIH LANJUT

Hal ini selalu praktik yang baik untuk memiliki saat ini, efektif strategi cadangan. Larangan ini adalah contoh lain dari mengapa strategi cadangan yang baik penting. Dalam terang dari pembatasan ini, Anda harus melakukan cadangan dari database sistem Anda segera setelah Anda meng-upgrade server Anda ketika Anda menginstal paket layanan atau perbaikan terbaru membangun.

Properti

ID Artikel: 264474 - Kajian Terakhir: 22 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Kata kunci: 
kbbackup kbprb kbmt KB264474 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:264474

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com