Databases op schaal migreren met automatisering (preview)

De Azure SQL Migration-extensie voor Azure Data Studio brengt een vereenvoudigde evaluatie, aanbeveling en migratie-ervaring samen die de volgende mogelijkheden biedt:

  • Een verbeterd evaluatiemechanisme kan SQL Server-exemplaren evalueren, waarmee databases worden geïdentificeerd die gereed zijn voor migratie naar de verschillende Azure SQL-doelen.
  • Een SKU-aanbevelingsengine (preview) die prestatiegegevens verzamelt van het on-premises SQL Server-bronexemplaren, waarmee aanbevelingen voor SKU's met de juiste grootte worden gegenereerd op basis van uw Azure SQL-doel.
  • Een betrouwbare Azure-service die wordt mogelijk gemaakt door Azure Database Migration Service waarmee activiteiten voor gegevensverplaatsing worden ingedeeld om een naadloze migratie-ervaring te bieden.
  • De mogelijkheid om online uit te voeren (voor migraties waarvoor minimale downtime is vereist) of offline (voor migraties waarbij downtime zich via de migratie blijft voordoen) om aan uw bedrijfsvereisten te voldoen.
  • De flexibiliteit voor het maken en configureren van een zelf-hostende Integration Runtime om uw eigen rekenproces te bieden voor toegang tot de bron-SQL Server en back-ups in uw on-premises omgeving.

Met automatiseringshulpprogramma's zoals de PowerShell - Azure DataMigration Service-module of Azure CLI kunt u de mogelijkheden van de Azure SQL Migration-extensie toepassen samen met Azure Database Migration Service om een of meer databases op schaal te migreren (inclusief databases in meerdere SQL Server-exemplaren).

In de volgende voorbeeldscripts kan worden verwezen naar uw migratiescenario met behulp van Azure PowerShell of Azure CLI:

Migratiescenario Scripttaal
SQL Server-evaluatie PowerShell / Azure CLI
SQL Server naar Azure SQL Managed Instance (met behulp van bestandsshare) PowerShell / Azure CLI
SQL Server naar Azure SQL Managed Instance (met behulp van Azure Storage) PowerShell / Azure CLI
SQL Server naar SQL Server op virtuele Azure-machines (met behulp van bestandsshare) PowerShell / Azure CLI
SQL Server naar SQL Server op virtuele Azure-machines (met behulp van Azure Storage) PowerShell / Azure CLI
SQL Server naar Azure SQL Database PowerShell / Azure CLI
Aanbevelingen voor SKU 's (preview) PowerShell / Azure CLI
End-to-end migratieautomatisering PowerShell / Azure CLI
End-to-end migratieautomatisering voor meerdere databases PowerShell / Azure CLI

Vereisten

