Verileri SQL Server 2005'ten 2016'ya Taşıma


9

SQL Server'ı yönetmekte yeniyim ancak SQL dili konusunda rahatım ve SSIS paketleri yapıyorum.

SQL Server 2005'ten 2016'ya veri taşımak istiyorum.

Benim sorum sistem veritabanları ve dizinler, saklı yordamlar, görünüm, güvenlik ve izinler gibi diğer nesneler hakkında endişelenmem gerekiyor mu. giriş yapabilir veya sadece verileri taşıyabilir miyim.

Bu durumda önerilen prosedür hangisidir.


Bir üretim örneğini yükseltmeye mi çalışıyorsunuz ? yani aynı girişlere, dizinlere, depolanmış proclara vb. ihtiyacınız var mı? Olduğu gibi, sorunuz gerçekten oldukça geniştir. Lütfen tura katılın ve iyi soruların nasıl sorulacağı ile ilgili yardım merkezini okuyun . Teşekkürler!
Max Vernon

Yanıtlar:


7

Max, bu alternatif görünümü yazmayı bitirdikten sonra onaylayacağım iyi bir cevap verdi.

Yükseltme geçişi yaparken sistem veritabanlarını geri yükleme hayranı değilim ve başka bir soruya bu uzun cevapta tartıştığım gibi yerinde yükseltmeler üzerinde geçiş yapmayı tercih ediyorum .

Temelde bir geçiş yaptığımda "yeni" başlamak istiyorum. Geri yükleme yoluyla sistem veritabanı geçişleri ve yükseltmeleri ile oynamanın bazen geri yüklemelerde hayal kırıklığına neden olduğunu ve potansiyel günahları taşıyabildiğini görüyorum.

Ayrıca dizinler, saklı yordamlar, görünümler hakkında sorular sordunuz. Veritabanı düzeyindeki bu öğelerin tümü bir kullanıcı veritabanının içinde yaşamalıdır. Bu nedenle X veritabanını yeni sunucuya geri yüklediğinizde, tüm veritabanı nesneleri de (Tablolar, Kullanıcılar, Görünümler, Procs, İşlevler, vb.) Olacaktır.

Sistem veritabanlarında var olan işler, girişler, uyarılar, bağlı sunucular, şifreleme anahtarları, vb. Örnek düzey öğeleridir.

Bunları gözden geçirmek ve çeşitli komut dosyaları kullanarak neye ihtiyacım olduğunu taşımak istiyorum - son zamanlarda DBATools.Io powershell komut dosyaları. Özellikle SQL oturum açma bilgilerini kopyalamak için kendi komut dosyalarını kullanmayı seviyorum , çünkü SQL kimlik doğrulamalı kullanıcıları parolalarını ve güvenlik tanımlayıcılarını aynı tutuyor, böylece bu girişlerden veritabanı kullanıcıları çalışacak. Ayrıca, tipik olarak kopyalayacağım öğelerin üzerine kopyalamak için alt komutlarını çalıştıran bir SQL Server taşıma komutuna da sahiptir.

Max'in bu cevapta yanlış olduğuna inanmıyorum, bu yüzden yukarı oy. Sürümler arasında sistem veritabanlarını geri yüklemeye çalışmak yerine, daha fazla başarı ve daha fazla şansım oldu ve yeniye geçişi daha rahat hissediyorum. Dürüstçe son sürüm yükseltme geçişi yaptığımı ve sistem veritabanlarını geri yüklemek yerine bu şekilde yapmadığımı hatırlayamadığımı söyleyebilirim.


Cevabınız için teşekkürler. 2005'ten 2016'ya yükseltmek istemiyorum. Bir veritabanını artık sql server 2005'te kullanılmayan bir örnekten 2016'daki mevcut bir örneğe geçirmek istiyorum. Bu taşıma henüz onaylanmadı, ancak ne zaman hazırlanmak istiyorum öyle. Temel olarak, bu projeyi aldım çünkü sorgulama ve SSIS paketleri oluşturma konusunda SQL deneyimine sahip tek kişi benim. Ayrıca uyumluluk sorunlarıyla da ilgilendim. Bir kez daha teşekkürler.
Robert

Elbette - ancak 2005'ten 2016'ya geçerken - bir yükseltme yapıyorsunuz. Bir yükseltme ve taşıma işlemi gerçekleştiriyorsunuz. Çünkü bir SQL sürümünden diğerine bir veritabanı alıyorsunuz - bu kesinlikle yükseltme anlamına geliyor. Veritabanınızda yükseltme danışmanını çalıştırmalısınız.
Mike Walsh

SQL Server 2005, Windows Server 2003 R2 x86 tarafından barındırılıyorsa ve SQL Server 2016 daha yeni bir işletim sisteminde ise.
Robert

@MikeWalsh Yanıtınızda açıkladığınız şeylerin neredeyse hepsine katılıyorum. Ben de SQL Yükseltme / Geçiş yaparken neredeyse hepsini takip ediyorum
nam

4

Bu veritabanlarında depolanan meta verilere erişmeniz gerekiyorsa, sistem veritabanlarını (master, msdb ve belki model) taşımayı düşünebilirsiniz.

Ana, oturum açma, güvenlik sertifikaları vb. Öğeleri depolar.

msdb, yedeklemelerle ilgili ayrıntıları içerir ve SQL Server Agent iş yapılandırmalarını diğer ayrıntıların yanı sıra saklar.

Model, siz veya ekibiniz tarafından yeni oluşturulan boş veritabanlarının her veritabanında kullandığınız bir dizi önceden tanımlanmış nesne içermesine izin verecek şekilde özelleştirilmiş olabilir.

Geçiş sistemi veritabanları oldukça kolay bir şekilde gerçekleştirilebilir; ayrıntılı talimatları MSDN'den Sistem Veritabanlarını Yedekleme ve Geri Yükleme (SQL Server) adresinden edinebilirsiniz .

Gereksinimlerinize bağlı olarak, tüm veriler, dizinler ve diğer nesneler dahil tüm veritabanını getirmek için BACKUP DATABASE2005 örneğinde ve sonra RESTORE DATABASE2016 örneğinde kullanıcı veritabanlarına karşı bir işlem gerçekleştirebilirsiniz .

Bu, en azından başlangıçta, 2005 örneğinde veritabanı tarafından tüketilen alanın aynısını gerektirir. Ancak, veritabanını geri yükledikten sonra, gerekli kaplamayı önemli ölçüde azaltmak için veri sıkıştırmasından yararlanabilirsiniz.

Yedekleme gerçekleştirmeyle ilgili ayrıntılar için bkz. SQL Server Yedeklemeleriyle Çalışma Hakkında ve geri yüklemeler hakkında ayrıntılar için Geri Yükleme Senaryoları Hakkında .


2

2012 mi yoksa 2016 mı? Bu fark yaratıyor, IIRC 2012, 2016 değil, test edilmiş bir göç yolu. Bu nedenle, bilinen sorunlar belgelenir ve / veya 2012 için Yükseltme Danışmanı tarafından yakalanır. Test edilmemiş bir yol yine de sorunsuz çalışabilir, sadece bilinmemektedir. Bununla birlikte, 2016'ya gitmenizi şiddetle tavsiye ederim. Çabaların neredeyse aynı olacağından şüpheleniyorum.

Bkz SQL Server 2005 yükseltme musunuz? 2005 yükseltme seçenekleri ve çok ayrıntılı bir yükseltme işlemine bağlantılar için belgeler. Yükseltme işlemi 2014 için yazılmıştır, ancak 2016 için hala geçerlidir.


1
2016. Bunun için üzgünüm
Robert
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.