Makale numarası: 314546 - Son Gözden Geçirme: 13 Temmuz 2009 Pazartesi - Gözden geçirme: 10.0

Veritabanlarını SQL Server çalıştıran bilgisayarlar arasında taşıma

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Bu adım adım makalede, Microsoft SQL Server taşımak açıklamaktadır kullanıcı veritabanlarının ve SQL Server çalıştıran bilgisayarlar arasında en yaygın bir SQL Server bileşenleri.

Bu makalede açıklanan adımları, ana, model, tempdb veya msdb sistem veritabanlarının taşınmaz varsayalım. Adımları, oturumları ve ana ve msdb veritabanında bulunan en sık kullanılan bileşenleri aktarmak farklı seçenekler sağlar.

Bu makaledeki adımları izlediğinizde transfer belirli maddelerle ilgili daha fazla bilgi için "Daha fazla bilgi" bölümüne bakın.

Not Microsoft SQL Server 2008 için adresindeki SQL Server 2008 kitapları satırı Web sitesinde aşağıdaki "Managing meta veriler, alma bir veritabanı kullanılabilir üzerinde başka bir sunucu örneği" konusuna başvurun:
http://msdn.microsoft.com/en-us/library/ms187580.aspx (http://msdn.microsoft.com/en-us/library/ms187580.aspx)
Not SQL Server 2000 için Microsoft SQL Server 2000 (64-bit) veri geçiş desteklenmiyor. 32-Bit bir veritabanı, sp_attach_db Sistem saklı yordamını veya sp_attach_single_file_db Sistem saklı yordamını kullanarak veya Yedekleme kullanarak 64-bit bir veritabanına eklemek ve 32-bit Enterprise Manager'da geri yükleyin. Veritabanları ve 32-bit SQL Server'ın 64-bit sürümleri arasında taşıyabilirsiniz. Verileri SQL Server 7. 0'dan aynı yöntemler kullanılarak da yükseltebilirsiniz. Ancak, veriler için SQL Server 7.0, SQL Server 2000 (64-bit) downgrading desteklenmiyor. Her yönteminin BIR açıklaması aşağıdadır.

1. Adım: nasıl kullanıcı veritabanlarını taşıma

SQL Server 2005 kullanıyorsanız, SQL Server 7.0 veya SQL Server 2000 verilerini geçirmek için aynı yöntemi kullanın. Ancak, SQL Server 7.0 veya SQL Server 2000'de yönetim aracı Microsoft SQL Server 2005 Yönetim aracında farklıdır. SQL Server Enterprise Manager yerine SQL Server Management Studio'yu kullanmanız gerekir. Ayrıca, SQL Server alma ve Verme Sihirbazı'nı (DTSWizard.exe) yerine verileri kullanmanız gereken Transformation Services alma ve veri Verme Sihirbazı'nı.

Kullanıcı veritabanlarını taşıma hakkında bilgi için aşağıdaki üç yöntemden birini kullanın.

Yöntem 1: Yedekleme ve kullanıcı veritabanı geri yükleme