Vereisten die gebruikelijk zijn voor alle ondersteunde migratiescenario's met behulp van Azure PowerShell of Azure CLI zijn:

  • Een Azure-account hebben dat is toegewezen aan een van de ingebouwde rollen die hieronder worden vermeld:

    • Inzender voor het doel azure SQL Managed Instance, SQL Server op Azure Virtual Machines of Azure SQL Database en het opslagaccount voor het uploaden van uw databaseback-upbestanden van de SMB-netwerkshare (niet van toepassing op Azure SQL Database).
    • Lezerrol voor de Azure-resourcegroepen met het doel azure SQL Managed Instance, SQL Server op Azure Virtual Machines of Azure SQL Database.
    • De rol Eigenaar of Inzender voor het Azure-abonnement.

    Belangrijk

    Azure-account is alleen vereist bij het uitvoeren van de migratiestappen en is niet vereist voor het proces van evaluatie- of Azure-aanbevelingsstappen.

  • Een azure SQL Managed Instance-doelexemplaren, SQL Server maken op azure Virtual Machine of Azure SQL Database

    Belangrijk

    Als uw doel Azure SQL Database is, moet u een databaseschema migreren van de bron naar het doel met behulp van de SQL Server dacpac-extensie of de SQL Database Projects-extensie voor Azure Data Studio.

    Als u een bestaande virtuele Azure-machine hebt, moet deze worden geregistreerd bij de SQL IaaS Agent-extensie in de modus Volledig beheer.

  • Als uw doel Azure SQL Managed Instance of SQL Server op azure Virtual Machine is, moet u ervoor zorgen dat de aanmeldingen die worden gebruikt om verbinding te maken met de bron-SQL Server, lid zijn van de sysadmin-serverrol of gemachtigd zijn CONTROL SERVER.

  • Als uw doel Azure SQL Database is, moet u ervoor zorgen dat de aanmelding die wordt gebruikt om verbinding te maken met de bron-SQL Server lid is en dat de db_datareader aanmelding voor de doel-SQL-server isdb_owner.

  • Gebruik een van de volgende opslagopties voor de volledige back-upbestanden voor database- en transactielogboeken:

    • SMB-netwerkshare
    • Azure Storage-accountbestandsshare of blobcontainer

    Belangrijk

    • Als uw databaseback-upbestanden zijn opgegeven in een SMB-netwerkshare, maakt u een Azure-opslagaccount waarmee de DMS-service de back-upbestanden van de database kan uploaden. Zorg ervoor dat u het Azure Storage-account maakt in de regio waarin het exemplaar van Azure Database Migration Service wordt gemaakt.
    • Zorg ervoor dat de blobcontainer van het Azure-opslagaccount uitsluitend wordt gebruikt om alleen back-upbestanden op te slaan. Elk ander type bestanden (txt, png, jpg, etc.) interfereert met het herstelproces dat tot een storing leidt.
    • Azure Database Migration Service initieert geen back-ups en maakt in plaats daarvan gebruik van bestaande back-ups voor de migratie, die u mogelijk al hebt als onderdeel van het noodherstelplan.
    • Elke back-up kan naar een afzonderlijk back-upbestand of naar meerdere back-upbestanden worden geschreven. Het toevoegen van meerdere back-ups (dat wil zeggen volledige back-up en transactielogboek) aan één back-upmedia wordt echter niet ondersteund.
    • Gebruik gecomprimeerde back-ups om de kans te verkleinen dat er potentiële problemen zijn met het migreren van grote back-ups.
  • Zorg ervoor dat het serviceaccount waarop het SQL Server-bronexemplaren worden uitgevoerd, lees- en schrijfmachtigingen heeft voor de SMB-netwerkshare die back-upbestanden van de database bevat.

  • Het broncertificaat van het SQL Server-exemplaar van een database die wordt beveiligd door TDE (Transparent Data Encryption) moet worden gemigreerd naar het doel azure SQL Managed Instance of SQL Server op azure Virtual Machine voordat gegevens worden gemigreerd. Zie zelfstudie: TDE-databases (preview) migreren naar Azure SQL in Azure Data Studio voor meer informatie over het migreren van databases met TDE.

    Fooi

    Als uw database gevoelige gegevens bevat die worden beveiligd door Always Encrypted, migreert het migratieproces met Behulp van Azure Data Studio met DMS automatisch uw Always Encrypted-sleutels naar uw doel azure SQL Managed Instance of SQL Server op azure Virtual Machine.

  • Als uw databaseback-ups zich in een netwerkbestandsshare bevinden, geeft u een computer op om zelf-hostende Integration Runtime te installeren voor toegang tot en migratie van databaseback-ups. De Azure PowerShell- of Azure CLI-modules bieden de verificatiesleutels voor het registreren van uw zelf-hostende Integration Runtime. Zorg ervoor dat de computer waarop u de zelf-hostende Integration Runtime wilt installeren, de volgende uitgaande firewallregels en domeinnamen heeft ingeschakeld ter voorbereiding op de migratie:

    Domeinnamen Uitgaande poorten Omschrijving
    Openbare cloud: {datafactory}.{region}.datafactory.azure.net
    of *.frontend.clouddatahub.net
    Azure Government: {datafactory}.{region}.datafactory.azure.us
    China: {datafactory}.{region}.datafactory.azure.cn
    443 Vereist door de zelf-hostende Integration Runtime om verbinding te maken met de Data Migration-service.
    Voor nieuwe gemaakte Data Factory in de openbare cloud zoekt u de FQDN op basis van uw zelf-hostende Integration Runtime-sleutel, die in indeling {datafactory}.{region}.datafactory.azure.netis. Als u de FQDN niet in uw zelf-hostende integratiesleutel ziet, gebruikt u in plaats daarvan *.frontend.clouddatahub.net voor oude Data Factory.
    download.microsoft.com 443 Vereist door de zelf-hostende Integration Runtime voor het downloaden van de updates. Als u automatische updates heb uitgeschakeld, kunt u het configureren van dit domein overslaan.
    *.core.windows.net 443 Wordt gebruikt door de zelf-hostende Integration Runtime die verbinding maakt met het Azure-opslagaccount voor het uploaden van databaseback-ups vanuit uw netwerkshare

    Fooi

    Als uw databaseback-upbestanden al zijn opgegeven in een Azure-opslagaccount, is zelf-hostende Integration Runtime niet vereist tijdens het migratieproces.

  • Wanneer u zelf-hostende Integration Runtime gebruikt, moet u ervoor zorgen dat de computer waarop de runtime is geïnstalleerd verbinding kan maken met het SQL Server-bronexemplaren en de netwerkbestandsshare waar back-upbestanden zich bevinden.

  • Uitgaande poort 445 moet zijn ingeschakeld voor toegang tot de netwerkbestandsshare.

  • Als u de Azure Database Migration Service voor de eerste keer gebruikt, moet u ervoor zorgen dat de resourceprovider Microsoft.DataMigration is geregistreerd in uw abonnement. U kunt de stappen volgen om de resourceprovider te registreren

    Belangrijk

    Als uw migratiedoel Azure SQL Database is, hebt u geen back-ups nodig om deze migratie uit te voeren. De migratie naar Azure SQL Database wordt beschouwd als een logische migratie met betrekking tot het vooraf maken en verplaatsen van gegevens van de database (uitgevoerd door DMS).

Databasemigraties automatiseren

Met behulp van Azure PowerShell Az.DataMigration of Azure CLI az datamigration kunt u databases migreren door het maken van de Azure Database Migration Service te automatiseren, databasemigraties te configureren voor onlinemigratie en een cutover uit te voeren. Er zijn nog verschillende opdrachten en functionaliteit die worden beschreven in Azure-voorbeelden.

Voorbeeld van het automatiseren van de migratie van een SQL Server-database met behulp van Azure CLI: Stap 1: Azure Database Migration Service maken, waarmee de migratieactiviteiten van uw database worden ingedeeld.

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

Stap 2: online databasemigratie van SQL Server on-premises configureren en starten (met back-ups in Azure Storage) naar Azure SQL Managed Instance.

#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

Stap 3: Voer een migratie-cutover uit zodra alle back-ups zijn hersteld naar Azure SQL Managed Instance.

#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

Als u de foutmelding 'Het abonnement is niet geregistreerd voor gebruik van naamruimte 'Microsoft.DataMigration'. Zie voor meer informatie https://aka.ms/rps-not-found over het registreren van abonnementen. Voer de volgende opdracht uit:

   Register-AzResourceProvider -ProviderNamespace "Microsoft.DataMigration"

Volgende stappen