0Pricing
AWS Solutions Architect · Урок

Database Migration Service (DMS) и Schema Conversion Tool

Переносите однородные и неоднородные базы данных с помощью DMS, используя полную загрузку или CDC, и преобразуйте диалекты схем с помощью Schema Conversion Tool.

«Database Migration Service (DMS) и Schema Conversion Tool» — бесплатный урок AWS Solutions Architect на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AWS Solutions Architect, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AWS Solutions Architect содержит 4 уроков всего.

Что такое AWS DMS

AWS Database Migration Service (DMS) переносит базы данных в AWS с минимальным простоем. Он поддерживает однородные миграции (например, Oracle в Oracle или MySQL в MySQL) и неоднородные миграции (например, Oracle в Aurora PostgreSQL или SQL Server в MySQL). DMS использует экземпляр репликации, который считывает данные из источника, при необходимости преобразует их и записывает в целевую систему. Вы платите только за время работы экземпляра репликации.

Компоненты DMS: конечные точки и экземпляр репликации

У DMS есть три основных компонента. Исходные конечные точки определяют подключение к исходной базе данных (URL JDBC, учётные данные, TLS). Целевые конечные точки определяют базу данных назначения. Экземпляр репликации — это управляемый сервер на базе EC2, который DMS размещает в Вашем VPC для выполнения рабочей нагрузки миграции. Выбирайте размер экземпляра репликации с учётом объёма переносимых данных и необходимости MultiAZ для самого экземпляра репликации.

# 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 копирует все существующие данные из источника в целевую систему — это подходит, когда допустим простой или источник доступен только для чтения во время миграции. Change Data Capture (CDC) после завершения полной загрузки отслеживает текущие изменения в журнале транзакций источника, поддерживая синхронизацию источника и целевой системы. Комбинированная миграция Full Load + CDC сводит простой к минимуму: данные переносятся, пока источник продолжает работать, а переключение выполняется после синхронизации целевой системы.

# 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) — бесплатное загружаемое приложение, которое автоматически преобразует схему исходной базы данных (DDL) в формат, совместимый с целевым механизмом базы данных. Оно обрабатывает определения таблиц, представления, хранимые процедуры, функции и триггеры. При неоднородных миграциях (например, из 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)

Однородная и неоднородная миграция

Для однородных миграций (один и тот же механизм, например MySQL в локальной среде в RDS for MySQL) SCT обычно не требуется — схема напрямую совместима. DMS может сразу выполнить Full Load + CDC. При неоднородных миграциях (разные механизмы) сначала необходимо преобразовать схему с помощью SCT, затем 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 подходит не только для миграции реляционных баз данных, но и для передачи событий изменений из реляционной базы в потоковом режиме в озеро данных или событийно-ориентированную архитектуру с использованием CDC и Kinesis.

Правила сопоставления таблиц DMS

DMS использует правила сопоставления таблиц (JSON), чтобы определять, какие схемы и таблицы включать или исключать, а также применять преобразования данных. Можно переименовывать схемы или таблицы, преобразовывать значения столбцов (например, переводить все строки в верхний регистр), добавлять вычисляемые столбцы или фильтровать строки. Это полезно при переносе в целевую систему с другими соглашениями об именовании или при необходимости перенести только часть таблиц.

# 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 и записью в целевую систему). Внимательно отслеживайте CDCLatencyTarget на этапе синхронизации: когда значение приближается к нулю, целевая система догнала источник и можно выполнять переключение.

# 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

DMS Serverless автоматически выделяет и масштабирует ёмкость репликации в зависимости от рабочей нагрузки миграции, устраняя необходимость выбирать и управлять размером экземпляра репликации. Вы указываете минимальное и максимальное число единиц ёмкости DMS (DCU), а DMS автоматически масштабируется в этих пределах. Это особенно удобно для миграций с переменной нагрузкой или когда необходимо избежать недостаточного размера экземпляра репликации в период пиковой нагрузки.

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

Проверка полноты миграции

После миграции проверьте полноту данных с помощью проверки данных DMS. Включите её в настройках задачи, и DMS сравнит количество строк и контрольные суммы таблиц источника и целевой системы, сообщив о несоответствиях в отдельной таблице проверки. При неоднородных миграциях также выполните базовые проверки на уровне приложения. Не выполняйте переключение, пока проверка не покажет отсутствие расхождений: исправление данных после неудачного переключения обходится гораздо дороже, чем дополнительные затраты времени на проверку.

# 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. «реплицировать изменения почти в реальном времени в озеро данных» → DMS CDC в Kinesis или S3. «объединить несколько исходных баз данных в одну целевую» → несколько задач DMS для одной целевой конечной точки. DMS предназначен именно для миграции баз данных; для миграции серверов используйте MGN, а для массовой передачи данных — DataSync или Snowball.

Быстрая проверка

Проверьте своё понимание концепций AWS Solutions Architect (SAA-C03), рассмотренных в этом уроке.

Итоги урока

В этом уроке Вы узнали, что DMS поддерживает однородную и неоднородную миграцию баз данных с использованием режимов Full Load и CDC, SCT автоматизирует преобразование схемы при смене механизма и отмечает элементы для ручной проверки, а DMS Serverless автоматически масштабирует ёмкость репликации, устраняя необходимость выбирать размер экземпляра. Далее мы рассмотрим Amazon EventBridge для маршрутизации событий и архитектуры на основе шин.

Часто задаваемые вопросы

Урок «Database Migration Service (DMS) и Schema Conversion Tool» бесплатный?

Да — полный текст урока «Database Migration Service (DMS) и Schema Conversion Tool» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AWS Solutions Architect, подпишись на CoddyKit PRO. Курс AWS Solutions Architect содержит 4 уроков всего.

Чему я научусь в уроке «Database Migration Service (DMS) и Schema Conversion Tool»?

Переносите однородные и неоднородные базы данных с помощью DMS, используя полную загрузку или CDC, и преобразуйте диалекты схем с помощью Schema Conversion Tool. Ты практикуешь AWS Solutions Architect с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать AWS Solutions Architect?

Предыдущий опыт не требуется. AWS Solutions Architect на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Database Migration Service (DMS) и Schema Conversion Tool»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке AWS Solutions Architect?

Да. Каждый урок AWS Solutions Architect включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. 7 вариантов стратегии миграции
  2. AWS Migration Hub и Application Discovery Service
  3. Application Migration Service (MGN)
  4. Database Migration Service (DMS) и Schema Conversion Tool
← Назад к AWS Solutions Architect