Migrera databaser i stor skala med hjälp av automatisering (förhandsversion)

Azure SQL Migration-tillägget för Azure Data Studio sammanför en förenklad utvärderings-, rekommendations- och migreringsupplevelse som ger följande funktioner:

  • En förbättrad utvärderingsmekanism kan utvärdera SQL Server-instanser och identifiera databaser som är redo för migrering till de olika Azure SQL-målen.

  • En SKU-rekommendationsmotor (förhandsversion) som samlar in prestandadata från sql server-källinstansen lokalt och genererar SKU-rekommendationer i rätt storlek baserat på ditt Azure SQL-mål.

  • En tillförlitlig Azure-tjänst som drivs av Azure Database Migration Service som samordnar dataförflyttningsaktiviteter för att ge en sömlös migreringsupplevelse.

  • Möjligheten att köra online (för migreringar som kräver minimal stilleståndstid) eller offline (för migreringar där stilleståndstiden kvarstår via migreringen) för att passa dina affärsbehov.

  • Flexibiliteten att skapa och konfigurera en lokalt installerad integrationskörning för att tillhandahålla din egen beräkning för åtkomst till SQL Server-källan och säkerhetskopior i din lokala miljö.

Med automatiseringsverktyg som PowerShell – Azure DataMigration Service-modulen eller Azure CLI kan du använda funktionerna i Azure SQL Migration-tillägget tillsammans med Azure Database Migration Service för att migrera en eller flera databaser i stor skala (inklusive databaser över flera SQL Server-instanser).

Följande exempelskript kan refereras till för att passa migreringsscenariot med hjälp av Azure PowerShell eller Azure CLI:

Migreringsscenario Skriptspråk
SQL Server-utvärdering PowerShell / Azure CLI
SQL Server till Azure SQL Managed Instance (med filresurs) PowerShell / Azure CLI
SQL Server till Azure SQL Managed Instance (med Azure Storage) PowerShell / Azure CLI
SQL Server till SQL Server på virtuella Azure-datorer (med hjälp av filresurs) PowerShell / Azure CLI
SQL Server till SQL Server på virtuella Azure-datorer (med Azure Storage) PowerShell / Azure CLI
SQL Server till Azure SQL Database PowerShell / Azure CLI
SKU-rekommendationer (förhandsversion) PowerShell / Azure CLI
Migreringsautomatisering från slutpunkt till slutpunkt PowerShell / Azure CLI
Migreringsautomatisering från slutpunkt till slutpunkt för flera databaser PowerShell / Azure CLI

Förutsättningar

