Bermigrasi dari SQL Server 2000 hingga 2012 tanpa instance 2005 atau 2008

11

Saya telah menemukan tiga database lama yang duduk di SQL Server 2000 yang saya harus pindah ke 2012. Saya percaya pendekatan standar adalah mengembalikan ke contoh 2005 atau 2008, memperbarui, mengekspor kembali dan akhirnya mengembalikan ke 2012.

Baik, kecuali kami tidak memiliki instance 2005 atau 2008 yang tersedia.

Adakah solusi atau metode lain yang mungkin patut dicoba?

Sebagai informasi, database hanya berisi 15-20 tabel dan beberapa tampilan, mereka tampak sangat sederhana dan cadangan hanya berukuran 100-200MB.

Lunatik
sumber
1
itu sangat legal, dan tercakup dalam lisensi sql untuk menginstal instance perantara sebagai "jembatan" untuk memutakhirkan. tidak ada pengguna yang terhubung ke sana. ...
Rostol

Jawaban:

21

Tidak, tidak ada solusi untuk memutakhirkan database langsung dari 2000 hingga 2012.

Karena Anda tidak memiliki banyak data, Anda dapat melakukan segala macam hal untuk memindahkan data (tetapi bukan database secara keseluruhan), termasuk:

  • Panduan Impor / Ekspor
  • SSIS
  • BCP
  • Kueri manual menggunakan server yang ditautkan dari 2012 atau aplikasi

Namun ini belum tentu membawa hal-hal lain seperti pengguna, izin, peran, dll. Dan tidak semuanya akan membuat objek Anda dalam urutan ketergantungan yang benar. Jadi mereka lebih banyak bekerja dan rawan kesalahan. Dalam pengalaman saya akan bermanfaat untuk hanya memasang contoh menengah sementara dan kemudian melakukan dua operasi backup + restore - yang akan lebih mudah, lebih cepat, dan lebih sedikit rawan kesalahan daripada salah satu metode di atas.

Jika basis data Anda lebih kecil dari 10GB, Anda dapat menginstal salinan Express (gratis) dalam beberapa menit, dan menggunakannya. Anda dapat mengunduh 2008 R2 Express di sini . Saya tidak berpikir ada fitur Enterprise pada tahun 2000 di sekitar struktur database dll. Yang akan memblokir upgrade itu (masalah yang lebih besar untuk versi yang lebih modern).

Jika database Anda terlalu besar untuk Express, Anda harus dapat menemukan Edisi Pengembang seharga $ 49 atau lebih (atau bahkan lebih murah - saya menemukan 2005 di eBay seharga $ 37 ), atau jika Anda memiliki langganan MSDN, Anda harus bisa mendapatkan SKU dari sana.

Atau Anda bisa lolos dengan menggunakan Edisi Evaluasi, yang luar biasa masih ditawarkan untuk diunduh untuk versi yang lebih lama (misalnya saya temukan 2008 di sini ), namun saya sedang menggunakan telepon sehingga tidak dapat mengonfirmasi pengunduhan karena versi itu masih berfungsi .

Aaron Bertrand
sumber
Terima kasih. Karena kecepatan internet di sini buruk, saya berusaha menghindari unduhan, tetapi saya menemukan 2005 menginstal binari, jadi saya kira itu akan menjadi metode tercepat.
Lunatik
tidak, satu-satunya yang benar-benar berguna adalah 2008 kalau tidak Anda juga akan membutuhkan 2010 dari 2005
Rostol
Apakah Anda yakin @Rostol? sqlskills.com/blogs/paul/…
Adam Nofsinger
@AdamNofsinger saya akan mengatakan 100% yakin, saya melakukan ini gajillion kali (kami memiliki SQL 2000 lama yang digunakan oleh sistem lama) dan memiliki tujuan yang dibangun 2008 vm untuk mengembalikan data terlebih dahulu kemudian cadangan dan kembalikan ke SQL 2016 ... Tetapi jika Paul Randal mengatakan sebaliknya ... tetapi ingatlah bahwa metode langsung berfungsi sejak 2005+. bukan untuk 2000 dan 2003 berturut-turut.
Rostol
6

Menyatakan tidak ada solusi sepertinya sedikit prematur.

Anda mengatakan basis data Anda hanya berisi beberapa tabel dan tampilan. Mengapa tidak mengekspor tabel dan skema tampilan sebagai SQL membuat pernyataan dan menjalankannya pada database target Anda? Anda kemudian dapat juga mengekspor data aktual menjadi sesuatu seperti format CSV dan mengimpornya ke database target, atau bahkan mungkin menulis sesuatu dalam C # / C ++ / etc untuk mengekspor / mengimpor data aktual.

Anda tidak perlu menghabiskan satu sen pada contoh baru dari SQL Server yang pada akhirnya tidak Anda butuhkan.

