2005 veya 2008 örneği olmadan SQL Server 2000'den 2012'ye geçiş


11

SQL Server 2000'de oturan ve 2012'ye geçmem gereken üç eski veritabanına rastladım. Standart yaklaşımın 2005 veya 2008 örneğine geri yükleme, güncelleme, yeniden dışa aktarma ve sonunda 2012'ye geri yükleme olduğuna inanıyorum.

Güzel, ancak 2005 veya 2008 örneğimiz yok.

Denemeye değer olabilecek herhangi bir geçici çözüm veya başka yöntem var mı?

Bilgi için, veritabanları sadece 15-20 tablo ve birkaç görünüm içerir, çok basit görünürler ve yedeklemeler sadece 100-200MB boyutundadır.



1
tamamen yasaldır ve yükseltme için bir "köprü" olarak bir ara örnek yüklemek için sql lisans kapsamındadır. hiçbir kullanıcı ona bağlanmamalıdır. ...
Rostol

Yanıtlar:


21

Hayır, veritabanını doğrudan 2000'den 2012'ye yükseltmenin bir çözümü yoktur.

Bir ton veriye sahip olmadığınız için, verileri taşımak için her türlü şeyi yapabilirsiniz (ancak bir bütün olarak veritabanını değil):

  • Alma / Verme sihirbazı
  • SSIS
  • BCP
  • 2012'den itibaren bağlantılı bir sunucu veya uygulama kullanarak manuel sorgular

Ancak bunlar, kullanıcılar, izinler, roller vb. Gibi başka şeyleri de beraberinde getirmeyecektir. Ve her şey nesnelerinizi doğru bağımlılık düzeninde oluşturmaz. Bu yüzden daha fazla çalışmaya ve hataya eğilimlidirler. Deneyimlerime göre, sadece bir ara örneği geçici olarak koymak ve daha sonra, yukarıdaki yöntemlerden herhangi birine göre daha kolay, daha hızlı ve daha az hataya açık olacak iki yedekleme + geri yükleme işlemi yapmak faydalı olacaktır.

Veritabanlarınız 10 GB'tan küçükse, Express'i (ücretsiz) bir kopyasını birkaç dakika içinde yükleyebilir ve kullanabilirsiniz. 2008 R2 Express'i buradan indirebilirsiniz . Bu yükseltme (daha modern sürümleri için daha büyük bir endişe) engelleyecek veritabanı yapısı vb etrafında 2000 yılında herhangi bir Kurumsal özellikleri olduğunu sanmıyorum.

Veritabanınız Express için çok büyükse, Geliştirici Sürümü'nü 49 ABD Doları veya daha ucuza bulabilirsiniz (veya daha ucuz - 2005'i eBay'de 37 ABD Doları için buldum ) veya bir MSDN aboneliğiniz varsa, Oradan SKU.

Ya da daha eski sürümler için indirilmeye devam eden inanılmaz bir Değerlendirme Sürümü'nü (örneğin , 2008'i burada buldum ) kullanmaktan kurtulabilirsiniz, ancak bir telefondayım, bu sürüm için indirme işleminin hala çalıştığını onaylayamadım .


Teşekkürler. Buradaki internet hızı zayıf olduğu için indirmelerden kaçınmaya çalışıyordum, ancak 2005 kurulum ikili dosyalarını buldum, bu yüzden en hızlı yöntem olacağını tahmin ediyorum.
Lunatik

hayır, sadece gerçekten kullanışlı olanı 2008'dir, aksi takdirde 2005'ten 2010'a da ihtiyacınız olacak
Rostol

@Rostol adlı kullanıcıya emin misin? sqlskills.com/blogs/paul/…
Adam Nofsinger

@AdamNofsinger% 100 emin diyecektim, bunu bir gajillion kez yaptım (eski bir sistem tarafından kullanılan eski bir SQL 2000imiz var) ve önce verileri geri yüklemek ve daha sonra yedekleme ve SQL 2016'ya geri yüklemek için 2008 vm'de bir amaca sahibiz ... Ama Paul Randal aksini söylüyorsa ... ancak doğrudan yöntemin 2005'ten itibaren işe yaradığını unutmayın. 2000 ve 2003 için değil.
Rostol

6

Hiçbir geçici çözüm olmadığını belirtmek biraz erken görünüyor.

Veritabanınızın yalnızca birkaç tablo ve görünüm içerdiğini söylüyorsunuz. Neden tablolar ve görünümler şemasını SQL ifadeler oluşturup bunları hedef veritabanınızda çalıştırmıyorsunuz? Daha sonra gerçek verileri CSV formatı gibi bir şeye dışa aktarabilir ve hedef veritabanına aktarabilir, hatta gerçek verileri dışa aktarmak / içe aktarmak için C # / C ++ / etc'de bir şey yazabilirsiniz.

Nihayetinde ihtiyacınız olmayan yeni SQL Server örnekleri için bir kuruş harcamanıza gerek yoktur.


3
Ve elbette diğer tüm nesneleri, saklı yordamları, tetikleyicileri, işlevleri vb. Aynı şekilde, bir veritabanına ve veritabanına veri kopyalamak için BCP yardımcı programı vardır.
RLF

