AWS Solutions Architect · Lektion

Database Migration Service (DMS) och Schema Conversion Tool

Migrera homogena och heterogena databaser med DMS genom fullständig inläsning eller CDC och konvertera schemadialekter med Schema Conversion Tool.

Lektion 4 av 413 steg

Database Migration Service (DMS) och Schema Conversion Tool är en gratis lektion i AWS Solutions Architect på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för AWS Solutions Architect, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i AWS Solutions Architect innehåller totalt 4 lektioner.

Vad är AWS DMS?

AWS Database Migration Service (DMS) migrerar databaser till AWS med minimal driftstoppstid. Tjänsten stöder homogena migreringar (t.ex. Oracle till Oracle och MySQL till MySQL) samt heterogena migreringar (t.ex. Oracle till Aurora PostgreSQL och SQL Server till MySQL). DMS använder en replikeringsinstans som läser från källan, eventuellt transformerar data och skriver till målet. Ni betalar endast för replikeringsinstansens körtid.

DMS-komponenter: endpoints och replikeringsinstans

DMS har tre viktiga komponenter. Source Endpoints definierar anslutningen till källdatabasen (JDBC-URL, autentiseringsuppgifter och TLS). Target Endpoints definierar måldatabasen. Replication Instance är en hanterad, EC2-baserad server som DMS etablerar i Er VPC för att köra migreringsarbetsbelastningen. Välj storlek på replikeringsinstansen utifrån hur mycket data som ska migreras och om Ni vill använda multi-AZ för själva replikeringsinstansen.

# Create a DMS replication instance
aws dms create-replication-instance \
  --replication-instance-identifier my-dms-instance \
  --replication-instance-class dms.t3.medium \
  --allocated-storage 50 \
  --vpc-security-group-ids sg-abc123 \
  --replication-subnet-group-identifier my-dms-subnet-group \
  --multi-az false \
  --publicly-accessible false

Migrering med Full Load jämfört med CDC

DMS stöder två migreringslägen. Full Load kopierar alla befintliga data från källan till målet — lämpligt när Ni kan acceptera driftstopp eller när källan är skrivskyddad under migreringen. Change Data Capture (CDC) fångar fortlöpande ändringar från källans transaktionslogg efter att full load har slutförts och håller källan och målet synkroniserade. En kombinerad migrering med Full Load + CDC minimerar driftstoppstiden: migrera data medan källan fortfarande är i drift och genomför sedan övergången när målet har kommit ikapp.

# Create a DMS replication task with Full Load + CDC
aws dms create-replication-task \
  --replication-task-identifier sales-migration \
  --source-endpoint-arn arn:aws:dms:us-east-1:123:endpoint:SOURCE \
  --target-endpoint-arn arn:aws:dms:us-east-1:123:endpoint:TARGET \
  --replication-instance-arn arn:aws:dms:us-east-1:123:rep:my-dms-instance \
  --migration-type full-load-and-cdc \
  --table-mappings '{"rules": [{"rule-type": "selection", "rule-id": "1", "rule-name": "all", "object-locator": {"schema-name": "%", "table-name": "%"}, "rule-action": "include"}]}'

Schema Conversion Tool (SCT)

AWS Schema Conversion Tool (SCT) är ett kostnadsfritt program som kan laddas ned och som automatiskt konverterar källdatabasens schema (DDL) till ett format som är kompatibelt med måldatabasmotorn. Det hanterar tabelldefinitioner, vyer, lagrade procedurer, funktioner och triggers. Vid heterogena migreringar (t.ex. Oracle till PostgreSQL) konverterar SCT automatiskt de flesta objekt och markerar sådant som kräver manuell granskning på grund av skillnader i syntax som inte stöds.

# SCT is a GUI desktop tool, but here is the workflow:
# 1. Connect SCT to source Oracle database
# 2. Connect SCT to target Aurora PostgreSQL database
# 3. Run schema assessment: SCT rates conversion complexity per object
# 4. Convert schema automatically (SCT generates PostgreSQL DDL)
# 5. Apply converted DDL to target (SCT executes or exports SQL script)
# 6. Review and manually fix flagged items (e.g., PL/SQL procedures with Oracle-specific syntax)