Nicholas Hill
sumber
3
Dan termasuk semua objek lain, prosedur tersimpan, pemicu, fungsi, dll tentu saja. Demikian juga ada utilitas BCP untuk menyalin data dari dan ke database.
RLF
1
Terima kasih. Itulah hal yang mungkin saya harapkan, tetapi perselisihan DB bukan pekerjaan saya dan saya tidak terlalu yakin apakah ada dependensi atau pengaturan lain (izin pengguna dll.) Yang tidak akan disalin jika saya baru saja mengekspor tabel dll.
Lunatik
4
Cukup adil, memperbarui jawaban saya. Masih berpikir solusinya adalah lebih banyak pekerjaan daripada hanya memasang contoh sementara, dan melakukan dua operasi backup + restore yang dapat diandalkan dan tidak rawan kesalahan. (Juga, ini sepertinya bukan tentang uang , karena OP sudah memiliki binari 2005, dan database yang kecil harus dapat dimigrasikan menggunakan SQL Express.)
Aaron Bertrand
3

Tidak, Anda tidak dapat memigrasikannya secara langsung dari tahun 2000 hingga 2012.

Apa yang dapat Anda lakukan adalah menginstal contoh sementara 2005 ATAU 2008 atau 2008R2, mengembalikan database 2000 di sini. Setelah selesai Anda sekarang dapat memutakhirkan dari instance yang diinstal dengan mengambil cadangan database dari instance itu dan mengembalikan ke sql server 2012.

Anda harus melakukan migrasi dalam dua langkah:

  • Langkah 1: Lakukan migrasi pertama dari SQL 2000 ke SQL 2008 misalnya. Anda harus SQL 2000 SP4, kemudian ikuti langkah ini: Migrasi SQL Server 2000 ke SQL Server 2008

  • Langkah 2: Lakukan migrasi kedua dari SQL Server 2008 hingga 2012.

KASQLDBA
sumber
0

Anda mengatakan Anda "telah menemukan tiga database lama yang duduk di SQL Server 2000" yang membuat saya percaya Anda hanya perlu data. Saya kira jika mereka dijalankan untuk suatu tujuan, Anda akan tahu. Jika ini masalahnya, abaikan semua pertanyaan pengguna, keamanan, dll.

Impor / Ekspor wizard semua tabel Script prosedur dan tampilan yang tersimpan Periksa rencana perawatan dan pekerjaan agen hanya untuk mendokumentasikan proses yang mungkin ingin Anda lihat nanti.

Mitch Stein
sumber
0

Anda tidak dapat bermigrasi langsung dari SQL Server 2000 ke SQL Server 2012, dan jika Anda mencoba melakukannya Anda akan mendapatkan nomor galat 3169 berikut, yang terkait dengan masalah kompatibilitas.

Migrasi ke SQL Server 2012 dapat dilakukan dari salah satu versi berikut (versi minimum) SQL Server 2005 SP4 atau SQL Server 2008 SP2 atau SQL Server 2008 R2 SP1.

Jadi langkah pertama untuk bermigrasi dari SQL Server 2000 ke salah satu versi tersebut, saya menemukan salah satu Penasihat Upgrade untuk SQL Server 2008 di tautan berikut . Untuk memastikan semuanya akan berjalan lancar sebelum memulai proses restorasi, Anda perlu menjalankan aplikasi. Lalu "Luncurkan Wizard Analisis Pembaruan Upgrade" dan ikuti langkah-langkah wizard.

Setelah Anda mendapat laporan, Anda perlu mengembalikan database pada target SQL Server 2005 SP4 atau SQL Server 2008 SP2 atau SQL Server 2008 R2 SP1 dan menjalankan tingkat kompatibilitas di atasnya (Anda dapat menemukannya pada opsi database). Untuk login SQL Server, silakan ikuti instruksi di tautan berikut .

Ketika itu selesai, sekarang Anda perlu bermigrasi ke SQL Server 2012 dengan mengulangi langkah-langkah yang sama dari server yang Anda lakukan migrasi pertama.

Ahmad Abuhasna
sumber
0

Pertama saya setuju Anda tidak harus bermigrasi dari 2000 ke 2012 secara langsung. Saya pikir proses itu telah dibahas dengan baik. Saya ingin menyarankan Anda mencari tahu pasti apakah ada yang menggunakan database dan untuk apa mereka menggunakannya. Mungkin mereka tidak digunakan. Itu terjadi dan jika itu masalahnya maka Anda tidak perlu khawatir. Mungkin menambahkan 2 atau 3 tabel dan data (untuk tahun 2000 menggunakan bcp jika Anda ingin mengeluarkan data untuk tabel individual yang sederhana dan dapat diandalkan) ke database 2012 yang ada akan melayani kebutuhan pengguna. Jika Anda melakukannya maka buat tabel baru di database 2012 dan bcp keluar data yang Anda butuhkan untuk csv, Anda dapat bcp kembali jika Anda mau. Jika Anda harus melakukan migrasi lebih dari satu atau dua tabel maka cara termudah dan teraman dan terbaik adalah melakukan migrasi dua langkah. Mengenakan'

dkh63493
sumber
Anda harus tahu bahwa skema scripting pada tahun 2000 tidak 100% akurat. Saya ingat selalu harus mengedit skrip.
dkh63493