Förutsättningar som är vanliga i alla migreringsscenarier som stöds med Hjälp av Azure PowerShell eller Azure CLI är:

  • Ha ett Azure-konto som har tilldelats någon av de inbyggda rollerna som anges nedan:

    • Deltagare för azure SQL Managed Instance-målet, SQL Server på virtuella Azure-datorer eller Azure SQL Database och lagringskonto för att ladda upp databassäkerhetskopieringsfiler från SMB-nätverksresursen (gäller inte för Azure SQL Database).

    • Läsarroll för Azure-resursgrupper som innehåller Azure SQL Managed Instance, SQL Server på Azure Virtual Machines eller Azure SQL Database.

    • Rollen Ägare eller Deltagare för Azure-prenumerationen.

    Azure-kontot krävs bara när du kör migreringsstegen och krävs inte för utvärderings- eller Azure-rekommendationsstegsprocessen.

  • Skapa en Azure SQL Managed Instance-målinstans, SQL Server på en virtuell Azure-dator eller Azure SQL Database

    Om målet är Azure SQL Database måste du migrera databasschemat från källa till mål med hjälp av SQL Server dacpac-tillägget eller SQL Database Projects-tillägget för Azure Data Studio.

    Om du har en befintlig virtuell Azure-dator bör den registreras med SQL IaaS Agent-tillägget i fullständigt hanteringsläge.

  • Om målet är Azure SQL Managed Instance eller SQL Server på azure virtual machine kontrollerar du att inloggningarna som används för att ansluta SQL Server-källan är medlemmar i sysadmin-serverrollen eller har CONTROL SERVER behörighet.

  • Om målet är Azure SQL Database kontrollerar du att inloggningen som används för att ansluta sql-källservern är medlem och att inloggningen db_datareader för SQL-målservern är db_owner.

  • Använd något av följande lagringsalternativ för de fullständiga databas- och transaktionsloggsäkerhetsfilerna:

    • SMB-nätverksresurs

    • Azure Storage-kontofilresurs eller blobcontainer

      • Om dina databassäkerhetskopieringsfiler tillhandahålls i en SMB-nätverksresurs skapar du ett Azure Storage-konto som gör att DMS-tjänsten kan ladda upp databassäkerhetskopiorna. Se till att skapa Azure Storage-kontot i samma region som Azure Database Migration Service-instansen har skapats.

      • Kontrollera att blobcontainern för Azure Storage-kontot endast används för att lagra säkerhetskopieringsfiler. Alla andra typer av filer (txt, png, jpg osv.) kommer att störa återställningsprocessen som leder till ett fel.

      • Azure Database Migration Service initierar inga säkerhetskopior och använder i stället befintliga säkerhetskopior, som du kanske redan har som en del av din haveriberedskapsplan, för migreringen.

      • Varje säkerhetskopia kan antingen skrivas till en separat säkerhetskopia eller till flera säkerhetskopieringsfiler. Det går dock inte att lägga till flera säkerhetskopior (d.v.s. fullständig och t-log) i ett enda säkerhetskopieringsmedium.

      • Använd komprimerade säkerhetskopior för att minska risken för potentiella problem med att migrera stora säkerhetskopior.

  • Kontrollera att tjänstkontot som kör SQL Server-källinstansen har läs- och skrivbehörighet för SMB-nätverksresursen som innehåller säkerhetskopierade databasfiler.

  • Sql Server-källinstanscertifikatet från en databas som skyddas av transparent datakryptering (TDE) måste migreras till målcertifikatet för Azure SQL Managed Instance eller SQL Server på en virtuell Azure-dator innan data migreras. Mer information om hur du migrerar TDE-aktiverade databaser finns i Självstudie: Migrera TDE-aktiverade databaser (förhandsversion) till Azure SQL i Azure Data Studio.

    Dricks

    Om databasen innehåller känsliga data som skyddas av Always Encrypted migrerar migreringsprocessen med Azure Data Studio med DMS automatiskt dina Always Encrypted-nycklar till din azure SQL-hanterade målinstans eller SQL Server på en virtuell Azure-dator.

  • Om dina databassäkerhetskopior finns i en nätverksfilresurs tillhandahåller du en dator för att installera lokalt installerad integrationskörning för åtkomst till och migrering av säkerhetskopior av databaser. Azure PowerShell- eller Azure CLI-modulerna tillhandahåller autentiseringsnycklarna för att registrera din lokala integrationskörning. Inför migreringen kontrollerar du att den dator där du planerar att installera den lokalt installerade integrationskörningen har följande regler för utgående brandvägg och domännamn aktiverade:

    Domännamn Utgående portar beskrivning
    Offentligt moln: {datafactory}.{region}.datafactory.azure.net
    eller *.frontend.clouddatahub.net
    Azure Government: {datafactory}.{region}.datafactory.azure.us
    Kina: {datafactory}.{region}.datafactory.azure.cn
    443 Krävs av den lokalt installerade integrationskörningen för att ansluta till datamigreringstjänsten.
    För nyskapad Data Factory i det offentliga molnet letar du upp FQDN från din lokalt installerad Integration Runtime-nyckel, som är i formatet {datafactory}.{region}.datafactory.azure.net. Om du inte ser FQDN i din lokalt installerad integrationsnyckel använder du *.frontend.clouddatahub.net i stället för gammal datafabrik.
    download.microsoft.com 443 Krävs av den lokalt installerade integrationskörningen för nedladdning av uppdateringarna. Om du har inaktiverat automatisk uppdatering kan du hoppa över att konfigurera den här domänen.
    *.core.windows.net 443 Används av den lokalt installerade integrationskörningen som ansluter till Azure Storage-kontot för att ladda upp databassäkerhetskopior från din nätverksresurs

    Om dina databassäkerhetskopieringsfiler redan finns i ett Azure Storage-konto krävs inte lokalt installerad integrationskörning under migreringsprocessen.

  • När du använder lokalt installerad integrationskörning kontrollerar du att datorn där körningen är installerad kan ansluta till SQL Server-källinstansen och nätverksfilresursen där säkerhetskopieringsfiler finns.

  • Utgående port 445 ska vara aktiverad för åtkomst till nätverksfilresursen.

  • Om du använder Azure Database Migration Service för första gången kontrollerar du att Resursprovidern Microsoft.DataMigration är registrerad i din prenumeration. Du kan följa stegen för att registrera resursprovidern

    Om migreringsmålet är Azure SQL Database behöver du inte säkerhetskopior för att utföra den här migreringen. Migreringen till Azure SQL Database anses vara en logisk migrering som omfattar databasens förskapande och dataförflyttning (utförs av DMS).

Automatisera databasmigreringar

Med Azure PowerShell Az.DataMigration eller Azure CLI az datamigration kan du migrera databaser genom att automatisera skapandet av Azure Database Migration Service, konfigurera databasmigreringar för onlinemigrering och utföra en snabb migrering. Det finns flera fler kommandon och funktioner som dokumenteras i Azure-exempel.

Exempel på hur du automatiserar migreringen av en SQL Server-databas med Hjälp av Azure CLI: Steg 1: Skapa Azure Database Migration Service, som samordnar databasens migreringsaktiviteter.

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

Steg 2: Konfigurera och starta onlinedatabasmigrering från SQL Server lokalt (med säkerhetskopior i Azure Storage) till 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

Steg 3: Utför en snabb migrering när alla säkerhetskopior har återställts till 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

Om du får felet "Prenumerationen är inte registrerad för att använda namnområdet Microsoft.DataMigration". Se https://aka.ms/rps-not-found hur du registrerar prenumerationer" kör du följande kommando:

Register-AzResourceProvider -ProviderNamespace "Microsoft.DataMigration"