Otomasyon kullanarak veritabanlarını uygun ölçekte geçirme (Önizleme)

Azure Data Studio için Azure SQL Geçişi uzantısı, aşağıdaki özellikleri sunan basitleştirilmiş bir değerlendirme, öneri ve geçiş deneyimini bir araya getirir:

  • Gelişmiş bir değerlendirme mekanizması SQL Server örneklerini değerlendirerek farklı Azure SQL hedeflerine geçiş için hazır veritabanlarını tanımlayabilir.
  • Azure SQL hedefinize göre doğru boyutlu SKU önerileri oluşturarak şirket içi kaynak SQL Server örneğinden performans verileri toplayan bir SKU öneri altyapısı (Önizleme).
  • Sorunsuz bir geçiş deneyimi sunmak için veri taşıma etkinliklerini düzenleyen Azure Veritabanı Geçiş Hizmeti tarafından desteklenen güvenilir bir Azure hizmeti.
  • İş gereksinimlerinize uyacak şekilde çevrimiçi (minimum kapalı kalma süresi gerektiren geçişler için) veya çevrimdışı (geçişte kapalı kalma süresinin devam ettiği geçişler için) geçiş modları çalıştırabilme.
  • Şirket içi ortamınızdaki kaynak SQL Server'a ve yedeklemelere erişmek için kendi işleminizi sağlamak üzere şirket içinde barındırılan tümleştirme çalışma zamanı oluşturma ve yapılandırma esnekliği.

PowerShell - Azure DataMigration Hizmeti Modülü veya Azure CLI gibi otomasyon araçlarıyla Azure SQL Geçişi uzantısının özelliklerini Azure Veritabanı Geçiş Hizmeti ile birlikte uygulayarak büyük ölçekte bir veya daha fazla veritabanını (birden çok SQL Server örneğindeki veritabanları dahil) geçirebilirsiniz.

Azure PowerShell veya Azure CLI kullanarak geçiş senaryonuza uyacak şekilde aşağıdaki örnek betiklere başvurulabilir:

Geçiş senaryosu Betik dili
SQL Server değerlendirmesi PowerShell / Azure CLI
Azure SQL Yönetilen Örneği için SQL Server (dosya paylaşımını kullanarak) PowerShell / Azure CLI
sql server Azure SQL Yönetilen Örneği (Azure depolama kullanarak) PowerShell / Azure CLI
Azure Sanal Makineler'da SQL Server'a SQL Server (dosya paylaşımını kullanarak) PowerShell / Azure CLI
Azure Sanal Makineler'da SQL Server'a SQL Server (Azure Depolama kullanarak) PowerShell / Azure CLI
SQL Server'ın Azure SQL Veritabanı PowerShell / Azure CLI
SKU önerileri (Önizleme) PowerShell / Azure CLI
Uçtan Uca geçiş otomasyonu PowerShell / Azure CLI
Birden çok veritabanı için Uçtan Uca geçiş otomasyonu PowerShell / Azure CLI

Ön koşullar

