Apa pilihan saya jika saya perlu memindahkan database dari SQL Server 2012 (32bit) ke SQL Server 2005 (64bit)?
Saya tahu saya tidak bisa:
- mengembalikan cadangan database pada SQL Server 2005
- lepaskan & lampirkan
Saya tahu saya bisa:
- menggunakan impor data wizard, dan saya mencobanya pada satu database, tetapi hanya memindahkan data, dan bahkan itu menyusahkan karena saya perlu melakukan banyak pekerjaan membuat tabel temp untuk mempertahankan kolom identitas, menciptakan kembali semua FK, indeks dll.
Apakah ada opsi yang lebih mudah?
sql-server
migration
downgrade
Greg Balajewicz
sumber
sumber
Jawaban:
Anda dapat mengikuti metode apa pun di bawah ini:
Catatan: Jika Anda menggunakan fitur baru seperti tipe data baru, dll, maka Anda harus menguji karena akan menimbulkan kesalahan.
METODE 1: Menggunakan Alat Asli
Script database SCHEMA_ONLY dan buat ulang database kosong di server tujuan. Berikut screenshotnya:
Gunakan BCP OUT dan BULK INSERT untuk memasukkan data.
Di bawah ini adalah skrip yang akan membantu Anda dengan Bagian 2.
Metode 2: Menggunakan Alat Pihak Ketiga
Buat database kosong di server tujuan. Gunakan skema Redgate bandingkan dan bandingkan data untuk membuat dan memuat data ke server tujuan.
Catatan: Saya telah menggunakan skema Redgate dan perbandingan data dan mereka adalah alat terbaik untuk jenis tugas seperti itu dan karenanya jika Anda menggunakan alat pihak ke-3, maka rekomendasi saya adalah Redgate.
sumber
Selain metode yang sudah disarankan di sini, Anda juga dapat mencoba membuat file BACPAC dan mengimpornya ke tujuan Anda. Ini mirip dengan cara Microsoft merekomendasikan migrasi database Anda dari on-prem ke database cloud Azure.
Keuntungannya adalah kombinasi skema pengekspor serta data, dan tidak tergantung pada versi database, sehingga Anda secara teoritis dapat mengimpor database dari versi apa pun ke versi apa pun.
Kelemahannya adalah bahwa sebelum menghasilkan file BACPAC pada sumbernya, ia menjalankan semacam proses validasi ketat yang dapat dengan mudah gagal jika Anda memiliki referensi ke objek di luar basis data Anda (baik itu basis data pengguna atau sistem), atau jika Anda memiliki objek terenkripsi. Tetapi jika Anda beruntung dan itu tidak gagal, maka itu bisa menjadi solusi yang agak mudah.
Yang Anda butuhkan adalah salah satu versi SSMS yang lebih baru (17 atau 18): https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms
Untuk mulai membuat file BACPAC, klik kanan pada database dan pilih "Ekspor Aplikasi Data-tier ..." (pastikan untuk tidak bingung dengan "Ekstrak Aplikasi Data-tier ..." yang merupakan sesuatu yang berbeda):
Anda akan disajikan dengan wizard sederhana untuk memandu Anda melalui langkah-langkahnya. Setelah selesai, Anda dapat menggunakan "Impor Aplikasi Data-tier ..." di server tujuan Anda, yang dapat Anda lihat dengan mengklik kanan pada simpul "Databases" (sekali lagi, jangan bingung dengan "Deploy Data -Tingkat Aplikasi ... "):
Ini juga akan menunjukkan kepada Anda panduan sederhana untuk memandu Anda melalui langkah-langkahnya.
sumber
Untuk mengurangi versi Sql Server adalah kerja keras.
Ada beberapa opsi untuk dikurangi seperti;
Pertama-tama, buat semua skrip objek database dan jalankan di server tujuan.
Setelah itu Anda bisa menggunakan;
Tapi untuk alat RedGate Data Compare ,
sumber
Tidak mungkin menurunkan versi database di SQL Server. Namun, solusinya adalah untuk skrip semua objek DB dan menerapkan skrip pada database tujuan. SSIS adalah cara terbaik untuk membantu melakukan ini.
sumber