Cloud & IT Cert Prep · Les

Best practices voor databasemigratie

Gebruik de Azure Database Migration Service om een SQL Server-database met minimale downtime naar Azure SQL te migreren en los veelvoorkomende schema- en compatibiliteitsproblemen op.

Les 4 van 413 stappen

Best practices voor databasemigratie is een gratis Cloud & IT Cert Prep-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Cloud & IT Cert Prep. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Cloud & IT Cert Prep bevat in totaal 4 lessen.

Waarom databasemigratie anders is

Het migreren van een database is complexer dan het verplaatsen van een VM, omdat databases status bijhouden en vaak 24 uur per dag actieve verbindingen hebben. Bij een naïeve aanpak waarbij je alleen kopieert en herstelt, is urenlange uitvaltijd nodig, wat voor productiesystemen onaanvaardbaar is. Bij een best-practice-databasemigratie gebruik je continue gegevensreplicatie om de bron en het doel gesynchroniseerd te houden terwijl het doel wordt gevalideerd. Daarna voer je een korte, geplande overschakeling uit waarbij het verkeer naar de nieuwe Azure-database wordt omgeleid.

Azure Database Migration Service

Azure Database Migration Service (DMS) is een volledig beheerde service die online migraties (met vrijwel geen uitvaltijd) en offline migraties (op basis van uitvaltijd) orkestreert van populaire lokale database-engines naar beheerde databaseservices van Azure. DMS ondersteunt onder andere SQL Server, MySQL, PostgreSQL, MongoDB en Oracle als bron, en Azure SQL Database, Azure SQL Managed Instance, Azure Database for MySQL en Azure Cosmos DB als doel. De service integreert met Data Migration Assistant (DMA) voor compatibiliteitscontroles vóór de migratie.

# Create a DMS instance
az dms create \
  --service-name myDMS \
  --resource-group myRG \
  --location eastus \
  --sku-name Premium_4vCores \
  --vnet myVnet \
  --subnet mySubnet

Beoordeling vóór de migratie met DMA

Voer vóór het migreren van SQL Server Data Migration Assistant (DMA) uit op de brondatabase. DMA identificeert: compatibiliteitsproblemen (functies die in je database worden gebruikt maar niet door het Azure SQL-doel worden ondersteund), wijzigingen die compatibiliteit verbreken, verouderde functies en prestatieaanbevelingen. Het genereert een gedetailleerd HTML-rapport waarin problemen op ernst worden gerangschikt, zodat je team ze kan oplossen voordat het migratievenster begint.

# 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- versus offlinemigratie

Bij een offlinemigratie wordt de brondatabase gedurende de hele migratie offline gehaald — dit is aanvaardbaar voor kleine databases of niet-kritieke systemen waarvoor een onderhoudsvenster haalbaar is. Een onlinemigratie gebruikt change data capture (CDC) of verzending van transactielogboeken om wijzigingen continu te repliceren terwijl de nieuwe database wordt geladen. Zo blijft de uitvaltijd beperkt tot alleen de laatste overschakelingsstap. Onlinemigratie wordt aanbevolen voor databases groter dan 1 GB of met SLA's die minder dan 1 uur uitvaltijd vereisen.

Een DMS-migratieproject configureren

Een DMS-migratieproject specificeert de bronverbinding (servernaam, verificatie en databasenamen), de doelverbinding (Azure SQL-verbindingsreeks) en de migratiemodus (online of offline). Je selecteert ook welke databases en tabellen je wilt migreren. DMS valideert de connectiviteit voordat het begint. Het migratieproject blijft bewaard in de Azure-portal, zodat je de voortgang kunt bewaken, mislukte tabellen opnieuw kunt proberen en gedetailleerde activiteitenlogboeken kunt bekijken.

# 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 eastus

Eerst het schema migreren

Migreer altijd eerst het schema en daarna de gegevens. Gebruik DMA of SQL Server Management Studio (SSMS) om tabellen, weergaven, opgeslagen procedures, functies en indexen te scripten en te implementeren in de Azure SQL Database. Controleer of alle schemaobjecten bestaan en zonder fouten worden gecompileerd voordat je DMS gegevens laat overdragen. Schemafouten die je tijdens de migratie ontdekt, kunnen de migratie-uitvoering beschadigen en je dwingen helemaal opnieuw te beginnen.

# Generate schema scripts using sqlpackage
sqlpackage /Action:Script \
  /SourceServerName:myOnPremServer \
  /SourceDatabaseName:AdventureWorks \
  /TargetServerName:mysqlserver.database.windows.net \
  /TargetDatabaseName:AdventureWorksAzure \
  /OutputPath:/tmp/schema.sql

Eerste gegevenslading