1
Teşekkürler. Belki de umduğum bir şeydi, ama DB wrangling benim günlük işim değil ve eğer başka bir bağımlılık veya ayar (kullanıcı izinleri vb.) Olup olmadığından emin olamıyorum. masaları vb. ihraç etti.
Lunatik

4
Yeterince adil, cevabımı güncelledim. Yine de bir geçici çözümün bir örneği geçici olarak koymaktan ve iki güvenilir ve hataya açık olmayan yedekleme + geri yükleme işlemi yapmaktan çok daha fazla iş olduğunu düşünüyoruz. (Ayrıca, OP'nin 2005 ikili dosyaları olduğundan ve küçük bir veritabanının SQL Express kullanılarak taşınabilmesi gerektiğinden, bu parayla ilgili gibi görünmüyor .)
Aaron Bertrand

3

Hayır, 2000'den 2012'ye doğrudan taşıyamazsınız.

Yapabileceğiniz şey 2005 OR 2008 veya 2008R2 geçici bir örneğini yüklemek, 2000 veritabanını buraya geri yüklemek. Bir kez bittiğinde, bu örnekten veritabanının yedeğini alıp sql server 2012'ye geri yükleyerek kurulu örnekten yükseltebilirsiniz.

Taşıma işlemini iki adımda yapmanız gerekir:

  • Adım 1: Örneğin SQL 2000'den SQL 2008'e ilk geçiş yapın. SQL 2000 SP4 olmanız ve ardından şu adımı izlemeniz gerekir: SQL Server 2000'i SQL Server 2008'e taşıma

  • Adım 2: SQL Server 2008'den 2012'ye ikinci bir geçiş yapın.


0

"SQL Server 2000 üzerinde oturan üç eski veritabanıyla karşılaştınız" diyorsunuz ki bu da bana sadece verilere ihtiyacınız olduğuna inanmamı sağlıyor. Sanırım bir amaç için çalıştırılsaydı, bilirsiniz. Bu durumda, kullanıcıların, güvenliğin vb. Tüm sorularını dikkate almayın.

Alma / Verme sihirbazı tüm tabloları Saklı yordamları ve görünümleri komut dosyası oluşturma Bakım planlarını ve aracı işlerini yalnızca daha sonra bakmak isteyebileceğiniz işlemleri belgelemek için denetleyin.


0

SQL Server 2000'den SQL Server 2012'ye doğrudan geçiş yapamazsınız ve bunu yapmaya çalışırsanız, uyumluluk sorunlarıyla ilgili aşağıdaki 3169 hata numarasını alırsınız.

SQL Server 2012'ye geçiş, aşağıdaki sürümlerden (minimum sürümler) SQL Server 2005 SP4 veya SQL Server 2008 SP2 veya SQL Server 2008 R2 SP1'den birinden yapılabilir.

Bu yüzden SQL Server 2000'den bu sürümlerden birine geçmek için ilk adım, aşağıdaki bağlantıda SQL Server 2008 için Yükseltme Danışmanı'ndan birini buldum . Geri yükleme işlemine başlamadan önce her şeyin düzgün çalışacağından emin olmak için uygulamayı çalıştırmanız gerekir. Ardından "Yükseltme Danışmanı Analiz Sihirbazı" nı başlatın ve sihirbaz adımlarını izleyin.

Raporu aldıktan sonra, hedef SQL Server 2005 SP4 veya SQL Server 2008 SP2 veya SQL Server 2008 R2 SP1'deki veritabanını geri yüklemeniz ve üzerinde uyumluluk düzeyini çalıştırmanız gerekir (veritabanı seçeneğinde bulabilirsiniz). SQL Server oturum açma bilgileri için lütfen aşağıdaki bağlantıdaki talimatları izleyin .

Bu tamamlandığında, şimdi ilk geçişi yaptığınız sunucudan aynı adımları tekrarlayarak SQL Server 2012'ye geçmeniz gerekir.


0

Öncelikle 2000'den 2012'ye doğrudan göç etmemeniz gerektiğine katılıyorum. Bence bu süreç iyi bir şekilde ele alındı. Herkesin veritabanlarını kullanıp kullanmadığını ve ne için kullandıklarını kesin olarak öğrenmenizi tavsiye etmek istedim. Kullanılmıyor olabilirler. Bu olur ve eğer durum buysa, endişelenmeyin. Mevcut bir 2012 veritabanına 2 veya 3 tablo ve veri eklemek (2000 için bcp'yi basit ve güvenilir bir şekilde tek bir tablo için dışarı çıkarmak istiyorsanız) kullanıcıların ihtiyaçlarına cevap verebilir. Bunu yaparsanız, yeni tabloları 2012 veritabanında oluşturun ve csv için ihtiyacınız olan verileri bcp yapın. Bir veya iki tablodan daha fazlasını taşımanız gerekiyorsa, en basit ve en güvenli ve en iyi yol, iki aşamalı geçiş yapmaktır. Don'


2000'deki şema komut dosyasının% 100 doğru olmadığını bilmelisiniz. Her zaman senaryoyu düzenlemek zorunda olduğumu hatırlıyorum.
dkh63493
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.