Azure PowerShell veya Azure CLI kullanılarak desteklenen tüm geçiş senaryolarında ortak olan önkoşullar şunlardır:

  • Aşağıda listelenen yerleşik rollerden birine atanmış bir Azure hesabı olmalıdır:

    • Hedef Azure SQL Yönetilen Örneği, Azure'da SQL Server Sanal Makineler veya Azure SQL Veritabanı için katkıda bulunan ve veritabanı yedekleme dosyalarınızı SMB ağ paylaşımından karşıya yüklemek için Hesabı Depolama (Aşağıdakiler için geçerli değildir) Azure SQL Veritabanı).
    • Hedef Azure SQL Yönetilen Örneği, Azure'da SQL Server Sanal Makineler veya Azure SQL Veritabanı içeren Azure Kaynak Grupları için okuyucu rolü.
    • Azure aboneliği için Sahip veya Katkıda Bulunan rolü.

    Önemli

    Azure hesabı yalnızca geçiş adımları çalıştırılırken gereklidir ve değerlendirme veya Azure öneri adımları işlemi için gerekli değildir.

  • Hedef Azure SQL Yönetilen Örneği, Azure Sanal Makinesinde SQL Server veya Azure SQL Veritabanı oluşturma

    Önemli

    Hedefiniz Azure SQL Veritabanı SQL Server dacpac uzantısını veya Azure Data Studio için Projeler uzantısını SQL Veritabanı kullanarak veritabanı şemasını kaynaktan hedefe geçirmeniz gerekir.

    Mevcut bir Azure Sanal Makineniz varsa, tam yönetim modunda SQL IaaS Aracısı uzantısına kayıtlı olmalıdır.

  • Hedefiniz azure sanal makinesinde Azure SQL Yönetilen Örneği veya SQL Server ise, kaynak SQL Server'a bağlanmak için kullanılan oturum açma bilgilerinin sysadmin sunucu rolünün üyesi olduğundan veya izine sahip CONTROL SERVER olduğundan emin olun.

  • Hedefiniz Azure SQL Veritabanı, kaynak SQL Server'a bağlanmak için kullanılan oturum açma bilgilerinin bir üye olduğundan ve db_datareader hedef SQL sunucusu için ve oturum açma bilgilerinin olduğundan db_owneremin olun.

  • Tam veritabanı ve işlem günlüğü yedekleme dosyaları için aşağıdaki depolama seçeneklerinden birini kullanın:

    • SMB ağ paylaşımı
    • Azure depolama hesabı dosya paylaşımı veya blob kapsayıcısı

    Önemli

    • Veritabanı yedekleme dosyalarınız bir SMB ağ paylaşımında sağlanıyorsa, DMS hizmetinin veritabanı yedekleme dosyalarını karşıya yüklemesine izin veren bir Azure depolama hesabı oluşturun. Azure Depolama Hesabını Azure Veritabanı Geçiş Hizmeti örneğinin oluşturulduğu bölgede oluşturduğunuzdan emin olun.
    • Azure depolama hesabı blob kapsayıcısının yalnızca yedekleme dosyalarını depolamak için kullanıldığından emin olun. Diğer tüm dosya türleri (txt, png, jpg vb.) geri yükleme işleminin başarısız olmasına neden olur.
    • Azure Veritabanı Geçiş Hizmeti herhangi bir yedekleme başlatmaz ve bunun yerine geçiş için olağanüstü durum kurtarma planınızın bir parçası olarak zaten sahip olabileceğiniz mevcut yedeklemeleri kullanır.
    • Her yedekleme ayrı bir yedekleme dosyasına veya birden fazla yedekleme dosyasına yazılabilir. Öte yandan birden fazla yedeklemenin (tam ve t-günlük) tek bir yedekleme medyasına eklenmesi desteklenmez.
    • Büyük yedeklemelerin geçirilmesiyle ilgili olası sorunlarla karşılaşma olasılığını azaltmak için sıkıştırılmış yedeklemeleri kullanın.
  • Kaynak SQL Server örneğini çalıştıran hizmet hesabının veritabanı yedekleme dosyalarını içeren SMB ağ paylaşımında okuma ve yazma izinlerine sahip olduğundan emin olun.

  • Saydam Veri Şifrelemesi (TDE) tarafından korunan bir veritabanından alınan kaynak SQL Server örneği sertifikası, verileri geçirmeden önce Azure Sanal Makinesi'nin hedef Azure SQL Yönetilen Örneği veya SQL Server'a geçirilmelidir. TDE özellikli veritabanlarını geçirme hakkında daha fazla bilgi için bkz . Öğretici: TDE özellikli veritabanlarını Azure Data Studio'da Azure SQL'e geçirme (önizleme).

    Bahşiş

    Veritabanınız Always Encrypted tarafından korunan hassas veriler içeriyorsa, DMS ile Azure Data Studio'yu kullanan geçiş işlemi, Always Encrypted anahtarlarınızı otomatik olarak hedef Azure SQL Yönetilen Örneği veya Azure Sanal Makine'de SQL Server'a geçirir.

  • Veritabanı yedeklemeleriniz bir ağ dosya paylaşımındaysa, veritabanı yedeklemelerine erişmek ve bu yedeklemeleri geçirmek için şirket içinde barındırılan tümleştirme çalışma zamanını yükleyecek bir makine sağlayın. Azure PowerShell veya Azure CLI modülleri, şirket içinde barındırılan tümleştirme çalışma zamanınızı kaydetmek için kimlik doğrulama anahtarlarını sağlar. Geçişe hazırlanırken, şirket içinde barındırılan tümleştirme çalışma zamanını yüklemeyi planladığınız makinede aşağıdaki giden güvenlik duvarı kurallarının ve etki alanı adlarının etkinleştirildiğinden emin olun:

    Etki alanı adları Giden bağlantı noktaları Tanım
    Genel Bulut: {datafactory}.{region}.datafactory.azure.net
    veya *.frontend.clouddatahub.net
    Azure Kamu:{datafactory}.{region}.datafactory.azure.us
    Çin: {datafactory}.{region}.datafactory.azure.cn
    443 Veri Geçişi hizmetine bağlanmak için şirket içinde barındırılan tümleştirme çalışma zamanı tarafından gereklidir.
    Genel bulutta oluşturulan yeni Data Factory için, biçimindeki {datafactory}.{region}.datafactory.azure.netŞirket İçinde Barındırılan Integration Runtime anahtarınızdan FQDN'yi bulun. Eski Data factory için şirket içinde barındırılan Tümleştirme anahtarınızda FQDN'yi görmüyorsanız bunun yerine *.frontend.clouddatahub.net kullanın.
    download.microsoft.com 443 Güncelleştirmeleri indirmek için şirket içinde barındırılan tümleştirme çalışma zamanı tarafından gereklidir. Otomatik güncelleştirmeyi devre dışı bırakmışsanız, bu etki alanını yapılandırmayı atlayabilirsiniz.
    *.core.windows.net 443 Ağ paylaşımınızdan veritabanı yedeklemelerini karşıya yüklemek için Azure depolama hesabına bağlanan şirket içinde barındırılan tümleştirme çalışma zamanı tarafından kullanılır

    Bahşiş

    Veritabanı yedekleme dosyalarınız zaten bir Azure depolama hesabında sağlanmışsa, geçiş işlemi sırasında şirket içinde barındırılan tümleştirme çalışma zamanı gerekli değildir.

  • Şirket içinde barındırılan tümleştirme çalışma zamanını kullanırken, çalışma zamanının yüklü olduğu makinenin kaynak SQL Server örneğine ve yedekleme dosyalarının bulunduğu ağ dosya paylaşımına bağlanadığından emin olun.

  • Ağ dosya paylaşımına erişmek için giden bağlantı noktası 445 etkinleştirilmelidir.

  • Azure Veritabanı Geçiş Hizmeti ilk kez kullanıyorsanız Microsoft.DataMigration kaynak sağlayıcısının aboneliğinize kayıtlı olduğundan emin olun. Kaynak sağlayıcısını kaydetmek için adımları izleyebilirsiniz

    Önemli

    Geçiş hedefiniz Azure SQL Veritabanı ise, bu geçişi gerçekleştirmek için yedeklere ihtiyacınız yoktur. Azure SQL Veritabanı geçişi, veritabanının önceden oluşturulmasını ve veri taşımasını (DMS tarafından gerçekleştirilir) içeren mantıksal bir geçiş olarak kabul edilir.

