Memigrasi Data dari SQL Server 2005 ke 2016

9

Saya baru mengelola SQL Server namun saya merasa nyaman dengan bahasa SQL dan membuat paket SSIS.

Saya ingin memigrasikan data dari SQL Server 2005 ke 2016.

Pertanyaan saya adalah apakah saya perlu khawatir tentang sistem basis data dan objek lain seperti indeks, prosedur tersimpan, tampilan, keamanan dan izin. login atau bisakah saya memigrasikan data saja.

Yang akan menjadi prosedur yang direkomendasikan dalam kasus ini.

Robert
sumber
Apakah Anda mencoba memutakhirkan instance produksi ? yaitu apakah Anda memerlukan login yang sama, indeks, procs tersimpan, dll? Seperti itu, pertanyaan Anda sangat luas. Silakan ikuti tur dan baca pusat bantuan tentang cara mengajukan pertanyaan yang bagus. Terima kasih!
Max Vernon

Jawaban:

7

Max memberikan jawaban yang layak yang akan saya angkat setelah saya selesai mengetikkan tampilan alternatif ini.

Saya bukan penggemar memulihkan database sistem ketika melakukan migrasi peningkatan dan saya lebih suka melakukan migrasi di tempat upgrade seperti yang saya bahas dalam jawaban panjang untuk pertanyaan lain.

Pada dasarnya saya suka memulai "segar" ketika saya melakukan migrasi. Saya menemukan bahwa bermain dengan migrasi basis data sistem dan peningkatan melalui pemulihan kadang-kadang menyebabkan frustrasi dengan pemulihan dan dapat membawa potensi dosa.

Anda juga bertanya tentang indeks, prosedur tersimpan, tampilan. Barang-barang di tingkat database semua harus hidup di dalam basis data pengguna. Jadi ketika Anda mengembalikan basis data X ke server baru, semua objek basis data (Tabel, Pengguna, Tampilan, Procs, Fungsi, dll.) Juga akan ada di sana.

Apa yang ada dalam database sistem adalah pekerjaan, login, peringatan, server terkait, kunci enkripsi, dll. Item tingkat instance.

Saya suka mengulasnya dan bermigrasi atas apa yang saya butuhkan menggunakan berbagai skrip - akhir-akhir ini DBATools.Io mendukung skrip. Saya suka menggunakan skrip mereka untuk menyalin login sql terutama, karena menangani pengguna terotentikasi SQL menjaga password dan pengidentifikasi keamanan mereka sama sehingga pengguna database dari login tersebut akan berfungsi. Mereka juga memiliki seluruh perintah migrasi SQL Server yang menjalankan sub perintah mereka untuk menyalin item yang biasanya akan saya salin.

Saya tidak percaya Max salah dengan jawaban itu karenanya jawaban positif. Saya hanya memiliki lebih banyak kesuksesan dan lebih banyak keberuntungan dan merasa lebih nyaman bermigrasi ke yang baru daripada mencoba memulihkan lebih dari sistem database antar versi. Saya akan mengatakan bahwa saya benar-benar tidak dapat mengingat kapan terakhir kali saya melakukan migrasi peningkatan versi dan tidak melakukannya dengan cara ini alih-alih mengembalikan database sistem.

Mike Walsh
sumber
Terima kasih atas jawaban anda. Saya tidak ingin memutakhirkan dari 2005 hingga 2016. Saya ingin memigrasikan database dari sebuah instance yang tidak lagi digunakan di sql server 2005 ke instance yang ada pada 2016. Migrasi ini belum disetujui, tetapi saya ingin bersiap ketika itu benar. Pada dasarnya, saya mendapatkan proyek ini karena saya satu-satunya yang memiliki pengalaman SQL sejauh permintaan dan pembuatan paket SSIS. Saya juga prihatin dengan masalah kompatibilitas. Sekali lagi terima kasih.
Robert
Tentu - tetapi ketika pindah dari 2005 ke 2016 - Anda melakukan peningkatan. Anda melakukan peningkatan dan migrasi. Karena Anda mengambil basis data dari satu versi SQL ke versi lain - itu berarti peningkatan pasti. Anda harus menjalankan penasihat peningkatan pada database Anda.
Mike Walsh
Bagaimana jika SQL Server 2005 di-host oleh Windows Server 2003 R2 x86 dan SQL Server 2016 menggunakan OS yang lebih baru.
Robert
@ MikeWalsh Saya setuju dengan hampir semua yang Anda jelaskan dalam respons Anda. Saya juga mengikuti hampir semua itu ketika melakukan Upgrade / Migrasi SQL
nam
4

Anda ingin mempertimbangkan memigrasi basis data sistem (master, msdb, dan mungkin model), jika Anda memerlukan akses ke metadata yang disimpan dalam basis data tersebut.

Master menyimpan item seperti login, sertifikat keamanan, dll.

msdb berisi perincian tentang cadangan, dan menyimpan konfigurasi pekerjaan Agen SQL Server, di antara perincian lainnya.

Model mungkin telah dikustomisasi oleh Anda atau tim Anda untuk memungkinkan basis data kosong yang baru dibuat berisi sekumpulan objek yang telah Anda gunakan di setiap basis data.

Memigrasi basis data sistem dapat dilakukan dengan cukup mudah; petunjuk terperinci tersedia dari MSDN di Cadangkan dan Kembalikan Database Sistem (SQL Server) .

Bergantung pada kebutuhan Anda, Anda bisa melakukan BACKUP DATABASEoperasi terhadap database pengguna pada instance 2005, dan kemudian RESTORE DATABASEpada instance 2016 untuk membawa seluruh database, termasuk semua data, indeks, dan objek lainnya.

Ini akan, setidaknya pada awalnya, membutuhkan jumlah ruang yang sama yang dikonsumsi oleh database pada contoh 2005. Namun, setelah Anda memulihkan database, Anda bisa memanfaatkan kompresi data untuk secara substansial mengurangi jejak kaki yang diperlukan.

Lihat Tentang Bekerja dengan Cadangan Server SQL untuk detail tentang melakukan pencadangan, dan Tentang Kembalikan Skenario untuk detail tentang pemulihan.

Max Vernon
sumber
2

Apakah untuk 2012 atau 2016? Itu membuat perbedaan dalam hal itu, IIRC 2012 adalah jalur migrasi yang diuji sementara 2016 tidak. Dengan demikian, masalah yang diketahui didokumentasikan dan / atau akan ditangkap oleh Upgrade Advisor untuk 2012. Jalur yang tidak diuji mungkin masih berfungsi tanpa masalah, hanya saja tidak diketahui. Yang mengatakan, sangat menyarankan Anda pergi ke 2016. Saya curiga upaya akan hampir sama.

Lihat Apakah Anda meningkatkan dari SQL Server 2005? dalam dokumentasi untuk opsi pemutakhiran 2005 dan tautan ke proses pemutakhiran yang sangat terperinci. Proses peningkatan ditulis untuk 2014 tetapi masih berlaku untuk 2016.

SQLmojoe
sumber
1
Ini 2016. Maaf tentang itu
Robert