0Pricing
Cloud & IT Cert Prep · บทเรียน

Database Migration Service (DMS) และ Schema Conversion Tool

ย้ายฐานข้อมูลแบบชนิดเดียวกันและต่างชนิดด้วย DMS โดยใช้การโหลดทั้งหมดหรือ CDC และแปลงภาษาของโครงสร้างฐานข้อมูลด้วย Schema Conversion Tool

Database Migration Service (DMS) และ Schema Conversion Tool เป็นบทเรียน Cloud & IT Cert Prep ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cloud & IT Cert Prep และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cloud & IT Cert Prep มีบทเรียนทั้งหมด 4 บทเรียน

AWS DMS คืออะไร

AWS Database Migration Service (DMS) ใช้ย้ายฐานข้อมูลไปยัง AWS โดยมีเวลาหยุดทำงานน้อยที่สุด รองรับการย้ายแบบ homogeneous (เช่น Oracle ไปยัง Oracle, MySQL ไปยัง MySQL) และแบบ heterogeneous (เช่น Oracle ไปยัง Aurora PostgreSQL, SQL Server ไปยัง MySQL) DMS ใช้อินสแตนซ์ Replication ซึ่งอ่านข้อมูลจากต้นทาง แปลงข้อมูลได้ตามต้องการ และเขียนข้อมูลไปยัง target คุณจ่ายเฉพาะเวลาที่อินสแตนซ์ Replication ทำงาน

ส่วนประกอบของ DMS: Endpoints และ Replication Instance

DMS มีส่วนประกอบสำคัญสามส่วน Source Endpoints กำหนดการเชื่อมต่อฐานข้อมูลต้นทาง (URL ของ JDBC ข้อมูลรับรอง และ TLS) Target Endpoints กำหนดฐานข้อมูลปลายทาง ส่วน Replication Instance คือเซิร์ฟเวอร์ที่มีการจัดการบน EC2 ซึ่ง DMS จัดเตรียมไว้ใน VPC ของคุณเพื่อทำงานย้ายข้อมูล ให้เลือกขนาดอินสแตนซ์ Replication ตามปริมาณข้อมูลที่ต้องย้าย และพิจารณาว่าต้องการ MultiAZ สำหรับตัวอินสแตนซ์ Replication เองหรือไม่

# 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

การย้ายแบบ Full Load เทียบกับ CDC

DMS รองรับโหมดการย้ายสองแบบ Full Load จะคัดลอกข้อมูลที่มีอยู่ทั้งหมดจากต้นทางไปยัง target เหมาะเมื่อคุณยอมรับเวลาหยุดทำงานได้ หรือเมื่อต้นทางเป็นแบบอ่านอย่างเดียวระหว่างการย้าย Change Data Capture (CDC) จะจับการเปลี่ยนแปลงที่เกิดขึ้นต่อเนื่องจากบันทึกธุรกรรมของต้นทางหลัง Full Load เสร็จสิ้น ทำให้ต้นทางและ target สอดคล้องกัน การย้ายแบบรวม Full Load + CDC ช่วยลดเวลาหยุดทำงาน โดยย้ายข้อมูลขณะที่ต้นทางยังให้บริการอยู่ แล้วสลับระบบเมื่อ target ตามข้อมูลทัน

# 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 (SCT)

AWS Schema Conversion Tool (SCT) เป็นแอปพลิเคชันที่ดาวน์โหลดได้ฟรี ซึ่งแปลง schema ฐานข้อมูลต้นทาง (DDL) เป็นรูปแบบที่เข้ากันได้กับกลไกฐานข้อมูลเป้าหมายโดยอัตโนมัติ เครื่องมือนี้จัดการคำจำกัดความของตาราง มุมมอง กระบวนงานที่จัดเก็บไว้ ฟังก์ชัน และทริกเกอร์ สำหรับการย้ายแบบ heterogeneous (เช่น Oracle ไปยัง PostgreSQL) SCT จะแปลงออบเจ็กต์ส่วนใหญ่โดยอัตโนมัติ และทำเครื่องหมายรายการที่ต้องตรวจสอบด้วยตนเองเนื่องจากไวยากรณ์ที่ไม่รองรับแตกต่างกัน

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

การย้ายแบบ homogeneous เทียบกับ heterogeneous

