Öğretici: DMS kullanarak SQL Server Azure SQL Veritabanına geçirme
veritabanlarını bir SQL Server örneğinden Azure SQL Veritabanına geçirmek için Azure Veritabanı Geçiş Hizmeti kullanabilirsiniz. Bu öğreticide, Azure Veritabanı Geçiş Hizmeti kullanarak SQL Server 2016 (veya üzeri) şirket içi örneğine geri yüklenen AdventureWorks2016 veritabanını Azure SQL Veritabanındaki tek bir veritabanına veya havuza alınmış veritabanına geçirirsiniz.
Şunları öğrenirsiniz:
- Data Migration Yardımcısı kullanarak şirket içi veritabanınızı engelleyici sorunlar için değerlendirin ve değerlendirin.
- Veritabanı örnek şemasını geçirmek için Data Migration Yardımcısı kullanın.
- Azure DataMigration kaynak sağlayıcısını kaydedin.
- Azure Veritabanı Geçiş Hizmeti örneği oluşturun.
- Azure Veritabanı Geçiş Hizmeti kullanarak geçiş projesi oluşturun.
- Geçişi çalıştırma.
- Geçişi izleme.
Önkoşullar
Bu öğreticiyi tamamlamak için aşağıdakileri yapmanız gerekir:
2016 veya sonraki SQL Server indirip yükleyin.
Sunucu Ağ Protokolünü Etkinleştirme veya Devre Dışı Bırakma makalesindeki yönergeleri izleyerek SQL Server Express yüklemesi sırasında varsayılan olarak devre dışı bırakılan TCP/IP protokolünü etkinleştirin.
Azure portal kullanarak Azure SQL Veritabanında veritabanı oluşturma makalesindeki ayrıntıları izleyerek Azure SQL Veritabanı'nda bir veritabanı oluşturun. Bu öğreticide Azure SQL Veritabanı’nın adının AdventureWorksAzure olduğu kabul edilmiştir, ancak istediğiniz adı kullanabilirsiniz.
Not
SQL Server Integration Services (SSIS) kullanıyorsanız ve SSIS projeleriniz/paketleriniz (SSISDB) için katalog veritabanını SQL Server'den Azure SQL Veritabanına geçirmek istiyorsanız, Azure Data Factory'de (ADF) SSIS sağladığınızda hedef SSISDB sizin adınıza otomatik olarak oluşturulur ve yönetilir. SSIS paketlerini geçirme hakkında daha fazla bilgi için SQL Server Integration Services paketlerini Azure'a geçirme makalesine bakın.
Data Migration Yardımcısı en son sürümünü indirin ve yükleyin.
ExpressRoute veya VPN kullanarak şirket içi kaynak sunucularınıza siteden siteye bağlantı sağlayan Azure Resource Manager dağıtım modelini kullanarak Azure Veritabanı Geçiş Hizmeti için bir Microsoft Azure Sanal Ağ oluşturun. Sanal ağ oluşturma hakkında daha fazla bilgi için Sanal Ağ Belgelerine ve özellikle adım adım ayrıntıları içeren hızlı başlangıç makalelerine bakın.
Not
Sanal ağ kurulumu sırasında ExpressRoute'u Microsoft ile ağ eşlemesi ile kullanırsanız hizmetin sağlandığı alt ağa aşağıdaki hizmet uç noktalarını ekleyin:
- Hedef veritabanı uç noktası (örneğin, SQL uç noktası, Azure Cosmos DB uç noktası vb.)
- Depolama uç noktası
- Service Bus uç noktası
Azure Veritabanı Geçiş Hizmeti İnternet bağlantısı olmadığından bu yapılandırma gereklidir.
Şirket içi ağ ile Azure arasında siteden siteye bağlantınız yoksa veya siteden siteye bağlantı bant genişliği sınırlıysa karma modda (Önizleme) Azure Veritabanı Geçiş Hizmeti kullanmayı göz önünde bulundurun. Karma mod, bulutta çalışan bir Azure Veritabanı Geçiş Hizmeti örneğiyle birlikte şirket içi geçiş çalışanlarından yararlanıyor. Karma modda Azure Veritabanı Geçiş Hizmeti örneği oluşturmak için, Azure portal kullanarak karma modda Azure Veritabanı Geçiş Hizmeti örneği oluşturma makalesine bakın.
Sanal ağ Ağ Güvenlik Grubu giden güvenlik kurallarınızın ServiceBus, Depolama ve AzureMonitor için ServiceTag'in 443 numaralı giden bağlantı noktasını engellemediğinden emin olun. Azure sanal ağ NSG trafiği filtreleme hakkında daha fazla ayrıntı için Ağ trafiğini ağ güvenlik gruplarıyla filtreleme makalesine bakın.
Windows Güvenlik Duvarınızı veritabanı altyapısı erişimi için yapılandırın.
Azure Veritabanı Geçiş Hizmeti varsayılan olarak TCP bağlantı noktası 1433 olan kaynak SQL Server erişmesine izin vermek için Windows güvenlik duvarınızı açın. Varsayılan örneğiniz başka bir bağlantı noktasında dinliyorsa bunu güvenlik duvarına ekleyin.
Dinamik bağlantı noktalarını kullanarak birden çok adlandırılmış SQL Server örneği çalıştırıyorsanız, SQL Browser Hizmeti'ni etkinleştirmek ve Azure Veritabanı Geçiş Hizmeti kaynak sunucunuzdaki adlandırılmış bir örneğe bağlanabilmesi için güvenlik duvarlarınız üzerinden UDP bağlantı noktası 1434'e erişime izin vermek isteyebilirsiniz.
Kaynak veritabanlarınızın önünde bir güvenlik duvarı gereci kullanırken, Azure Veritabanı Geçiş Hizmeti geçiş için kaynak veritabanlarına erişmesine izin vermek için güvenlik duvarı kuralları eklemeniz gerekebilir.
hedef veritabanlarına Azure Veritabanı Geçiş Hizmeti erişim izni vermek için Azure SQL Veritabanı için sunucu düzeyinde bir IP güvenlik duvarı kuralı oluşturun. Azure Veritabanı Geçiş Hizmeti için kullanılan sanal ağın alt ağ aralığını sağlayın.
SQL Server örneğine bağlanmak için kullanılan kimlik bilgilerinin CONTROL SERVER izinlerine sahip olduğundan emin olun.
Hedef Azure SQL Veritabanı örneğine bağlanmak için kullanılan kimlik bilgilerinin hedef veritabanlarında CONTROL DATABASE iznine sahip olduğundan emin olun.
Önemli
bir Azure Veritabanı Geçiş Hizmeti örneği oluşturmak için normalde aynı kaynak grubu içinde olmayan sanal ağ ayarlarına erişim gerekir. Sonuç olarak, DMS örneğini oluşturan kullanıcı abonelik düzeyinde izin gerektirir. Gerektiğinde atayabileceğiniz gerekli rolleri oluşturmak için aşağıdaki betiği çalıştırın:
$readerActions = ` "Microsoft.Network/networkInterfaces/ipConfigurations/read", ` "Microsoft.DataMigration/*/read", ` "Microsoft.Resources/subscriptions/resourceGroups/read" $writerActions = ` "Microsoft.DataMigration/services/*/write", ` "Microsoft.DataMigration/services/*/delete", ` "Microsoft.DataMigration/services/*/action", ` "Microsoft.Network/virtualNetworks/subnets/join/action", ` "Microsoft.Network/virtualNetworks/write", ` "Microsoft.Network/virtualNetworks/read", ` "Microsoft.Resources/deployments/validate/action", ` "Microsoft.Resources/deployments/*/read", ` "Microsoft.Resources/deployments/*/write" $writerActions += $readerActions # TODO: replace with actual subscription IDs $subScopes = ,"/subscriptions/00000000-0000-0000-0000-000000000000/","/subscriptions/11111111-1111-1111-1111-111111111111/" function New-DmsReaderRole() { $aRole = [Microsoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinition]::new() $aRole.Name = "Azure Database Migration Reader" $aRole.Description = "Lets you perform read only actions on DMS service/project/tasks." $aRole.IsCustom = $true $aRole.Actions = $readerActions $aRole.NotActions = @() $aRole.AssignableScopes = $subScopes #Create the role New-AzRoleDefinition -Role $aRole } function New-DmsContributorRole() { $aRole = [Microsoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinition]::new() $aRole.Name = "Azure Database Migration Contributor" $aRole.Description = "Lets you perform CRUD actions on DMS service/project/tasks." $aRole.IsCustom = $true $aRole.Actions = $writerActions $aRole.NotActions = @() $aRole.AssignableScopes = $subScopes #Create the role New-AzRoleDefinition -Role $aRole } function Update-DmsReaderRole() { $aRole = Get-AzRoleDefinition "Azure Database Migration Reader" $aRole.Actions = $readerActions $aRole.NotActions = @() Set-AzRoleDefinition -Role $aRole } function Update-DmsConributorRole() { $aRole = Get-AzRoleDefinition "Azure Database Migration Contributor" $aRole.Actions = $writerActions $aRole.NotActions = @() Set-AzRoleDefinition -Role $aRole } # Invoke above functions New-DmsReaderRole New-DmsContributorRole Update-DmsReaderRole Update-DmsConributorRole
Şirket içi veritabanınızı değerlendirme
bir SQL Server örneğinden Azure SQL Veritabanındaki tek bir veritabanına veya havuza alınan veritabanına veri geçirebilmeniz için önce, geçişi engelleyebilecek engelleyici sorunlar için SQL Server veritabanını değerlendirmeniz gerekir. Data Migration Yardımcısı kullanarak, şirket içi veritabanı değerlendirmesini tamamlamak için SQL Server geçiş değerlendirmesi gerçekleştirme makalesinde açıklanan adımları izleyin. Yapılması gereken adımların özeti aşağıda verilmiştir:
Data Migration Yardımcısı Yeni (+) simgesini ve ardından Değerlendirme proje türünü seçin.
Bir proje adı belirtin. Değerlendirme türü açılan listesinden Veritabanı Altyapısı'nı seçin, Kaynak sunucu türü metin kutusunda SQL Server'ı seçin, Hedef sunucu türü metin kutusunda Veritabanı'nı Azure SQL seçin ve sonra projeyi oluşturmak için Oluştur'u seçin.
Azure SQL Veritabanında tek bir veritabanına veya havuza alınan veritabanına geçiş SQL Server kaynak SQL Server veritabanını değerlendirirken, aşağıdaki değerlendirme raporu türlerinden birini veya her ikisini de seçebilirsiniz:
- Veritabanı uyumluluğunu denetle
- Özellik eşliğini denetle
İki rapor türü de varsayılan olarak seçilidir.
Data Migration Yardımcısı'nın Seçenekler ekranında İleri'yi seçin.
Kaynak seçin ekranının Sunucuya bağlan iletişim kutusunda SQL Server bağlantı bilgilerini girin ve Bağlan'ı seçin.
Kaynak ekle iletişim kutusunda AdventureWorks2016'yı, Ekle'yi ve ardından Değerlendirmeyi Başlat'ı seçin.
Not
SSIS kullanıyorsanız, DMA şu anda kaynak SSISDB'nin değerlendirilmesini desteklemez. Ancak SSIS projeleri/paketleri, Azure SQL Veritabanı tarafından barındırılan hedef SSISDB'ye yeniden dağıtıldıkları için değerlendirilir/doğrulanır. SSIS paketlerini geçirme hakkında daha fazla bilgi için SQL Server Integration Services paketlerini Azure'a geçirme makalesine bakın.
Değerlendirme tamamlandığında aşağıdaki grafiğe benzer sonuçlar görüntülenir:
Azure SQL Veritabanı'ndaki veritabanları için değerlendirmeler, tek bir veritabanına veya havuza alınan veritabanına dağıtmaya yönelik özellik eşlik sorunlarını ve geçiş engelleme sorunlarını tanımlar.
- SQL Server özellik eşliği kategorisi kapsamlı öneriler, Azure'daki alternatif yaklaşımlar ve geçiş projelerini planlama konusunda yardımcı olacak çıkarılabilecek adımlar sunar.
- Uyumluluk sorunları kategorisi, SQL Server veritabanlarının Azure SQL Veritabanına geçirilmesini engelleyebilecek uyumluluk sorunlarını yansıtan kısmen desteklenen veya desteklenmeyen özellikleri tanımlar. Bu sorunları gidermenize yardımcı olan öneriler de sağlanır.
İlgili seçenekleri belirleyerek değerlendirme sonuçlarındaki geçiş engelleyici sorunları ve özellik eşliği sorunlarını gözden geçirin.
Örnek şemayı geçirme
Değerlendirmeden memnun kaldıktan ve seçilen veritabanının Azure SQL Veritabanındaki tek bir veritabanına veya havuza alınan veritabanına geçiş için uygun bir aday olduğundan emin olduktan sonra, DMA kullanarak şemayı Azure SQL Veritabanına geçirin.
Not
Data Migration Yardımcısı'de geçiş projesi oluşturmadan önce, önkoşullarda belirtildiği gibi Azure'da zaten bir veritabanı sağladığınıza emin olun.
Önemli
SSIS kullanıyorsanız, DMA şu anda kaynak SSISDB'nin geçişini desteklemez, ancak SSIS projelerinizi/paketlerinizi Azure SQL Veritabanı tarafından barındırılan hedef SSISDB'ye yeniden dağıtabilirsiniz. SSIS paketlerini geçirme hakkında daha fazla bilgi için SQL Server Integration Services paketlerini Azure'a geçirme makalesine bakın.
AdventureWorks2016 şemasını veritabanı Azure SQL tek bir veritabanına veya havuza alınan veritabanına geçirmek için aşağıdaki adımları gerçekleştirin:
Data Migration Yardımcısı'nda Yeni (+) simgesini ve ardından Proje türü bölümünde Geçiş'i seçin.
Bir proje adı belirtin, Kaynak sunucu türü metin kutusunda SQL Server, Hedef sunucu türü metin kutusunda da Azure SQL Veritabanı'nı seçin.
Geçiş Kapsamı bölümünde Yalnızca şema'yı seçin.
Yukarıdaki adımları gerçekleştirdikten sonra aşağıdaki görüntüde gösterildiği gibi Data Migration Yardımcısı arabiriminin görünmesi gerekir:
Projeyi oluşturmak için Oluştur'u seçin.
Data Migration Yardımcısı, SQL Server kaynak bağlantı ayrıntılarını belirtin, Bağlan'ı ve ardından AdventureWorks2016 veritabanını seçin.
İleri'yi seçin, Hedef sunucuya bağlan'ın altında Azure SQL Veritabanı için hedef bağlantı ayrıntılarını belirtin, Bağlan'ı seçin ve ardından Azure SQL Veritabanı'nda önceden sağladığınız AdventureWorksAzure veritabanını seçin.
Nesneleri seç ekranına ilerlemek için İleri'yi seçin. Bu ekranda AdventureWorks2016 veritabanındaki Azure SQL Veritabanına dağıtılması gereken şema nesnelerini belirtebilirsiniz.
Varsayılan olarak, tüm nesneler seçilir.
SQL betiği oluştur'u seçerek SQL betiklerini oluşturun ve hata olup olmadığını inceleyin.
Şemayı dağıtma'yı seçerek şemayı Azure SQL Veritabanına dağıtın. Şema dağıtıldıktan sonra hedef sunucuda anomali olup olmadığını kontrol edin.
Kaynak sağlayıcısını kaydetme
İlk Veritabanı Geçiş Hizmeti örneğinizi oluşturmadan önce Microsoft.DataMigration kaynak sağlayıcısını kaydedin.
Azure portalında oturum açın. Abonelikler'i arayın ve seçin.
Azure Veritabanı Geçiş Hizmeti örneğini oluşturmak istediğiniz aboneliği seçin ve ardından Kaynak sağlayıcıları'nı seçin.
Geçiş için arama yapın ve ardından Microsoft.DataMigration'aKaydol'u seçin.
Azure Veritabanı Geçiş Hizmeti örneğini oluşturma
Azure portal menüsünde veya Giriş sayfasında Kaynak oluştur'u seçin. Azure Veritabanı Geçiş Hizmeti için arama yapın ve seçin.
Azure Veritabanı Geçiş Hizmeti ekranında Oluştur'u seçin.
Azure Veritabanı Geçiş Hizmeti kullanmaya devam et seçeneğini belirleyin.
Geçiş Hizmeti Oluşturma temel bilgileri ekranında:
- Aboneliği seçin.
- Yeni bir kaynak grubu oluşturun veya var olan bir kaynak grubunu seçin.
- Azure Veritabanı Geçiş Hizmeti örneği için bir ad belirtin.
- Azure Veritabanı Geçiş Hizmeti örneğini oluşturmak istediğiniz konumu seçin.
- Hizmet modu olarak Azure'ı seçin.
- Fiyatlandırma katmanını seçin. Maliyetler ve fiyatlandırma katmanları hakkında daha fazla bilgi için fiyatlandırma sayfasına bakın.
- Sonraki: Ağ’ı seçin.
Geçiş Hizmeti oluştur ağ ekranında:
- Mevcut bir sanal ağı seçin veya yeni bir ağ oluşturun. Sanal ağ, Azure Veritabanı Geçiş Hizmeti kaynak sunucuya ve hedef örneğe erişim sağlar. Azure portal sanal ağ oluşturma hakkında daha fazla bilgi için Azure portal kullanarak sanal ağ oluşturma makalesine bakın.
Ayrıntıları gözden geçirmek için Gözden Geçir + Oluştur'u ve ardından hizmeti oluşturmak için Oluştur'u seçin.
Birkaç dakika sonra Azure Veritabanı Geçiş hizmeti örneğiniz oluşturulur ve kullanıma hazır olur:
Geçiş projesi oluşturma
Hizmet oluşturulduktan sonra Azure portaldan bulun, açın ve yeni bir geçiş projesi oluşturun.
Azure portal menüsünde Tüm hizmetler'i seçin. Azure Veritabanı Geçiş Hizmetleri'nin adını arayın ve seçin.
Azure Veritabanı Geçiş Hizmetleri ekranında, oluşturduğunuz Azure Veritabanı Geçiş Hizmeti örneğini seçin.
Yeni Geçiş Projesi'ni seçin.
Yeni geçiş projesi ekranında, proje için bir ad belirtin, Kaynak sunucu türü metin kutusunda SQL Server seçin, Hedef sunucu türü metin kutusunda veritabanı'nı Azure SQL seçin ve geçiş etkinlik türünü seçin için Veri geçişi'ni seçin.
Projeyi oluşturmak ve geçiş etkinliğini çalıştırmak için Etkinlik oluştur ve çalıştır'ı seçin.
Kaynak ayrıntılarını belirtme
Kaynak seç ekranında, kaynak SQL Server örneğinin bağlantı ayrıntılarını belirtin.
Kaynak SQL Server örneği adı için Tam Etki Alanı Adı (FQDN) kullandığınızdan emin olun. DNS ad çözümlemenin mümkün olmadığı durumlarda IP Adresini de kullanabilirsiniz.
Kaynak sunucunuza bir güvenilir sertifika yüklemediyseniz Sunucu sertifikasına güven onay kutusunu işaretleyin.
Güvenilir sertifika yüklü değilse SQL Server, örnek başlatıldığında otomatik olarak imzalanan bir sertifika oluşturur. Bu sertifika, istemci bağlantılarında kimlik bilgilerini şifrelemek için kullanılır.
Dikkat
Otomatik olarak imzalanan bir sertifika kullanılarak şifrelenmiş TLS bağlantıları güçlü güvenlik sağlamaz. Ortadaki adam saldırılarına maruz kalabilirler. Üretim ortamında veya İnternet'e bağlı sunucularda otomatik olarak imzalanan sertifikaları kullanan TLS'ye güvenmemelisiniz.
Önemli
SSIS kullanıyorsanız, DMS şu anda kaynak SSISDB'nin geçişini desteklemez, ancak SSIS projelerinizi/paketlerinizi Azure SQL Veritabanı tarafından barındırılan hedef SSISDB'ye yeniden dağıtabilirsiniz. SSIS paketlerini geçirme hakkında daha fazla bilgi için SQL Server Integration Services paketlerini Azure'a geçirme makalesine bakın.
İleri: Veritabanlarını seçin'i seçin.
Geçiş için veritabanlarını seçme
Azure SQL Veritabanına geçirmek istediğiniz tüm veritabanlarını veya belirli veritabanlarını seçin. DMS, seçili veritabanları için beklenen geçiş süresini sağlar. Geçiş kapalı kalma süreleri kabul edilebilirse geçişle devam edin. Geçiş kapalı kalma süreleri kabul edilebilir değilse, sıfıra yakın kapalı kalma süresiyle SQL Yönetilen Örneği geçiş yapmayı göz önünde bulundurun veya iyileştirmeye yönelik fikirler/öneriler ve diğer geri bildirimleri Azure Topluluğu forumunda Azure Veritabanı Geçiş Hizmeti.
Kullanılabilir veritabanları listesinden geçirmek istediğiniz veritabanlarını seçin.
Beklenen kapalı kalma süresini gözden geçirin. Kabul edilebilirse İleri: Hedefi >>seç'i seçin
Hedef ayrıntılarını belirtme
Hedef seçin ekranında, Azure SQL Veritabanınıza kimlik doğrulama ayarları sağlayın.
Not
Şu anda sql kimlik doğrulaması desteklenen tek kimlik doğrulama türüdür.
İleri: Hedef veritabanlarına eşle ekranını seçin, geçiş için kaynağı ve hedef veritabanını eşleyin.
Hedef veritabanı kaynak veritabanıyla aynı veritabanı adını içeriyorsa, Azure Veritabanı Geçiş Hizmeti varsayılan olarak hedef veritabanını seçer.
İleri: Yapılandırma geçiş ayarları'nı seçin, tablo listesini genişletin ve etkilenen alanların listesini gözden geçirin.
Azure Veritabanı Geçiş Hizmeti hedef Azure SQL Veritabanı örneğinde bulunan tüm boş kaynak tabloları otomatik olarak seçer. Veri içeren tabloları yeniden geçirmek isterseniz bu dikey pencerede tabloları seçmeniz gerekir.
İleri: Özet'i seçin, geçiş yapılandırmasını gözden geçirin ve Etkinlik adı metin kutusunda geçiş etkinliği için bir ad belirtin.
Geçişi çalıştırma
Geçişi başlat'ı seçin.
Geçiş etkinliği penceresi görüntülenir ve etkinliğin DurumuBeklemede olur.
Geçişi izleme
Geçiş etkinliği ekranında Yenile'yi seçerek geçişin Durum bilgisi Tamamlandı olana kadar gösterilen verileri güncelleştirebilirsiniz.
Hedef Azure SQL Veritabanındaki hedef veritabanlarını doğrulayın.