Homogen jämfört med heterogen migrering

Vid homogena migreringar (samma motor, t.ex. MySQL lokalt till RDS for MySQL) behövs SCT vanligtvis inte — schemat är direkt kompatibelt. DMS kan omedelbart köra Full Load + CDC. Vid heterogena migreringar (olika motorer) måste SCT först konvertera schemat, DMS hanterar datamigreringen och Ni kan behöva skriva om lagrade procedurer och triggers manuellt om de saknar motsvarighet i målmotor.

# Example heterogeneous migration workflow:
# On-premises Oracle -> Amazon Aurora PostgreSQL
#
# Step 1: SCT converts Oracle DDL to PostgreSQL DDL
# Step 2: Apply PostgreSQL DDL to Aurora target
# Step 3: DMS Full Load + CDC copies Oracle table data to Aurora
# Step 4: Validate row counts and checksums
# Step 5: Cut over application connections to Aurora endpoint
# Step 6: Terminate DMS task and replication instance

Databaser som stöds som källa och mål

DMS stöder ett stort antal källor: Oracle, SQL Server, MySQL, MariaDB, PostgreSQL, SAP ASE, MongoDB, IBM Db2 och S3. Bland de mål som stöds finns alla ovanstående samt Amazon Redshift, DynamoDB, Kinesis Data Streams och Kafka. Det gör DMS användbart inte bara för relationella migreringar utan även för att strömma relationella ändringshändelser till ett data lake- eller händelsestyrt arkitekturlandskap med CDC till Kinesis.

Regler för DMS-tabellmappning

DMS använder regler för tabellmappning (JSON) för att styra vilka scheman och tabeller som ska inkluderas eller exkluderas samt för att tillämpa datatransformeringar. Ni kan byta namn på scheman eller tabeller, konvertera kolumnvärden (t.ex. göra alla strängar till versaler), lägga till härledda kolumner eller filtrera rader. Detta är användbart när Ni migrerar till ett mål med andra namnkonventioner eller endast vill migrera en delmängd av tabellerna.

# Table mapping: include only the 'orders' table, rename schema
{
  'rules': [
    {
      'rule-type': 'selection',
      'rule-id': '1',
      'rule-name': 'select-orders',
      'object-locator': {'schema-name': 'prod_db', 'table-name': 'orders'},
      'rule-action': 'include'
    },
    {
      'rule-type': 'transformation',
      'rule-id': '2',
      'rule-name': 'rename-schema',
      'rule-action': 'convert-uppercase',
      'rule-target': 'schema',
      'object-locator': {'schema-name': 'prod_db'}
    }
  ]
}

Övervaka DMS-migreringens förlopp

DMS publicerar mätvärden till CloudWatch: FullLoadThroughputRowsSource (antal inlästa rader per sekund), CDCLatencySource (fördröjningen mellan källans transaktionslogg och när DMS läser den) och CDCLatencyTarget (fördröjningen mellan när DMS läser från och skriver till målet). Övervaka CDCLatencyTarget noggrant under synkroniseringsfasen — när värdet sjunker till nära noll har målet kommit ikapp källan och Ni är redo för övergången.

# Monitor CDC latency via CloudWatch CLI
aws cloudwatch get-metric-statistics \
  --namespace AWS/DMS \
  --metric-name CDCLatencyTarget \
  --dimensions Name=ReplicationInstanceIdentifier,Value=my-dms-instance \
  --start-time 2024-01-01T00:00:00Z \
  --end-time 2024-01-01T01:00:00Z \
  --period 60 \
  --statistics Average

DMS Serverless

DMS Serverless etablerar och skalar automatiskt replikeringskapaciteten utifrån migreringsarbetsbelastningen, vilket eliminerar behovet av att välja och hantera storleken på en replikeringsinstans. Ni anger minsta och högsta antal DMS-kapacitetsenheter (DCU), och DMS skalar automatiskt inom detta intervall. Detta är idealiskt för migreringar med varierande belastning eller när Ni vill undvika risken att replikeringsinstansen är underdimensionerad under perioder med hög migreringsbelastning.