สำหรับการย้ายแบบ homogeneous (ใช้กลไกเดียวกัน เช่น MySQL ภายในองค์กรไปยัง RDS for MySQL) โดยทั่วไปไม่จำเป็นต้องใช้ SCT เนื่องจาก schema เข้ากันได้โดยตรง DMS สามารถเรียกใช้ Full Load + CDC ได้ทันที สำหรับการย้ายแบบ heterogeneous (ใช้กลไกต่างกัน) ต้องให้ SCT แปลง schema ก่อน จากนั้น DMS จึงจัดการย้ายข้อมูล และคุณอาจต้องเขียนกระบวนงานที่จัดเก็บไว้และทริกเกอร์ใหม่ด้วยตนเอง หากไม่มีสิ่งที่เทียบเท่าในกลไกเป้าหมาย

# 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

ฐานข้อมูลต้นทางและเป้าหมายที่รองรับ

DMS รองรับต้นทางหลากหลายประเภท ได้แก่ Oracle, SQL Server, MySQL, MariaDB, PostgreSQL, SAP ASE, MongoDB, IBM Db2 และ S3 เป้าหมายที่รองรับมีทั้งหมดข้างต้น รวมถึง Amazon Redshift, DynamoDB, Kinesis Data Streams และ Kafka ด้วยเหตุนี้ DMS จึงมีประโยชน์ไม่เฉพาะกับการย้ายฐานข้อมูลเชิงสัมพันธ์ แต่ยังใช้ส่งเหตุการณ์การเปลี่ยนแปลงจากฐานข้อมูลเชิงสัมพันธ์ไปยัง data lake หรือสถาปัตยกรรมที่ขับเคลื่อนด้วยเหตุการณ์ผ่าน CDC ไปยัง Kinesis ได้อีกด้วย

กฎการแมปตารางของ DMS

DMS ใช้ กฎการแมปตาราง (JSON) เพื่อควบคุมว่าจะรวมหรือตัด schema และตารางใดออก รวมถึงใช้การแปลงข้อมูล คุณสามารถเปลี่ยนชื่อ schema หรือตาราง แปลงค่าคอลัมน์ (เช่น เปลี่ยนสตริงทั้งหมดเป็นตัวพิมพ์ใหญ่) เพิ่มคอลัมน์ที่คำนวณขึ้น หรือกรองแถวได้ ฟังก์ชันนี้มีประโยชน์เมื่อย้ายไปยัง target ที่ใช้รูปแบบการตั้งชื่อต่างกัน หรือต้องการย้ายเฉพาะตารางบางส่วน

# 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'}
    }
  ]
}

การตรวจสอบความคืบหน้าการย้ายด้วย DMS

DMS เผยแพร่เมตริกไปยัง CloudWatch ได้แก่ FullLoadThroughputRowsSource (จำนวนแถวที่โหลดต่อวินาที) CDCLatencySource (ความล่าช้าระหว่างบันทึกธุรกรรมต้นทางกับการที่ DMS อ่านข้อมูล) และ CDCLatencyTarget (ความล่าช้าระหว่างการที่ DMS อ่านและเขียนข้อมูลไปยัง target) ให้ตรวจสอบ CDCLatencyTarget อย่างใกล้ชิดระหว่างระยะซิงค์ เมื่อค่าลดลงจนใกล้ศูนย์ แสดงว่า target ตามข้อมูลต้นทางทันแล้วและพร้อมสำหรับการสลับระบบ

# 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 จะจัดเตรียมและปรับขนาดความจุสำหรับการจำลองตามภาระงานการย้ายโดยอัตโนมัติ ทำให้ไม่ต้องเลือกและจัดการขนาดอินสแตนซ์ Replication คุณระบุหน่วยความจุ DMS ขั้นต่ำและสูงสุด (DCU) แล้ว DMS จะปรับขนาดอัตโนมัติภายในช่วงดังกล่าว เหมาะสำหรับการย้ายที่มีภาระงานเปลี่ยนแปลง หรือเมื่อต้องการหลีกเลี่ยงความเสี่ยงจากการเลือกขนาดอินสแตนซ์ Replication เล็กเกินไปในช่วงที่ภาระงานการย้ายสูงสุด

# 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"]
  }'

การตรวจสอบความครบถ้วนของการย้าย

