Bagaimana mengembalikan file cadangan database SQL Server versi yang lebih tinggi ke versi yang lebih rendah SQL Server?
Menggunakan SQL Server 2008 R2 (10.50.1600) , saya membuat file cadangan dan sekarang saya ingin mengembalikannya di server saya SQL Server 2008 (10.00.1600) .
Ketika saya mencoba mengembalikan cadangan ke SQL Server 2008 itu memberikan kesalahan yaitu Restore Failed
karena:
Basis data didukung pada server yang menjalankan versi 10.50.1600. Versi itu tidak kompatibel dengan server ini, yang menjalankan versi 10.00.1600.
Bagaimana cara mengembalikan file cadangan di server ini?
sql-server
Oreo
sumber
sumber
Jawaban:
Tidak, tidak mungkin untuk menurunkan versi database. 10.50.1600 adalah versi SQL Server 2008 R2 . Sama sekali tidak ada cara Anda dapat mengembalikan atau melampirkan database ini ke contoh SQL Server 2008 yang Anda coba pulihkan pada (10.00.1600 adalah SQL Server 2008). Satu-satunya pilihan Anda adalah:
sumber
Anda dapat menggunakan fungsionalitas yang disebut Aplikasi Data-Tier Ekspor yang menghasilkan
.bacpac
file yang terdiri dari skema dan data basis data.Di server tujuan, Anda dapat menggunakan opsi Impor Data-Tier Aplikasi yang membuat dan mengisi basis data baru dari
.bacpac
file yang dibuat sebelumnyaJika Anda hanya ingin mentransfer skema basis data, Anda dapat menggunakan Ekstrak Aplikasi Data-Tier untuk membuat file dan Menyebarkan Aplikasi Data-Tier untuk menggunakan skema database yang dibuat.
Saya sudah mencoba proses ini pada berbagai versi SQL Server dari SQL 2014 ke SQL 2012 dan dari SQL 2014 ke SQL 2008R2 dan bekerja dengan baik.
sumber
sqlpackage.exe
baris perintah. Google untuk lebih.Belum tentu bekerja
Backup / Restore - tidak akan berfungsi ketika targetnya adalah versi MS SQL sebelumnya.
Salin Basis Data - tidak akan berfungsi ketika targetnya adalah SQL Server Express: "Server tujuan tidak bisa berupa SQL Server 2005 atau yang lebih baru Express."
Impor data - Tidak akan menyalin skema.
Akan bekerja
Pembuatan skrip - Tugas -> Buat Skrip . Pastikan Anda menetapkan target versi SQL Server yang diinginkan pada halaman Set Scripting Options -> Advanced . Anda juga dapat memilih di sana apakah akan menyalin skema, data, atau keduanya. Perhatikan bahwa dalam skrip yang dibuat, Anda mungkin perlu mengubah folder DATA untuk file mdf / ldf jika berpindah dari non-express ke express atau sebaliknya.
Layanan Penerbitan Basis Data Microsoft SQL Server - dilengkapi dengan SQL Server 2005 dan di atasnya, saya kira. Unduh versi terbaru dari sini . Prasyarat:
sqlncli.msi
/sqlncli_x64.msi
/sqlncli_ia64.msi
,SQLServer2005_XMO.msi
/SQLServer2005_XMO_x64.msi
/SQLServer2005_XMO_ia64.msi
(unduh di sini ).sumber
Berikut adalah 2 sen saya pada opsi yang berbeda untuk menyelesaikan ini:
Alat pihak ketiga : Mungkin cara termudah untuk menyelesaikan pekerjaan adalah membuat database kosong pada versi yang lebih rendah dan kemudian menggunakan alat pihak ketiga untuk membaca cadangan dan menyinkronkan database yang baru dibuat dengan cadangan.
Gerbang merah adalah salah satu yang paling populer tetapi ada banyak lainnya seperti ApexSQL Diff , ApexSQL Data Diff , Adept SQL , Idera .... Semua ini adalah alat premium tetapi Anda bisa menyelesaikan pekerjaan dalam mode uji coba;)
Membuat skrip : seperti yang telah disebutkan sebelumnya, Anda selalu dapat skrip struktur dan data menggunakan SSMS tetapi Anda harus mempertimbangkan urutan eksekusi. Secara default, skrip objek tidak dipesan dengan benar dan Anda harus mengurus dependensi. Ini mungkin menjadi masalah jika database besar dan memiliki banyak objek.
Impor dan ekspor panduan : Ini bukan solusi ideal karena tidak akan mengembalikan semua objek tetapi hanya tabel data tetapi Anda dapat mempertimbangkannya untuk perbaikan cepat dan kotor saat dibutuhkan.
sumber
Anda tidak dapat memulihkan basis data (atau melampirkan) yang dibuat di versi atas ke versi yang lebih rendah. Satu-satunya cara adalah membuat skrip untuk semua objek dan menggunakan skrip untuk menghasilkan basis data.
Ya, sekarang Anda telah selesai dengan Skrip Buat dengan Skema dan Data dari Basis Data.
sumber
Cara lain untuk melakukan ini adalah dengan menggunakan fitur "Copy Database":
Temukan dengan mengklik kanan sumber database> "Tugas"> "Salin Basis Data".
Anda bisa menyalin database ke versi yang lebih rendah dari SQL Server Instance. Ini bekerja untuk saya dari SQL Server 2008 R2 (SP1) - 10.50.2789.0 ke Microsoft SQL Server 2008 (SP2) - 10.0.3798.0
sumber
Anda bisa mencoba ini.
sumber
Pergi ke Tugas-> Buat Skrip ...
Di Tingkat Lanjut di "Jenis data untuk skrip" pilih
"Schema and data"
dan coba jalankan skrip ini dalam versi yang lebih rendah.sumber
Ini tidak cantik, tetapi ini adalah bagaimana saya melakukannya memberikan Anda opsi ini diinstal pada SQL 2008 R2 Anda instal ..
1) Klik kanan database di SQL Server 2008 R2 "Tugas" .. "Hasilkan skrip" di wizard, pilih seluruh database dan objek di langkah pertama. Pada langkah "Tetapkan Opsi Scripting" Anda akan melihat tombol "Advanced", pilih ini dan pastikan Anda memilih "Script for Server Version" = SQL Server 2008 "bukan versi R2. Ini adalah langkah penting, karena" impor data " dengan sendirinya tidak membawa semua kunci utama, konstanta dan benda lain seperti prosedur tersimpan. "
2) Jalankan skrip SQL yang dihasilkan pada instal baru atau instance database SQL Express atau SQL Server 2008 menggunakan jendela kueri atau buka skrip .sql yang disimpan dan jalankan dan Anda akan melihat database baru.
3) Sekarang klik kanan pada database baru dan pilih "Tugas" .. "Impor Data .." pilih sumber sebagai basis data R2 dan tujuan sebagai basis data baru. "Salin data dari satu atau beberapa tabel atau tampilan", pilih kotak centang atas untuk memilih semua tabel dan kemudian langkah selanjutnya, jalankan paket dan Anda harus memiliki semuanya pada versi yang lebih lama. Ini harus bekerja untuk kembali ke versi 2005 juga. Semoga ini bisa membantu seseorang.
sumber
Anda bisa menggunakan BCP masuk dan keluar untuk tabel kecil.
Perintah BCP OUT: -
Perintah BCP IN: - Membuat struktur tabel untuk Invoicescopy1.
sumber
Saya menghargai ini adalah posting lama, tetapi mungkin bermanfaat bagi orang-orang untuk mengetahui bahwa Azure Migration Wizard (tersedia di Codeplex - tidak dapat ditautkan karena Codeplex saat ini sedang saya ketik ini) akan melakukan ini dengan mudah.
sumber
Anda harus menggunakan penyihir Impor / Ekspor di SSMS untuk memigrasi semuanya
Tidak ada "downgrade" mungkin menggunakan backup / restore atau lepas / pasang. Maka yang harus Anda lakukan adalah:
sumber
Anda dapat membuat skrip dari menu Tugas
Untuk referensi rinci
Cara memigrasi basis data SQL Server ke versi yang lebih rendah
sumber