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:
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.
- 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. - 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:
- 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ı |
- 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.
- 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. - 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. - 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. - 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
- 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:
- SQL Server Enterprise Manager'ı açın ve sonra Yönetim klasörünü açın.
- SQL Server Agent ' ı genişletin ve sonra da Uyarıları, Projeler veya işletmenleri sağ tıklatın.
- 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
- Bir dosya için <a1>kaynak</a1> sunucudaki DTS paketini kaydetmek ve hedef sunucuda DTS paketi dosyasını açın.
- Hedef sunucudaki SQL paketi kaydedin, sunucu veya depoyu.
Not Her bir paket ayrı dosyaları tek tek taşımak zorunda.
Yöntem 2
- Her bir DTS paketini DTS Tasarımcısı içinde açın.
- Paket menüsünde farklı Kaydet ' i tıklatın.
- 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.
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."
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ı