# Create a DMS Serverless replication
aws dms create-replication \
  --replication-config-identifier my-serverless-migration \
  --replication-type full-load-and-cdc \
  --source-endpoint-arn arn:aws:dms:us-east-1:123:endpoint:SOURCE \
  --target-endpoint-arn arn:aws:dms:us-east-1:123:endpoint:TARGET \
  --compute-config '{
    "MinCapacityUnits": 2,
    "MaxCapacityUnits": 64,
    "MultiAZ": false,
    "ReplicationSubnetGroupId": "my-subnet-group",
    "VpcSecurityGroupIds": ["sg-abc123"]
  }'

Validera att migreringen är fullständig

Efter migreringen validerar Ni att alla data finns med genom DMS Data Validation. Aktivera funktionen i aktivitetsinställningarna, så jämför DMS radantal och kontrollsummor mellan källans och målets tabeller och rapporterar avvikelser i en separat valideringstabell. Vid heterogena migreringar bör Ni även köra grundläggande tester på applikationsnivå. Genomför aldrig övergången innan valideringen visar noll avvikelser — att korrigera data efter en felaktig övergång är betydligt mer kostsamt än att lägga extra tid på valideringen.

# Enable validation in DMS task settings (JSON)
{
  'TargetMetadata': {'SupportLobs': true, 'FullLobMode': false},
  'ValidationSettings': {
    'EnableValidation': true,
    'ValidationMode': 'ROW_LEVEL',
    'ValidationOnly': false,
    'FailureMaxCount': 10000
  }
}

Vanliga tentamensscenarier för DMS

I SAA-C03-examen förekommer DMS i scenarier som kräver databasmigrering med minimal driftstoppstid. Viktiga signaler är: 'migrate database with ongoing replication' → DMS Full Load + CDC. 'heterogeneous engine change' → SCT först, därefter DMS. 'replicate changes in near real time to a data lake' → DMS CDC till Kinesis eller S3. 'consolidate multiple source databases into one target' → flera DMS-aktiviteter till en målendpoint. DMS är specifikt avsett för databasmigrering — använd MGN för servermigrering och DataSync eller Snowball för massöverföring av data.

Snabb kontroll

Testa Er förståelse av koncepten i AWS Solutions Architect (SAA-C03) från den här lektionen.

Sammanfattning av lektionen

I den här lektionen har Ni lärt Er att DMS stöder både homogena och heterogena databasmigreringar med lägena Full Load och CDC, att SCT automatiserar schemakonvertering vid motorbyten och markerar sådant som behöver granskas manuellt och att DMS Serverless skalar replikeringskapaciteten automatiskt och eliminerar beslut om instansstorlek. Nästa del handlar om Amazon EventBridge för händelsestyrd routing och bussarkitektur.

Gratis att börja

Lär dig AWS Solutions Architect 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
30
Lektioner
120

Vanliga frågor

Är lektionen ”Database Migration Service (DMS) och Schema Conversion Tool” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen AWS Solutions Architect, inklusive ”Database Migration Service (DMS) och Schema Conversion Tool”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i AWS Solutions Architect innehåller totalt 4 lektioner.

Vad lär jag mig i ”Database Migration Service (DMS) och Schema Conversion Tool”?

Migrera homogena och heterogena databaser med DMS genom fullständig inläsning eller CDC och konvertera schemadialekter med Schema Conversion Tool. Ni övar på AWS Solutions Architect 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 AWS Solutions Architect?

Du behöver inga förkunskaper. Utbildningen i AWS Solutions Architect 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 ”Database Migration Service (DMS) och Schema Conversion Tool”?

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 AWS Solutions Architect-lektionen?

Ja. Varje AWS Solutions Architect-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

  1. Migreringsstrategins 7 R
  2. AWS Migration Hub och Application Discovery Service
  3. Application Migration Service (MGN)
  4. Database Migration Service (DMS) och Schema Conversion Tool
← Tillbaka till AWS Solutions Architect