Saya memiliki database pada contoh SQL Sever 2012 yang ingin saya salin ke server 2008. Server 2008 tidak dapat memulihkan cadangan yang dibuat oleh server 2012 (saya telah mencoba).
Saya tidak dapat menemukan opsi apa pun di 2012 untuk membuat cadangan 2008 yang kompatibel. Apakah saya melewatkan sesuatu?
Apakah ada cara mudah untuk mengekspor skema dan data ke format versi-agnostik yang kemudian dapat saya impor ke 2008?
Basis data tidak menggunakan fitur spesifik 2012. Ini berisi tabel, data, dan prosedur tersimpan.
Inilah yang saya coba sejauh ini
Saya mencoba Tugas → Hasilkan Skrip di server 2012, dan saya dapat menghasilkan skema (termasuk prosedur tersimpan) sebagai skrip SQL. Ini tidak termasuk data apa pun.
Setelah membuat skema itu di mesin 2008 saya, saya bisa membuka panduan "Ekspor Data" pada mesin 2012, dan setelah mengkonfigurasi 2012 sebagai mesin sumber dan 2008 sebagai mesin target, saya disajikan dengan daftar tabel yang saya bisa menyalin. Saya memilih semua tabel saya (300+), dan mengklik wizard. Sayangnya ia menghabiskan waktu untuk menghasilkan skripnya, kemudian gagal dengan kesalahan seperti "Gagal memasukkan ke dalam kolom baca-saja 'FOO_ID'".
Saya juga mencoba "Copy Database Wizard", yang diklaim dapat menyalin "dari 2000 atau lebih tinggi hingga 2005 atau lebih baru". Ini memiliki dua mode:
"Lepaskan dan Lampirkan", yang gagal karena kesalahan:
Message: Index was outside the bounds of the array. StackTrace: at Microsoft.SqlServer.Management.Smo.PropertyBag.SetValue(Int32 index, Object value) ... at Microsoft.SqlServer.Management.Smo.DataFile.get_FileName()
Metode objek manajemen SQL yang gagal dengan kesalahan
Tidak dapat membaca properti IsFileStream. Properti ini tidak tersedia di SQL Server 7.0. "
Jawaban:
Klik kanan pada database di SQL Management Studio 2012, dan pilih "Tugas -> Buat Skrip". Klik melewati layar pembuka, pilih "skrip seluruh basis data dan semua objek basis data". Pada halaman "tentukan bagaimana skrip harus disimpan", klik "lanjut". Di bawah "Umum" di halaman properti munculan, ubah "Jenis data ke skrip" dari "Skema saja" menjadi "Skema dan data", dan ubah "Skrip untuk Versi Server" dari "2012" menjadi "2008".
Saya kemudian harus menemukan beberapa cara untuk mengedit awal dari file SQL yang besar ini, untuk mengubah bagaimana database akan dibuat - lihat q ini: https://stackoverflow.com/questions/102829/best-free-text-editor -mendukung lebih dari 4gb file
Dan akhirnya saya harus menemukan beberapa cara untuk menjalankan skrip SQL, yang terlalu besar untuk dibuka di SQL Management Studio - lihat q ini: https://stackoverflow.com/questions/431913/how-do-you-run- a-300mb-ms-sql-sql-file
sumber
Untuk migrasi SQL, gunakan Wisaya Migrasi Database SQL sumber terbuka dan gratis.
Saya memiliki database 5GB dengan pasangan ~ 10 juta catatan dan mencoba rute melalui Generate Script dan kemudian menjalankannya dengan sqlcmd.exe. Pertama-tama, skrip yang dihasilkan tidak selalu berfungsi dengan benar. Kedua, sqlcmd.exe dapat gagal pada file besar juga, mengeluh tentang memori yang tersedia. osql.exe berfungsi, tetapi hanya butuh waktu lama (dan memiliki argumen baris perintah yang sama).
Lalu saya menemukan alat yang luar biasa untuk memigrasi SQL Server ke database SQL Azure. Ini berfungsi untuk SQL Server ke SQL Server juga, misalnya jika Anda ingin memigrasi database SQL 2012 ke 2008 R2. Ini menggunakan bcp.exe, yang menggunakan salinan massal. Ada versi GUI dan baris perintah (Batch) yang tersedia dan open source. Lihat http://sqlazuremw.codeplex.com/ . Dalam kasus saya, operasi memakan waktu 16 menit.
Di layar lanjutan, Anda dapat memilih bahwa target Anda adalah SQL Server, bukan SQL Azure.
sumber
Saya baru mengenal SQL, tetapi saya berhasil bermigrasi dari 2012 hingga 2008. Untuk melakukannya saya menggunakan utilitas impor dan ekspor SQL. Saya memilih server SQL 2012 dan basis data yang ingin saya migrasi dan akhirnya server 2008 dan membuat basis data baru sebagai basis data tujuan saya. Itu berhasil.
sumber
Coba alat APEXSQL . Mereka memiliki alat yang akan skrip database dan skrip data juga.
sumber
Masalahnya adalah ia tidak dapat menyisipkan kolom ID, jadi:
sumber
Saya mengikuti solusi Rich https://superuser.com/a/469597/312310 di atas dan itu berhasil! Terima kasih - saya belum bisa memilih di sini!
Langkah-langkah tambahan yang harus saya lakukan untuk membuatnya bekerja adalah:
Ubah nama file logis dan pastikan jalurnya benar. Saya juga harus mengubah nama log yang dihasilkan, kalau tidak mencoba untuk menimpa file mdf dengan log dan kemudian melemparkan kesalahan ini https://stackoverflow.com/questions/7534664/sql-server-script-error-database-is- Telah digunakan
Saya harus mengomentari bagian yang dibuat dan menambahkan izin pengguna secara manual sesudahnya
Jalankan itu, dan lihatlah sekarang saya dapat mengembalikan database Umbraco 7.1.2 saya yang baru ke server web saya yang hanya memiliki SQL Server 2008 R2!
sumber
Lihatlah xSQL Schema Compare dan xSQL Data Compare . Pertama-tama Anda dapat menyinkronkan skema dengan membandingkan skema dan kemudian menyalin data.
Penafian: Saya berafiliasi dengan xSQL.
sumber