DMS voert een volledige gegevenslading uit door de brondatabase tabel voor tabel te lezen en rijen met bulk-invoeging naar het Azure SQL-doel te schrijven. Tijdens de volledige lading verwerkt de service grote tabellen door ze op te delen in batches. Indexen op het doel worden tijdens het laden uitgeschakeld om de doorvoer te maximaliseren en daarna opnieuw opgebouwd. Overweeg voor zeer grote databases (op TB-schaal) Azure Data Factory of bacpac-exports om gegevens vooraf te laden en de uitvoertijd van DMS te verkorten.

Change Data Capture voor online synchronisatie

Voor online migraties schakelt DMS SQL Server Change Data Capture (CDC) in op de bron om INSERT-, UPDATE- en DELETE-bewerkingen vast te leggen die plaatsvinden terwijl de volledige lading bezig is. Zodra de volledige lading is voltooid, speelt DMS deze vastgelegde wijzigingen opnieuw af op het doel en verkleint zo geleidelijk het verschil. Wanneer de vertraging bijna nul is, is de database klaar voor de omschakeling. Voor CDC moet de SQL Server Agent actief zijn en moet de brondatabase de modus full recovery gebruiken.

-- 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;

Omschakeling en validatie

Wanneer de CDC-achterstand minimaal is, start u de omschakeling in de DMS-portal. DMS accepteert geen nieuwe CDC-gebeurtenissen meer, past resterende wijzigingen toe en markeert de migratie als voltooid. Vervolgens verwijst u de verbindingsreeksen van de toepassing door naar het Azure SQL-eindpunt. Voer gegevensvalidatiequery's uit waarin u voor kritieke tabellen de aantallen rijen en controlesomtotalen tussen bron en doel vergelijkt. Houd de brondatabase na de omschakeling 24–48 uur in de modus alleen-lezen voor het geval een terugdraaiing nodig is.

-- Validate row counts post-cutover
SELECT TABLE_NAME, TABLE_ROWS
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'dbo'
ORDER BY TABLE_NAME;

Prestaties afstemmen na de migratie

Na de migratie kan Azure SQL Database anders presteren dan SQL Server in uw eigen datacenter door verschillen in queryplancaches, statistieken en hardware. Voer de Database Experimentation Assistant (DEA) uit om werklasttraceringen opnieuw af te spelen op het Azure-doel en uitvoeringsplannen te vergelijken. Schakel Automatic Tuning in Azure SQL in, zodat de service automatisch indexen kan maken of verwijderen en queryplannen zonder regressies kan afdwingen. Zo verbeteren de prestaties na verloop van tijd zonder handmatige tussenkomst.

-- Enable Automatic Tuning on Azure SQL Database
ALTER DATABASE CURRENT SET AUTOMATIC_TUNING (
  FORCE_LAST_GOOD_PLAN = ON,
  CREATE_INDEX = ON,
  DROP_INDEX = OFF
);

Migratie van andere database-engines

DMS migreert ook opensource-engines: MySQL naar Azure Database for MySQL met het patroon mysqldump + binlog-replicatie, en PostgreSQL naar Azure Database for PostgreSQL met logische replicatieslots. Gebruik voor migraties van MongoDB naar Cosmos DB de Cosmos DB for MongoDB-API en de systeemeigen mongodump / mongorestore-pijplijn, of de MongoDB-connector van Azure Data Factory voor incrementele CDC. Test de migratie altijd eerst op een niet-productiekopie voordat u deze uitvoert op actieve gegevens.

# 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.sql

Korte controle

Test uw begrip van de concepten uit Microsoft Azure Fundamentals (AZ-900) in deze les.

Samenvatting van de les

In deze les hebt u geleerd dat Azure Database Migration Service online en offline databasemigraties orkestreert, dat een migratiebeoordeling vóór de migratie met DMA compatibiliteitsproblemen vóór het migratievenster opspoort en dat change data capture een omschakeling met vrijwel geen downtime voor productiedatabases mogelijk maakt. Hierna richten we ons op het optimaliseren van Azure-kosten.

Gratis beginnen

Leer Cloud & IT Cert Prep met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
150
Lessen
600

Veelgestelde vragen

Is de les “Best practices voor databasemigratie” gratis?

Ja — de volledige tekst van “Best practices voor databasemigratie” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Cloud & IT Cert Prep wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Cloud & IT Cert Prep bevat in totaal 4 lessen.

Wat leer ik in “Best practices voor databasemigratie”?

Gebruik de Azure Database Migration Service om een SQL Server-database met minimale downtime naar Azure SQL te migreren en los veelvoorkomende schema- en compatibiliteitsproblemen op. Je oefent met Cloud & IT Cert Prep door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Cloud & IT Cert Prep te beginnen?

Ervaring vooraf is niet nodig. Cloud & IT Cert Prep op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “Best practices voor databasemigratie”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Cloud & IT Cert Prep?

Ja. Elke les over Cloud & IT Cert Prep bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Het 6-R-migratieframework
  2. Azure Migrate: detectie en beoordeling
  3. Rehosten met Azure Migrate (lift-and-shift)
  4. Best practices voor databasemigratie
← Terug naar Cloud & IT Cert Prep