Aracılığıyla paylaş


Otomasyon kullanarak veritabanlarını büyük ölçekte geçirme

Azure Veritabanı Geçiş Hizmeti aşağıdaki özellikleri sağlar:

  • Sorunsuz bir geçiş deneyimi sağlamak için veri taşıma etkinliklerini düzenleyen güvenilir, dayanıklı ve hataya dayanıklı bir hizmet.

  • İş 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şim sağlamak için kendi hesaplama kaynağınızı sağlamak amacıyla kendi kendine barındırılan bir 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, birden çok SQL Server örneğindeki veritabanları dahil olmak üzere bir veya daha fazla veritabanını uygun ölçekte 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
SQL Server'dan Azure SQL Yönetilen Örneği'ne (dosya paylaşımı kullanılarak) Powershell / Azure CLI
SQL Server için Azure SQL Yönetilen Örneği (Azure depolama kullanarak) Powershell / Azure CLI
Azure Sanal Makineleri'nde SQL Server'dan SQL Server'a (dosya paylaşımını kullanarak) Powershell / Azure CLI
Azure Sanal Makinelerde Azure Depolama Alanı kullanarak SQL Server'dan SQL Server'a Powershell / Azure CLI
SQL Server’den Azure SQL Veritabanı’na Powershell / Azure CLI
SKU önerileri 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

Önkoşullar

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

  • Yerleşik rollerden birine atanmış bir Azure hesabınız olduğundan emin olun:

    • Hedef Azure SQL Yönetilen Örneği, Azure Sanal Makineler veya Azure SQL Veritabanı üzerinde SQL Server ve SMB ağ paylaşımından veritabanı yedekleme dosyalarınızı karşıya yüklemek için Depolama Hesabı katkıda bulunanı (Azure SQL Veritabanı için geçerli değildir).

    • Hedef Azure SQL Yönetilen Örneği, Azure SQL Veritabanı veya Azure SQL Server Sanal Makineler içeren Azure Kaynak Grupları için Okuyucu rolü.

    • Azure aboneliği için 'Katkıda Bulunan' veya 'Sahip' rolü.

    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şturun.

    Hedefiniz Azure SQL Veritabanı ise, Visual Studio Code için Veri Katmanı Uygulama deneyimi veya SQL Veritabanı Projeleri uzantısını kullanarak veritabanı şemasını kaynaktan hedefe geçirmeniz gerekir.

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

  • Hedefiniz Azure SQL Yönetilen Örneği veya Azure Sanal Makinesinde 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ı ise, kaynak SQL Server'a bağlanmak için kullanılan oturum açma bilgilerinin bir grup üyesi olduğundan ve db_datareader hedef SQL sunucusu için oturum açma bilgilerinin db_owner olduğundan emin 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ı

      • 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, .jpgvb.) geri yükleme işlemini engeller ve hataya 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. Ancak, birden çok yedeklemenin (tam ve t-log) tek bir yedekleme ortamı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) ile korunan bir veritabanından alınan kaynak SQL Server örneği sertifikası, verileri geçirmeden önce hedef Azure SQL Yönetilen Örneği'ne veya Azure Sanal Makine'de SQL Server'a geçirilmelidir.

    İpucu

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

  • Veritabanı yedeklemeleriniz bir ağ dosya paylaşımındaysa, veritabanı yedeklemelerine erişmek ve taşımak için şirket içinde barındırılan tümleştirme çalışma zamanını yüklemek üzere bir makine sağlayın. Azure PowerShell veya Azure CLI modülleri, yerel tümleştirme çalışma zamanınızı kaydetmek için kimlik doğrulama anahtarlarını sağlar. Geçiş hazırlıkları sırasında, kendi kendine 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:

    Alan adları Giden bağlantı noktaları Açıklama
    Genel Bulut: {datafactory}.{region}.datafactory.azure.net
    veya *.frontend.clouddatahub.net
    Azure Hükümeti:{datafactory}.{region}.datafactory.azure.us
    Çin: {datafactory}.{region}.datafactory.azure.cn
    443 Veri Geçişi hizmetine bağlanmak için kendi bünyesinde barındırılan entegrasyon çalışma zamanı tarafından gereklidir.
    Genel bulutta oluşturulan yeni Data Factory için, Şirket İçi Barındırılan Integration Runtime anahtarınızdan {datafactory}.{region}.datafactory.azure.net biçimindeki FQDN'yi bulun. Eski Data Factory için, kendi barındırdığınız Entegrasyon anahtarınızda FQDN'yi görmüyorsanız, yerine *.frontend.clouddatahub.net kullanın.
    download.microsoft.com 443 Güncelleştirmeleri indirmek için kendi üzerinde 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 Azure depolama hesabına yüklemek için yerel olarak barındırılan tümleştirme çalışma zamanı tarafından kullanılır.

    Veritabanı yedek dosyalarınız zaten bir Azure depolama hesabında sağlanmışsa, geçiş sürecinde yerel 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

    Geçiş hedefiniz Azure SQL Veritabanı ise, bu geçişi gerçekleştirmek için yedeklere ihtiyacınız yoktur. Azure SQL Veritabanı'na geçiş, veritabanının önceden oluşturmayı 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 örnekleri:

1. Adım: Veritabanınızın geçiş etkinliklerini düzenleyen Azure Veritabanı Geçiş Hizmeti'ni oluşturun.

#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="<password>" 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 geçiş işlemi 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

hatasını The subscription is not registered to use namespace 'Microsoft.DataMigration'. See https://aka.ms/rps-not-found for how to register subscriptions.alırsanız aşağıdaki komutu çalıştırın:

Register-AzResourceProvider -ProviderNamespace "Microsoft.DataMigration"