Timeout error kedaluwarsa saat menggunakan penyihir basis data salinan

8

Microsoft membuat saya percaya bahwa Wisaya Database Salin SQL Server 2012 adalah cara paling optimal untuk menyalin database SQL Server 2000 ke SQL Server 2012. Setelah berjuang beberapa jam, saya dapat melewati beberapa masalah dan saya dapat mengimpor kecil untuk database SQL Server 2000 ukuran sedang ke dalam SQL Server 2012.

Namun, wizard terus gagal untuk database 30GB dengan kesalahan ini:

Pesan: Terjadi kesalahan saat mentransfer data. Lihat pengecualian dalam untuk detailnya.
StackTrace: di Microsoft.SqlServer.Management.Smo.Transfer.TransferData ()
di Microsoft.SqlServer.Dts.Tasks.TransferObjectsTask.TransferObjectsTask.TransferDatabasesUsingSMOTransfer ()
InnerException -> Timeout kedaluwarsa. Periode waktu habis berlalu sebelum penyelesaian operasi atau server tidak merespons.
BUAT DATABASE gagal. Beberapa nama file yang tercantum tidak dapat dibuat. Periksa kesalahan terkait.
StackTrace:
di System.Data.SqlClient.SqlConnection.OnError (SqlException exception, Boolean breakConnection)
di System.Data.SqlClient.TdsParser.ThdsExceptionAndWarning ()
di System.Data.SqlClient.TdsParser.Run (RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)

Saya telah memeriksa dua kali, ini bukan masalah filepath, izin atau ruang disk. Saya pikir CREATE DATABASElangkah ini memakan waktu sekitar 2 menit dan penyihir mengasumsikan bahwa waktu operasi habis. Saya secara manual membuat database kosong dengan file path yang sama dan filesize menggunakan SQL, yang berfungsi. Menariknya, salinan basis data 1GB gagal dengan kesalahan yang sama dan berhasil pada percobaan ke-2.

Tolong bantu.

Salman A
sumber
Silakan lihat jawaban Aarons. Itu adalah cara yang jauh lebih efisien untuk basis data Anda
Ali Razeghi

Jawaban:

7

Jalur yang jauh lebih efisien daripada mengacaukan wisaya itu adalah dengan:

  1. Ambil cadangan penuh dari database 2000 Anda.
  2. Kembalikan ke contoh SQL 2005, 2008 atau 2008 R2, yang semuanya mendukung 2000 database. Anda masih bisa mendapatkan edisi evaluasi 2008 R2 di sini , jika Anda tidak memiliki mesin virtual yang berlaku. Perhatikan bahwa Express tidak akan berfungsi karena memiliki batasan file data 4GB / 10GB tergantung pada versinya.
  3. Ubah tingkat kompatibilitas menjadi sesuatu di atas 80 (90 atau 100, tergantung pada apakah Anda menggunakan 2005 atau 2008/2008 R2) menggunakan ALTER DATABASE.
  4. Ambil cadangan penuh dari database ini setelah tidak lagi dalam 80 mode kompatibilitas.
  5. Kembalikan cadangan baru ini ke contoh SQL Server 2012 Anda.
  6. Ubah tingkat kompatibilitas menjadi 110 dan perbarui statistik.
  7. UJI .
Aaron Bertrand
sumber
Saya telah menginstal SQL 2012, apakah boleh jika saya menginstal SQL 2008 R2 pada mesin yang sama? Apakah urutan pemasangan itu penting?
Salman A
Ya, Anda dapat menginstal 2008 R2 pada mesin yang sama, tetapi untuk menjaga hal-hal sederhana cukup instal mesin database, tidak ada alat klien dan semua itu. Anda dapat menghapus instalan 2008 R2 2008 setelah Anda memindahkan semua 2000 basis data Anda dari tahun 2000.
Aaron Bertrand
1
Saya menyarankan agar tidak menginstal versi yang tidak Anda perlukan pada mesin produksi, tetapi tidak, itu tidak mengganggu tetapi Anda mungkin mendapatkan beberapa peringatan tentang komponen bersama. Sebagai aturan umum, jangan pernah menginstal apapun pada prod yang tidak Anda butuhkan dalam prod. Ini meningkatkan area permukaan keamanan untuk serangan, memperkenalkan bug, dan meningkatkan manajemen.
Ali Razeghi
1
@Ali, bagaimana Anda tahu mesin yang Salman bicarakan adalah mesin produksi? Atau itu bukan satu-satunya mesin yang tersedia?
Aaron Bertrand
Itu sebabnya saya menentukan 'pada prod' bukan hanya 'jangan lakukan itu' dan menjawab 'tapi tidak itu tidak mengganggu'. Sejauh hanya mesin yang tersedia, Anda dapat menginstal ini di desktop bahkan dan database-nya adalah 30GB seperti yang dinyatakan. Komputer dengan penyimpanan gratis 30GB cukup umum, tetapi sekali lagi, itu hanya saran, tidak sulit 'ini adalah satu-satunya jawaban'. Saya melihat blognya dan dia sangat fokus, yang berarti ada kemungkinan tinggi dia tidak terlibat dengan praktik terbaik sebanyak ops guy. Saya pikir itu saran yang baik, saya terkejut berapa banyak orang yang berduka ketika mereka tidak perlu melakukannya.
Ali Razeghi