Veritabanı geçişlerini otomatikleştirme

Azure PowerShell Az.DataMigration veya Azure CLI az datamigration kullanarak, Azure Veritabanı Geçiş Hizmeti oluşturma işlemini otomatikleştirerek, çevrimiçi geçiş için veritabanı geçişlerini yapılandırarak ve tam geçiş gerçekleştirerek veritabanlarını geçirebilirsiniz. Azure Örnekleri'nde belgelenen birkaç komut ve işlev daha vardır.

Azure CLI kullanarak SQL Server veritabanının geçişini otomatikleştirme örneği: 1. Adım: Veritabanınızın geçiş etkinliklerini düzenleyecek Azure Veritabanı Geçiş Hizmeti oluşturma.

#STEP 1: Create Database Migration Service
az datamigration sql-service create --resource-group "myRG" --sql-migration-service-name "myMigrationService" --location "EastUS2"

2. Adım: Şirket içi SQL Server'dan (Azure depolamadaki yedeklemelerle) Azure SQL Yönetilen Örneği çevrimiçi veritabanı geçişlerini yapılandırın ve başlatın.

#STEP 2: Start Migration
az datamigration sql-managed-instance create `
--source-location '{\"AzureBlob\":{\"storageAccountResourceId\":\"/subscriptions/mySubscriptionID/resourceGroups/myRG/providers/Microsoft.Storage/storageAccounts/dbbackupssqlbits\",\"accountKey\":\"myAccountKey\",\"blobContainerName\":\"dbbackups\"}}' `
--migration-service "/subscriptions/mySubscriptionID/resourceGroups/myRG/providers/Microsoft.DataMigration/SqlMigrationServices/myMigrationService" `
--scope "/subscriptions/mySubscriptionID/resourceGroups/myRG/providers/Microsoft.Sql/managedInstances/mySQLMI" `
--source-database-name "AdventureWorks2008" `
--source-sql-connection authentication="SqlAuthentication" data-source="mySQLServer" password="myPassword" user-name="sqluser" `
--target-db-name "AdventureWorks2008" `
--resource-group myRG `
--managed-instance-name mySQLMI

3. Adım: Tüm yedeklemeler Azure SQL Yönetilen Örneği geri yüklendikten sonra tam geçiş gerçekleştirin.

#STEP 3: Get migration ID and perform Cutover
$migOpId = az datamigration sql-managed-instance show --managed-instance-name "mySQLMI" --resource-group "myRG" --target-db-name "AdventureWorks2008" --expand=MigrationStatusDetails --query "properties.migrationOperationId"
az datamigration sql-managed-instance cutover --managed-instance-name "mySQLMI" --resource-group "myRG" --target-db-name "AdventureWorks2008" --migration-operation-id $migOpId

"Abonelik 'Microsoft.DataMigration' ad alanını kullanacak şekilde kaydedilmedi" hatasını alırsanız. Aboneliklerin nasıl kaydedildiğini görün https://aka.ms/rps-not-found ", aşağıdaki komutu çalıştırın:

   Register-AzResourceProvider -ProviderNamespace "Microsoft.DataMigration"

Sonraki adımlar