Kaynak sunucuda kullanıcı veritabanlarını yedeklemek ve daha sonra user veritabanlarındaki hedef sunucuya geri yükleyin.
  • Veritabanı, yedekleme işleminde olduğunda kullanılabilir. Yedekleme, yedekleme işlemi tamamlandıktan sonra kullanıcı veritabanında INSERT, UPDATE veya DELETE deyimleri gerçekleştirmek, bu değişiklikleri içermez. Tüm değişiklikleri aktarmanız gerekir, bir işlem günlüğü yedeklemesini hem tam veritabanı yedeği gerçekleştirirseniz, en az kapalı kalma değişikliklerle transfer edebilirsiniz.
    1. Hedef sunucudaki veritabanının tam yedeklemesini geri ve WITH NORECOVERY'YI seçeneğini belirtin.

      Not Ek veritabanı değişiklikleri önlemek için <a0></a0>, kullanıcıların kaynak sunucu veritabanı etkinliği çıkmak için yönlendirir.
    2. Bir işlem günlüğü yedeklemesini gerçekleştirmek ve WITH RECOVERY seçeneğini kullanarak hedef sunucuya işlem günlüğü yedeklemesini geri yükleyin. Kapalı kalma süresi işlem günlüğünün yedekleme ve geri yükleme sınırlıdır. Daha fazla bilgi için "RESTORE" sub-topic'de SQL Server Books Online'da "Transact-SQL başvuru" konusuna bakın.
  • Hedef sunucudaki veritabanını kaynak sunucu veritabanı ile aynı boyutta olacaktır. Yedekleme gerçekleştirmek veya geri yükleme işlemi tamamlandıktan sonra hedef veritabanı azaltmak için önce veritabanının boyutunu küçültmek için ya da kaynak veritabanı azaltmalısınız. Daha fazla bilgi için SQL Server Books Online'da "Creating ve Bakımı Databases" Başlık "Bir veritaban? daraltılması" sub-topic bakın.
  • Veritabanı kaynak veritabanı farklı bir yere geri yüklemek, WITH MOVE seçeneğini belirtmeniz gerekir. Örneğin, kaynak sunucuda veritabanı D:\Mssql\Data klasöründedir. Hedef sunucu bir D sürücüsüne sahip ve veritabanı C:\Mssql\Data klasöre geri yüklemek istediğiniz. Bir veritabanı başka bir konuma geri yükleme hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
    221465  (http://support.microsoft.com/kb/221465/ ) RESTORE deyimiyle WITH MOVE seçeneğini kullanma
    304692  (http://support.microsoft.com/kb/304692/ ) SQL Server 7.0 veritabanları YEDEKLE ve geri YÜKLE'OLAN yeni bir konuma taşıma
  • Hedef sunucuda hazır bir veritabanının üzerine yazmak isterseniz, WITH DEĞIŞTIR seçeneğini belirtmeniz gerekir. Daha fazla bilgi için "RESTORE" sub-topic'de SQL Server Books Online'da "Transact-SQL başvuru" konusuna bakın.
  • SQL Server, geri sürümüne bağlı olarak, karakter kümesi, sıralama ve Unicode Harmanlama kaynak ve hedef sunucularda aynı olması gerekebilir. Daha fazla bilgi için "Not harmanlama ilgili" Bu bölümün sonraki kısımlarında bakın.

Yöntem 2: "sp_detach_db" ve "sp_attach_db" kullanın... saklı yordamları

Saklı yordamları sp_detach_db ve sp_attach_db kullanmak için şu adımları izleyin:
  1. Kaynak sunucu veritabanı sp_detach_db saklı yordamını kullanarak ayırın. Hedef sunucu veritabanıyla ilişkili .mdf .ndf ve .ldf dosyalarını kopyalamanız gerekir. Bu tablo, dosya türlerini bir açıklaması için bkz:
    Bu tabloyu kapaBu tabloyu aç
    Dosya adı uzantısıAçıklama
    .mdf Birincil veri dosyası
    .ndf Ikincil bir veri dosyası
    .ldf Işlem günlük dosyası
  2. Sp_attach_db saklı yordamını kullanarak hedef sunucudaki veritabanını iliştirmek ve hedef sunucu önceki adımda kopyaladığınız dosyaların üzerine gelin.Bu yöntemleri kullanma hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
    224071  (http://support.microsoft.com/kb/224071/ ) SQL Server'daki Detach ve Attach işlevlerini kullanarak SQL Server veritabanlarını yeni bir konuma taşıma
  • Veritabanı sonra detach erişilemiyor ve dosyaları kopyaladığınızda, veritabanını kullanamazsınız. The detach sürede nokta bir veritabanında bulunan tüm verileri taşındı.
  • Karakter kümesi, sıralama ve Unicode Harmanlama Ekle ' yi veya Ayrıl yöntemini kullandığınızda her iki sunucuda aynı olması gerekebilir. Daha fazla bilgi için harmanlama'hakkında bilgi için aşağıdaki nota bakın.
Not alfabe düzeni hakkında Veritabanı yedekleme ve geri yükleme ve Ekle ' yi ve Ayrıl yöntemlerini kullanarak, SQL Server 7.0 sunucular arasında taşırsanız, karakter kümesi, sıralama ve Unicode Harmanlama her iki sunucuda aynı olmalıdır. Veritabanlarını SQL Server 7. 0'dan SQL Server 2000 veya SQL Server 2000 sunucuları arasında taşırsanız, veritabanı kaynak veritabanı harmanlama korur. Bu hedef veritabanı SQL Server 2000 çalıştıran hedef sunucu kaynak veritabanına daha farklı bir harmanlama varsa, hedef sunucunun anamodeli, tempdb ve msdb veritabanlarının'den farklı bir harmanlama olduğu anlamına gelir. Daha fazla bilgi için SQL Server 2000 Books Online'da "Harmanlama karma ortamlar" konusuna bakın.

Yöntem 3: nesneler ve SQL Server Veritabanları arasında veri kopyalamak alma ve veri Verme Sihirbazı'nı kullanın

Tüm bir veritabanını kopyalar veya seçerek nesneleri ve veri kaynak veritabanından hedef veritabanına veri dönüştürme Hizmetleri alma ve verme veri Sihirbazı'nı kullanarak kopyalayın.
  • Kaynak veritabanı, aktarım sırasında kullanılabilir. Kaynak veritabanı, aktarım sırasında kullanılıyorsa, aktarım sürüyor, bazı engelleme görebilirsiniz.
  • Alma ve verme veri Sihirbazı, karakter kümesi, sıralama ve alfabe düzeni kullandığınızda kaynak sunucu ve hedef sunucu arasında aynı olması gerekmez.
  • Kaynak veritabanındaki kullanılmayan alanı taşımak için hedef veritabanı kaynak veritabanı büyük olarak sahip olmayabilirsiniz. Bazı nesneler taşırsanız, aynı şekilde, hedef veritabanı kaynak veritabanı büyük olacak şekilde olmayabilir.
  • SQL Server 7.0 Data Transformation Services değil metin aktarma ve 64 KB'DEN daha uzun olan veriler düzgün görüntü. Bu sorun, Data Transformation Services SQL Server 2000 sürümü için geçerli değildir. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
    257425  (http://support.microsoft.com/kb/257425/ ) Düzeltme: DTS nesne aktarım 64 KB'DEN büyük BLOB veri aktarılmaz

2. Adım: nasıl oturum ve parolaları aktarma

Açılan oturumların kaynak sunucudan hedef sunucuya transfer değil, geçerli bir SQL Server kullanıcılarınıza hedef sunucuya oturum açılamıyor olabilir. Aşağıdaki Microsoft Knowledge Base makalesinde yönergeleri kullanarak oturum ve parolaları aktarabilirsiniz:
246133  (http://support.microsoft.com/kb/246133/ ) SQL Server örnekleri arasında oturum ve parolalar nasıl aktarılır
Hedef sunucuda oturumlar için varsayılan veritabanlarının varsayılan veritabanını <a0>Kaynak</a0> sunucusundaki oturumlar için farklı olabilir. Varsayılan veritabanı için bir oturum açma sp_defaultdb saklı yordamını değiştirebilirsiniz. Daha fazla bilgi için SQL Server Books Online'da "Transact-SQL başvuru" konu "sp_defaultdb" sub-topic bakın.

3. Adım: orphaned users çözümlemeye nasıl

Hedef sunucuya oturum ve parolaları aktarma sonra kullanıcılar veritabanına erişim açılamıyor olabilir. Oturum açma kullanıcıları için güvenlik tanımlayıcısı (SID) ilişkilidir ve SID tutarsız bir veritabanını taşıdıktan sonra SQL Server veritabanına kullanıcı erişimini reddedin. Bu sorun, artık bir kullanıcı bilinir. SQL Server 2000 DTS aktarım oturum açma özelliğini kullanarak oturum ve parolalar aktarırsanız, büyük olasılıkla artık kullanıcıların. Ayrıca, tümleşik oturum açma kaynağı'den farklı bir etki alanındaki hedef sunucudaki sunucu neden artık kullanıcıların erişim.
  1. Artık kullanıcılar için bakın. Hedef sunucuda Query Analyzer'ı açın ve sonra da kullanıcı veritabanında taşıdığınız aşağıdaki kodu çalıştırın:
    exec sp_change_users_login 'Report'
    yordamı oturum açmak için bağlantı artık tüm kullanıcıları listeler. Hiçbir kullanıcı listeleniyorsa, adım 2 ve 3. adıma atlayın ve adım 4'e gidin.
  2. Artık Kullanıcıları Çözümleme. Bir kullanıcı artık, veritabanı kullanıcılarını sunucuya başarıyla oturum açabilir, ancak veritabanı erişim iznine sahip olmaz. Veritabanı oturum açma erişimi vermesi çalışırsanız, kullanıcı zaten varolduğundan aşağıdaki hata iletisini alırsınız:
    Microsoft SQL-DMO (ODBC SQLState: 42000) hata 15023: kullanıcı veya rolün, '% s' geçerli veritabanında zaten bulunmaktadır.
    Artık kullanıcıları çözümleme hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
    240872  (http://support.microsoft.com/kb/240872/ ) Veritabanı SQL Server çalıştıran sunucular arasında taşındığında izin sorunları nasıl giderilir

    Bu makalede, kullanıcılara veritabanı oturumları eşleme ile ilgili yönergeler içerir ve kullanıcılar standart bir SQL Server oturumlarını sahipsiz kaldı ve oturumların tümleşik çözümler.

    274188  (http://support.microsoft.com/kb/274188/ ) SORUN: Çevrimiçi Kitaplar'daki "Artık kullanıcı sorunlarını giderme" konusu tamamlanmamış

    Bu makalede, sp_change_users_login saklı yordamı orphaned users tek tek düzeltmek için nasıl kullanılacağı açıklanır. Sp_change_users_login saklı yordamını yalnızca standart SQL Server oturumlarını artık kullanıcılar giderir.
  3. Veritabanı sahibi (dbo) olarak listeleniyorsa, artık kullanıcı veritabanında şu kodu çalıştırın:
    exec sp_changedbowner 'sa'
    saklı yordamı veritabanı sahibi dbo için değiştirir ve bu sorunu giderir. Veritabanı sahibi başka bir kullanıcıya değiştirmek için <a0></a0>, istediğiniz kullanıcıyla sp_changedbowner yeniden çalıştırın. Daha fazla bilgi için SQL Server Books Online'da "Transact-SQL başvuru" konusundaki "sp_changedbowner" sub-topic bakın.
  4. Hedef sunucu SQL Server 2000 Service Pack 1 çalıştırıyorsa, bağlama veya geri yükleme veya her ikisini de yaptıktan veritabanı sahibi kullanıcı listesinde Enterprise Manager'da kullanıcılar klasöründe olmayabilir.Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
    305711  (http://support.microsoft.com/kb/305711/ ) Hata: DBO kullanıcı Enterprise Manager'da görüntülemiyor
  5. Kaynak sunucudaki dbo ile eşleştirilmiş oturum açma, hedef sunucuda yoksa, Kuruluş Yöneticisi aracılığıyla Sistem Yöneticisi (sa) parolasını değiştirmeye çalışırsanız, aşağıdaki hata iletisini alabilirsiniz:
    21776 Hata: [SQL-DMO] kullanıcıları koleksiyonunda 'dbo' adı bulunamadı. Bir tam adı, ad çeşitli bölümlerini ayırmak ve yeniden deneyin []'ı kullanın.
    Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
    218172  (http://support.microsoft.com/kb/218172/ ) Enterprise Manager'da SA parolasını değiştiremiyor
Uyarı Yeniden geri yükleyin veya veritabanını iliştirmek için veritabanı kullanıcılarını re-orphaned olabilir ve 3. adımı yineleyin gerekir.

Adım 4: nasıl işler, uyarılar ve işleçler taşıma

4. Adım isteğe bağlıdır. Tüm işleri, uyarıları ve kaynak sunucusunda işletmen için komut dosyaları oluşturmak ve sonra da komut dosyasını hedef sunucuda çalıştırmak.
  • Işler, <a2>Uyarı</a2> ve <a4>işleçler taşımak için aşağıdaki adımları izleyin:
    1. SQL Server Enterprise Manager'ı açın ve sonra Yönetim klasörünü açın.
    2. SQL Server Agent ' ı genişletin ve sonra da Uyarıları, Projeler veya işletmenleri sağ tıklatın.
    3. Tüm görevler ' i tıklatın ve sonra Generate SQL Script ' ı tıklatın. SQL Server 7.0 için Komut dosyası tüm işler, Uyarılar veya işletmenleri ' ı tıklatın.
    Tüm işleçler, sağ maddenin temel ya da Tüm uyarıları için Tüm işler komut dosyaları oluşturma seçeneğiniz vardır.
  • SQL Server 2000 veya SQL Server 2000 ile SQL Server 7.0 çalıştıran bilgisayar sunucular arasındaki SQL Server 7. 0'dan işleri, <a2>Uyarı</a2> ve <a4>işleçler taşıyabilirsiniz.
  • Için bildirim tarafından SQLMail kaynak sunucuda kurulu işleçler, SQLMail kadar hedef sunucuda aynı işlevselliği sağlamak vardır. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
    263556  (http://support.microsoft.com/kb/263556/ ) SQL Mail'ı yapılandırma hakkında

Adım 5: Nasıl DTS paketlerini taşır.

5. Adım isteğe bağlıdır. DTS paketlerini, SQL Server'ı veya depoyu <a1>kaynak</a1> sunucuda saklanıyorsa, isterseniz, bunları taşıyabilirsiniz. DTS paketlerini sunucular arasında taşımak için <a0></a0>, aşağıdaki yöntemlerden birini kullanın.

Yöntem 1

  1. Bir dosya için <a1>kaynak</a1> sunucudaki DTS paketini kaydetmek ve hedef sunucuda DTS paketi dosyasını açın.
  2. Hedef sunucudaki SQL paketi kaydedin, sunucu veya depoyu.
    Not Her bir paket ayrı dosyaları tek tek taşımak zorunda.

Yöntem 2

  1. Her bir DTS paketini DTS Tasarımcısı içinde açın.
  2. Paket menüsünde farklı Kaydet ' i tıklatın.
  3. Hedef SQL Server'ı belirtin.
Not Paket, yeni sunucuda düzgün çalışmayabilir. Paket değiştirmek ve bağlantıları, dosya veri kaynakları, profilleri ve diğer bilgilere yeni hedef sunucuya başvurmak için sunucuda eski kaynak paketi herhangi bir ba?vuru değiştirmek zorunda kalabilirsiniz. Bu değişiklikler, her pakete tasarımına bağlı, paketin paketi temelinde yapmanız gerekir.

6. Adım: sp_configure ayarlarını önceki sistem eşleşecek şekilde değiştirin...

Böylece bunlar yeni sistemdeki ayarlarla eşleşecek şekilde ayarlarını değiştirmeniz gerekebilir. Örneğin, yeni sistem daha fazla bellek varsa veya farklı bir SQL örnekler ve uygulamalar çalışıyorsa, en az ve en fazla sunucu belleği ayarları veya AWE ayarını değiştirmek isteyebilirsiniz. Işletim sistemi tarafından sunulan çekirdek CPU sayısı değişirse MAXDOP ayarı değiştirmeniz gerekebilir.

Daha fazla bilgi

Bağlantılı sunucular, yansıtma, çoğaltma, sevkiyat, tam metin Kataloğu yedekleme aygıtları, bakım planları, veritabanı diyagramlarını, veritabanı anlık görüntüleri, kimlik bilgilerini ve proxy hesapları, bitiş noktaları, sunucu kapsamına DDL Tetikleyicileri (örneğin, bir oturum açma tetikleyicisi) veya ana ya da msdb ilgili diğer öğeler adlı oturum gibi diğer öğeleri taşımak isteyebilirsiniz. Bu yapılandırmalar için kaynak sunucu inceleyin ve isterseniz bunları el ile hedef sunucuda ayarlamanız adımları da gerçekleştirin.

Tam metin bileşenleri taşıma hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
240867  (http://support.microsoft.com/kb/240867/ ) Taşıma, kopyalama ve tam metin kataloğunu klasörleri ve dosyaları yedeklemek için
Bu makaledeki adımları izlerseniz, veritabanı diyagramlarını ve yedekleme ve geri yükleme geçmişini taşınmaz. Bu bilgiler taşımalısınız msdb sistem veritabanı taşıyın. Msdb veritabanını taşıma hakkında daha fazla bilgi için bkz:, içinde başvurulan Microsoft Bilgi Bankası makalelerinde "Adım 1: kullanıcı veritabanlarını taşıma nasıl" bölümü. Msdb veritabanını taşırsanız, izleyin gerekmez "Adım 4: nasıl işler, uyarılar ve işleçler taşımak"veya"adım 5: DTS taşımak için paketler nasıl."

Referanslar

Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
320125  (http://support.microsoft.com/kb/320125/ ) Bir veritabanı diyagramında taşınması

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 7.0 Standard Edition
Anahtar Kelimeler: 
kbmt kbhowtomaster KB314546 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:314546  (http://support.microsoft.com/kb/314546/en-us/ )