หลังการย้าย ให้ตรวจสอบความครบถ้วนของข้อมูลด้วย Data Validation ของ DMS เปิดใช้งานฟังก์ชันนี้ในการตั้งค่างาน แล้ว DMS จะเปรียบเทียบจำนวนแถวและค่า checksum ระหว่างตารางต้นทางกับ target พร้อมรายงานข้อมูลที่ไม่ตรงกันไปยังตารางตรวจสอบแยกต่างหาก สำหรับการย้ายแบบ heterogeneous ให้ทำการทดสอบเบื้องต้นระดับแอปพลิเคชันด้วย อย่าสลับระบบจนกว่าการตรวจสอบจะแสดงว่าไม่มีความคลาดเคลื่อนเลย — การแก้ไขข้อมูลหลังการสลับระบบที่มีข้อบกพร่องมีค่าใช้จ่ายสูงกว่าการใช้เวลาเพิ่มเพื่อตรวจสอบอย่างมาก

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

สถานการณ์ DMS ที่พบบ่อยในการสอบ

ในการสอบ SAA-C03 มักพบ DMS ในสถานการณ์ที่ต้องการย้ายฐานข้อมูลโดยมีเวลาหยุดทำงานน้อยที่สุด สัญญาณสำคัญ ได้แก่ 'ย้ายฐานข้อมูลพร้อมการจำลองอย่างต่อเนื่อง' → DMS Full Load + CDC 'เปลี่ยนกลไกฐานข้อมูล' → ใช้ SCT ก่อน แล้วจึงใช้ DMS 'จำลองการเปลี่ยนแปลงเกือบแบบเรียลไทม์ไปยัง data lake' → DMS CDC ไปยัง Kinesis หรือ S3 'รวมฐานข้อมูลต้นทางหลายแห่งไว้ใน target เดียว' → ใช้งาน DMS หลายงานไปยัง target endpoint เดียว DMS ใช้สำหรับการย้ายฐานข้อมูลโดยเฉพาะ — หากเป็นการย้ายเซิร์ฟเวอร์ให้ใช้ MGN และหากเป็นการถ่ายโอนข้อมูลจำนวนมากให้ใช้ DataSync หรือ Snowball

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความเข้าใจแนวคิด AWS Solutions Architect (SAA-C03) จากบทเรียนนี้

สรุปบทเรียน

ในบทเรียนนี้ คุณได้เรียนรู้ว่า DMS รองรับการย้ายฐานข้อมูลทั้งแบบ homogeneous และ heterogeneous โดยใช้โหมด Full Load และ CDC SCT ช่วยทำให้การแปลง schema เป็นอัตโนมัติสำหรับการย้ายที่เปลี่ยนกลไกฐานข้อมูล และทำเครื่องหมายรายการที่ต้องตรวจสอบด้วยตนเอง และ DMS Serverless ปรับขนาดความจุการจำลองโดยอัตโนมัติ ทำให้ไม่ต้องตัดสินใจเลือกขนาดอินสแตนซ์ บทถัดไปเราจะศึกษา Amazon EventBridge สำหรับการกำหนดเส้นทางที่ขับเคลื่อนด้วยเหตุการณ์และสถาปัตยกรรมบัส

คำถามที่พบบ่อย

บทเรียน “Database Migration Service (DMS) และ Schema Conversion Tool” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “Database Migration Service (DMS) และ Schema Conversion Tool” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cloud & IT Cert Prep ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cloud & IT Cert Prep มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “Database Migration Service (DMS) และ Schema Conversion Tool”

ย้ายฐานข้อมูลแบบชนิดเดียวกันและต่างชนิดด้วย DMS โดยใช้การโหลดทั้งหมดหรือ CDC และแปลงภาษาของโครงสร้างฐานข้อมูลด้วย Schema Conversion Tool คุณปฏิบัติ Cloud & IT Cert Prep ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cloud & IT Cert Prep หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cloud & IT Cert Prep บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “Database Migration Service (DMS) และ Schema Conversion Tool” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cloud & IT Cert Prep นี้ได้ไหม

ได้ บทเรียน Cloud & IT Cert Prep ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. 7 R ของกลยุทธ์การย้ายระบบ
  2. AWS Migration Hub และ Application Discovery Service
  3. Application Migration Service (MGN)
  4. Database Migration Service (DMS) และ Schema Conversion Tool
← กลับไปที่ Cloud & IT Cert Prep