Metodtips för databasmigrering
Använd Azure Database Migration Service för att migrera en SQL Server-databas till Azure SQL med minimal nedtid och åtgärda vanliga schema- och kompatibilitetsproblem.
Metodtips för databasmigrering är en gratis lektion i Cloud & IT Cert Prep på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Cloud & IT Cert Prep, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Cloud & IT Cert Prep innehåller totalt 4 lektioner.
Varför databasmigrering skiljer sig
Att migrera en databas är mer komplext än att flytta en VM, eftersom databaser är tillståndsbevarande och ofta har aktiva anslutningar dygnet runt. En naiv kopierings- och återställningsmetod kräver flera timmars driftstopp, vilket inte är acceptabelt för produktionssystem. Bästa praxis för databasmigrering använder kontinuerlig datareplikering för att hålla källan och målet synkroniserade medan målet valideras. Därefter genomförs en kort, planerad övergång när trafiken dirigeras om till den nya Azure-databasen.
Azure Database Migration Service
Azure Database Migration Service (DMS) är en fullständigt hanterad tjänst som samordnar online-migreringar (nästan utan driftstopp) och offline-migreringar (baserade på driftstopp) från populära lokala databasmotorer till Azure-hanterade databastjänster. DMS stöder källor som SQL Server, MySQL, PostgreSQL, MongoDB, Oracle och mål som Azure SQL Database, Azure SQL Managed Instance, Azure Database for MySQL och Azure Cosmos DB. Tjänsten integreras med Data Migration Assistant (DMA) för kompatibilitetskontroller före migreringen.
# Create a DMS instance
az dms create \
--service-name myDMS \
--resource-group myRG \
--location eastus \
--sku-name Premium_4vCores \
--vnet myVnet \
--subnet mySubnetFörmigreringsbedömning med DMA
Innan du migrerar SQL Server ska du köra Data Migration Assistant (DMA) mot källdatabasen. DMA identifierar: kompatibilitetsproblem (funktioner som används i databasen men som inte stöds av Azure SQL-målet), bakåtinkompatibla ändringar, utfasade funktioner och prestandarekommendationer. Verktyget genererar en detaljerad HTML-rapport som prioriterar problemen efter allvarlighetsgrad, så att teamet kan åtgärda dem innan migreringsfönstret börjar.
# Run DMA assessment from CLI (Windows only)
# DmaCmd.exe /AssessmentName='SQL2022toAzureSQL' \
# /AssessmentSourcePlatform='SqlOnPrem' \
# /AssessmentTargetPlatform='AzureSqlDatabase' \
# /AssessmentDatabases='Server=myServer;Initial Catalog=AdventureWorks;Integrated Security=true'Online- jämfört med offline-migrering
En offline-migrering tar källdatabasen offline under hela migreringen. Det är acceptabelt för små databaser eller icke-kritiska system där ett underhållsfönster är möjligt. En online-migrering använder change data capture (CDC) eller transaktionsloggsändning för att kontinuerligt replikera ändringar medan den nya databasen läses in, vilket begränsar driftstoppet till det avslutande övergångssteget. Online-migrering rekommenderas för databaser som är större än 1 GB eller har SLA:er som kräver mindre än 1 timmes driftstopp.
Konfigurera ett DMS-migreringsprojekt
Ett DMS-migreringsprojekt anger källanslutningen (servernamn, autentisering och databasnamn), målanslutningen (Azure SQL-anslutningssträng) och migreringsläget (online eller offline). Du väljer även vilka databaser och tabeller som ska migreras. DMS validerar anslutningen innan starten. Migreringsprojektet sparas i Azure-portalen, så att du kan övervaka förloppet, försöka migrera misslyckade tabeller igen och visa detaljerade aktivitetsloggar.
# Create a DMS project for SQL Server to Azure SQL Database
az dms project create \
--service-name myDMS \
--resource-group myRG \
--name SQL2AzureSQL \
--source-platform SQL \
--target-platform SQLDB \
--location eastusMigrera schemat först
Migrera alltid schemat före data. Använd DMA eller SQL Server Management Studio (SSMS) för att skapa skript för och distribuera tabeller, vyer, lagrade procedurer, funktioner och index till Azure SQL Database-målet. Kontrollera att alla schemaobjekt finns och kompileras utan fel innan du låter DMS börja överföra data. Schemafel som upptäcks under migreringen kan förstöra migreringskörningen och tvinga dig att börja om från början.
# Generate schema scripts using sqlpackage
sqlpackage /Action:Script \
/SourceServerName:myOnPremServer \
/SourceDatabaseName:AdventureWorks \
/TargetServerName:mysqlserver.database.windows.net \
/TargetDatabaseName:AdventureWorksAzure \
/OutputPath:/tmp/schema.sqlInitial datainläsning
DMS genomför en fullständig datainläsning genom att läsa källdatabasen tabell för tabell och skriva rader till Azure SQL-målet med hjälp av bulk insert. Under den fullständiga inläsningen hanterar tjänsten stora tabeller genom att dela upp dem i batchar. Index på målet inaktiveras under inläsningen för att maximera genomströmningen och återskapas sedan. För mycket stora databaser (i terabyteklass) bör Ni överväga att använda Azure Data Factory eller bacpac-exporter för att läsa in data i förväg och minska DMS-körtiden.
Change Data Capture för onlinesynkronisering
Vid onlinemigreringar aktiverar DMS SQL Server Change Data Capture (CDC) på källan för att fånga INSERT-, UPDATE- och DELETE-åtgärder som sker medan den fullständiga inläsningen pågår. När den fullständiga inläsningen är klar spelar DMS upp de fångade ändringarna på målet och minskar gradvis skillnaden. När latensen sjunker till nära noll är databasen redo för växling. CDC kräver att SQL Server Agent körs och att källdatabasen använder läget full recovery.
-- Enable CDC on source database
EXEC sys.sp_cdc_enable_db;
-- Enable CDC on specific table
EXEC sys.sp_cdc_enable_table
@source_schema = N'dbo',
@source_name = N'Orders',
@role_name = NULL;Växling och validering
När CDC-fördröjningen är minimal initierar Ni växlingen i DMS-portalen. DMS slutar ta emot nya CDC-händelser, tillämpar återstående ändringar och markerar migreringen som slutförd. Därefter omdirigerar Ni programmets anslutningssträngar till Azure SQL-slutpunkten. Kör frågor för datavalidering som jämför radantal och kontrollsummeaggregat mellan källa och mål för kritiska tabeller. Behåll källdatabasen i skrivskyddat läge i 24–48 timmar efter växlingen, ifall en återställning skulle behövas.
-- Validate row counts post-cutover
SELECT TABLE_NAME, TABLE_ROWS
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'dbo'
ORDER BY TABLE_NAME;Prestandajustering efter migreringen
Efter migreringen kan Azure SQL Database fungera annorlunda än SQL Server lokalt, på grund av skillnader i cachelagring av frågeplaner, statistik och maskinvara. Kör Database Experimentation Assistant (DEA) för att spela upp arbetsbelastningsspår på Azure-målet och jämföra exekveringsplaner. Aktivera Automatic Tuning i Azure SQL så att tjänsten automatiskt kan skapa eller ta bort index och tvinga fram frågeplaner utan prestandaregressioner, vilket förbättrar prestandan över tid utan manuella åtgärder.
-- Enable Automatic Tuning on Azure SQL Database
ALTER DATABASE CURRENT SET AUTOMATIC_TUNING (
FORCE_LAST_GOOD_PLAN = ON,
CREATE_INDEX = ON,
DROP_INDEX = OFF
);Migrering av andra databasmotorer
DMS migrerar även open source-motorer: MySQL till Azure Database for MySQL med mönstret mysqldump + binlog replication och PostgreSQL till Azure Database for PostgreSQL med logiska replikeringsplatser. Vid migreringar från MongoDB till Cosmos DB använder Ni Cosmos DB for MongoDB API och den inbyggda pipelinen mongodump / mongorestore eller Azure Data Factorys MongoDB-anslutning för inkrementell CDC. Testa alltid migreringen på en kopia som inte är en produktionsmiljö innan Ni kör den mot aktiva data.
# Offline MySQL migration using mysqldump
mysqldump -h source-server -u admin -p \
--single-transaction --routines --triggers \
myDatabase > /tmp/myDatabase.sql
# Restore to Azure Database for MySQL
mysql -h myserver.mysql.database.azure.com \
-u adminUser@myserver -p myDatabase < /tmp/myDatabase.sqlSnabbkontroll
Testa Er förståelse av begreppen i Microsoft Azure Fundamentals (AZ-900) från den här lektionen.
Lektionssammanfattning
I den här lektionen har Ni lärt Er att Azure Database Migration Service samordnar online- och offlinemigreringar av databaser, att förmigreringsutvärdering med DMA upptäcker kompatibilitetsproblem före migreringsfönstret och att change data capture möjliggör växling med nästan ingen driftstoppstid för produktionsdatabaser. Nästa avsnitt handlar om att optimera Azure-kostnader.
Lär dig Cloud & IT Cert Prep med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 150
- Lektioner
- 600
Vanliga frågor
Är lektionen ”Metodtips för databasmigrering” gratis?
Ja – hela texten till ”Metodtips för databasmigrering” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Cloud & IT Cert Prep, kan Ni uppgradera till CoddyKit PRO. Kursen i Cloud & IT Cert Prep innehåller totalt 4 lektioner.
Vad lär jag mig i ”Metodtips för databasmigrering”?
Använd Azure Database Migration Service för att migrera en SQL Server-databas till Azure SQL med minimal nedtid och åtgärda vanliga schema- och kompatibilitetsproblem. Ni övar på Cloud & IT Cert Prep med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Cloud & IT Cert Prep?
Du behöver inga förkunskaper. Utbildningen i Cloud & IT Cert Prep på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Metodtips för databasmigrering”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Cloud & IT Cert Prep-lektionen?
Ja. Varje Cloud & IT Cert Prep-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Migreringsramverket med sex R
- Azure Migrate: identifiering och bedömning
- Rehost med Azure Migrate (lift-and-shift)
- Metodtips för databasmigrering