AWS DMS sinkronisasi ulang data - AWS Layanan Migrasi Database

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

AWS DMS sinkronisasi ulang data

AWS Database Migration Service (AWS DMS) Resinkronisasi data secara otomatis memperbaiki inkonsistensi data yang diidentifikasi melalui validasi data antara basis data sumber dan target Anda. Fitur ini berfungsi sebagai bagian dari tugas migrasi DMS yang ada, memastikan pembaruan yang tepat terjadi berdasarkan konfigurasi tugas, pengaturan koneksi, pemetaan tabel, dan transformasi Anda.

Fitur resync data beroperasi dengan membaca kegagalan validasi dari tabel kontrol pada database target dan menjalankan operasi perbaikan yang sesuai. Ketika ketidakcocokan terdeteksi, data saat ini diambil dari sumber menggunakan kunci utama yang disimpan dalam catatan kegagalan, dan itu diterapkan ke target sambil menghormati transformasi yang dikonfigurasi. Untuk informasi selengkapnya, lihat awsdms_validation_failures_v2meja kontrol.

Perilaku bervariasi tergantung pada jenis migrasi Anda. Untuk full-load-only tugas, sinkronisasi ulang Data berjalan sekali setelah pemuatan awal dan validasi selesai. Untuk tugas dengan Change Data Capture (CDC), Data resync beroperasi sesuai dengan jadwal yang dikonfigurasi, sementara menghentikan replikasi dan validasi sementara perbaikan diterapkan.

Selama operasi sinkronisasi ulang CDC:

  • Replikasi dan validasi berhenti sementara.

  • Resinkronisasi data memproses kegagalan validasi yang ada.

  • Resume replikasi dan validasi normal.

  • Proses ini berulang berdasarkan jadwal yang dikonfigurasi.

Resinkronisasi data secara otomatis melacak status setiap operasi perbaikan dan memberikan metrik terperinci melalui statistik tabel.

Prasyarat:

Fitur resync Data membutuhkan prasyarat berikut:

  • Anda harus memiliki AWS DMS mesin versi 3.6.1 atau yang lebih baru.

  • Anda harus mengonfigurasi pengaturan durasi jadwal dan waktu untuk tugas yang memiliki replikasi berkelanjutan. Tugas hanya beban penuh tidak memerlukan pengaturan ini.

Batasan

Fitur Data resync memiliki batasan sebagai berikut:

  • Data resync hanya mendukung Oracle dan SQL Server sebagai database sumber.

  • Data resync mendukung PostgreSQL dan Amazon Aurora PostgreSQL mesin yang kompatibel dengan PostgreSQL sebagai basis data target.

  • Semua tabel dalam basis data sumber dan target Anda harus memiliki kunci utama. Validasi tidak mendukung tabel tanpa kunci utama atau kunci unik. Setiap tabel yang tidak memiliki kunci primer atau unik yang valid ditangguhkan dari validasi dan tidak ada kegagalan validasi yang dilaporkan.

  • Saat menjalankan Full-load-only tugas, validasi data harus diaktifkan.

  • Resinkronisasi data tidak dapat diaktifkan untuk tugas Validasi saja karena tidak mereplikasi data apa pun. Anda dapat mengaktifkan sinkronisasi ulang pada tugas replikasi induk hanya dengan menyediakan Validasi. taskID Untuk informasi selengkapnya, lihat Tugas hanya validasi.

  • Jika tugas Validasi saja memiliki pengaturan ControlSchema parameter yang dikonfigurasi dalam pengaturan tugas, maka tugas replikasi juga harus memiliki konfigurasi parameter yang sama untuk sinkronisasi ulang Data untuk menemukan kegagalan validasi yang benar.

  • Anda diminta untuk mengonfigurasi pengaturan jadwal dan durasi waktu untuk tugas CDC.

  • Selama jendela resync, Data resync dapat berdampak pada latensi replikasi di DMS.

Untuk informasi selengkapnya mengenai validasi pemecahan masalah AWS DMS selama sinkronisasi ulang Data, lihat bagian Pemecahan masalah di bawah validasi data.AWS DMS

Penjadwalan dan waktu

Untuk tugas dengan CDC, Anda harus mengonfigurasi kapan dan berapa lama Data resync beroperasi. Ini membantu mencegah dampak pada operasi replikasi normal Anda. Anda menentukan:

  • Jadwal menggunakan format cron untuk menentukan kapan operasi resync dapat terjadi.

  • Durasi maksimum untuk memastikan operasi sinkronisasi ulang tidak meluas ke periode penggunaan puncak.

Disarankan untuk menjadwalkan operasi resync selama jam-jam off-peak atau ke periode di mana ada minimal atau tidak ada perubahan pada database sumber.

catatan

Waktu yang dijadwalkan termasuk menunggu aliran penerapan target kosong, karena sinkronisasi ulang Data dan replikasi normal tidak dapat berjalan secara bersamaan.

Kasus penggunaan

Fitur resync data memungkinkan pengguna untuk merekonsiliasi inkonsistensi data antara sumber dan sistem target. Ini mengidentifikasi catatan yang tidak cocok dan menyinkronkannya untuk menjaga konsistensi data di seluruh lingkungan terdistribusi. Kasus penggunaan berikut menunjukkan skenario umum di mana fitur resync data menyelesaikan tantangan konsistensi data:

Skenario 1: Tugas pemuatan penuh - jalankan sinkronisasi ulang menggunakan tugas DMS yang sama

Dalam tugas migrasi beban penuh DMS yang ada, Anda dapat melakukan hal berikut:

  • Aktifkan validasi:Validation with data migration = true.

  • Aktifkan sinkronisasi ulang: Data resync = true

Skenario 2: Beban penuh dan CDC, tugas hanya CDC - jalankan sinkronisasi ulang menggunakan tugas DMS yang sama

Dalam tugas migrasi CDC DMS yang ada, Anda dapat melakukan hal berikut:

  • Aktifkan validasi:Validation with data migration = true.

  • Aktifkan sinkronisasi ulang: Data resync = true

  • Tentukan jadwal sinkronisasi ulang:"ResyncSchedule": "0 0,2,4,6 * * *".

  • Tentukan waktu sinkronisasi ulang: MaxResyncTime": 60

Skenario 3: Beban penuh dan tugas hanya CDC atau CDC untuk replikasi dan sinkronisasi ulang, dalam kombinasi dengan tugas validasi saja

Untuk melakukan operasi validasi hanya dalam tugas DMS lain saat menggunakan resync, Anda dapat melakukan hal berikut:

  • Buat validasi hanya tugas DMS CDC.

    catatan

    Anda harus mencatat dan menentukan ID tugas ini selama Data resync.

  • Dalam tugas CDC utama Anda, nonaktifkan validasi:. Data validation = false

  • Aktifkan sinkronisasi ulang: Data resync = true

  • Tentukan jadwal sinkronisasi ulang:"ResyncSchedule": "0 0,2,4,6 * * *".

  • Tentukan waktu sinkronisasi ulang:MaxResyncTime": 60.

  • Tentukan ID validasi hanya tugas DMS CDC. Hanya ID tugas validasi yang ditambahkan di akhir ARN. Contoh ARN: arn:aws:dms:us-west-2:123456789012:task:6DG4CLGJ5JSJR67CFD7UDXFY7KV6CYGRICL6KWI dan Contoh validasi hanya ID tugas:. 6DG4CLGJ5JSJR67CFD7UDXFY7KV6CYGRICL6KWI

Praktik terbaik

Anda dapat memanfaatkan fitur resync Data AWS Database Migration Service untuk meningkatkan daya tahan tugas replikasi Anda dan mencapai konsistensi. Beberapa praktik terbaik untuk menggunakan fitur resync Data adalah:

  • Sebagai bagian dari resync Data, catatan yang memiliki ketidakcocokan diperbaiki dengan mengambilnya dari sumber dan menerapkannya pada database target. Jika database sumber diperbarui selama jendela resync, resync membaca nilai rekaman terbaru dan menerapkannya pada target. Hal ini dapat menyebabkan CDC menerapkan peristiwa gagal dan memperkenalkan inkonsistensi sementara pada database target. Untuk menghindari hal ini, Anda harus menjadwalkan jendela resync selama jam kerja atau periode di mana perubahan pada database sumber nol atau minimal.

  • Tetapkan jendela sinkronisasi ulang selama periode aktivitas basis data sumber minimal dan dalam ambang latensi target yang dapat diterima. Interval sinkronisasi ulang yang kecil dapat menyebabkan ketidakcocokan validasi yang belum diproses terakumulasi, sementara jendela besar dapat meningkatkan latensi replikasi ketika banyak kegagalan validasi terjadi. Pantau kegagalan validasi dan tingkat sinkronisasi ulang untuk menentukan jendela sinkronisasi ulang yang optimal selama periode tidak aktif sumber. Beberapa contoh untuk menyiapkan jendela resync adalah:

    • Beberapa konfigurasi jendela pendek:

      "ResyncSchedule": "0 0,2,4,6 * * *", "MaxResyncTime": 60
    • Konfigurasi jendela harian tunggal:

      "ResyncSchedule": "0 0 * * *", "MaxResyncTime": 360
  • Memantau latensi replikasi di DMS selama jendela sinkronisasi ulang dan sesuaikan jadwal yang sesuai untuk mengurangi lonjakan besar.

  • Anda dapat meninjau hasil sinkronisasi ulang melalui stastik tabel atau dengan menanyakan awsdms_validation_failures_v2 tabel pada database target. Untuk informasi selengkapnya, lihat Memantau tugas replikasi menggunakan Amazon CloudWatch.

  • Saat tugas berada dalam fase replikasi yang sedang berlangsung, hindari memulai pemuatan ulang untuk tabel individual selama jendela sinkronisasi ulang.

  • Praktik terbaik untuk tugas replikasi CDC:

    • Semua tabel dalam database Anda menyelesaikan proses pemuatan.

    • Ketidakcocokan diidentifikasi dalam proses validasi yang sedang berlangsung.

    • Sesuai jendela terjadwal resync, tugas replikasi berhenti untuk waktu yang singkat.

    • Data resync memperbaiki masalah yang diidentifikasi selama proses validasi.

    • Proses replikasi dilanjutkan dan diulang sesuai jadwal.

Konfigurasi dan contoh sinkronisasi ulang data

Konfigurasi pengaturan resync data:

Anda dapat mengonfigurasi resync untuk tugas replikasi Anda di DMS. Di bawah ini adalah contoh konfigurasi pengaturan resync Data dalam tugas Anda:

"ResyncSettings": { "EnableResync": true, "ResyncSchedule": "0 0,2,4,6 * * *", // Run at 12AM, 2AM, 4AM, and 6AM daily "MaxResyncTime": 60, // Run for maximum of 60 minutes, or 1 hour "ValidationTaskId": "TASK-ID-IF-NEEDED" //Optional, used only if validation is performed as a separate Validation only task }

Contoh pola penjadwalan resync umum:

  • 0 0 * * *: Jalankan sekali setiap hari di tengah malam.

  • 0 0,12 * * *: Berlari dua kali setiap hari pada tengah malam dan siang hari.

  • 0 0,2,4,6, * * *: Berlari setiap dua jam antara tengah malam dan 6 pagi.

  • 0 1 * * 1: Jalankan setiap minggu pada hari Senin pukul 1 pagi.

catatan

Anda harus menentukan angka untuk setiap hari mulai 0 hingga 6. Untuk informasi selengkapnya, lihat Aturan ekspresi cron.

Memantau operasi sinkronisasi ulang:

Anda dapat memantau operasi resync melalui statistik tabel. Berikut adalah contoh output:

{ "TableStatistics": { ... "ValidationFailedRecords": 1000, ... "ResyncRowsAttempted": 1000, "ResyncRowsSucceeded": 995, "ResyncRowsFailed": 5, "ResyncProgress": 99.5, // ratio of ResyncRowsSucceeded/ValidationFailedRecords "ResyncState": "Last resync at: 2024-03-14T06:00:00Z" } }

Untuk mengonfigurasi fitur Resinkronisasi Data di AWS DMS, Anda dapat meninjau berbagai parameter sinkronisasi ulang dan pengaturan konfigurasi masing-masing. Untuk informasi selengkapnya, lihat Pengaturan sinkronisasi ulang data. Untuk informasi selengkapnya mengenai pengaturan pencatatan sinkronisasi ulang data, lihatPengaturan tugas pengelogan.

Validasi dan pemecahan masalah

Validasi:

Saat penilaian data diaktifkan, AWS DMS buat tabel kegagalan validasi di database target Anda dengan struktur berikut:

CREATE TABLE awsdms_validation_failures_v2 ( "RESYNC_ID" bigint NOT NULL, "TASK_NAME" varchar(128) NOT NULL, "TABLE_OWNER" varchar(128) NOT NULL, "TABLE_NAME" varchar(128) NOT NULL, "FAILURE_TIME" timestamp NOT NULL, "KEY_TYPE" varchar(128) NOT NULL, "KEY" varchar(7800) NOT NULL, "FAILURE_TYPE" varchar(128) NOT NULL, "DETAILS" varchar(7000) NOT NULL, "RESYNC_RESULT" varchar(128) NULL, "RESYNC_TIME" timestamp NULL, "RESYNC_ACTION" varchar(128) NULL );

Anda dapat menulis kueri ke tabel ini untuk memahami ketidakcocokan data yang ditemukan dan bagaimana mereka diselesaikan.

Saat validasi diaktifkan, AWS DMS buat tabel kegagalan validasi di database target Anda. Jika Anda memiliki masalah, Anda dapat menanyakan awsdms_control.awsdms_validation_failures_v2 tabel untuk memahami ketidakcocokan data yang ditemukan dan bagaimana mereka diselesaikan. Untuk informasi selengkapnya, lihat bagian Pemecahan masalah di Validasi AWS DMS data.

Alur kerja umum:

Selama validasi dalam resync data alur kerja standar adalah sebagai berikut:

Tugas Hanya Beban Penuh:

  1. Semua tabel dalam database Anda menyelesaikan proses pemuatan.

  2. Ketidakcocokan diidentifikasi dalam proses validasi yang sedang berlangsung.

  3. Data resync memperbaiki masalah yang diidentifikasi selama proses validasi.

  4. Proses validasi memvalidasi perbaikan.

  5. Tugas migrasi berhasil diselesaikan.

Tugas CDC:

  1. Semua tabel dalam database Anda menyelesaikan proses pemuatan.

  2. Ketidakcocokan diidentifikasi dalam proses validasi yang sedang berlangsung.

  3. Sesuai jendela terjadwal resync, tugas replikasi berhenti untuk waktu yang singkat.

  4. Data resync memperbaiki masalah yang diidentifikasi selama proses validasi.

  5. Proses replikasi dilanjutkan dan diulang sesuai jadwal.

Setiap modifikasi yang dilakukan pada tugas seperti menghentikan tugas replikasi selama operasi sinkronisasi ulang atau memuat ulang dan memvalidasi ulang tabel dapat memengaruhi perilaku dan hasil tugas. Beberapa perubahan perilaku yang diketahui adalah sebagai berikut:

Saat Anda menghentikan tugas replikasi saat operasi sinkronisasi ulang sedang berlangsung:

  • Operasi resync tidak secara otomatis dilanjutkan. Anda harus me-restart lagi.

  • Operasi sinkronisasi ulang di masa mendatang terjadi sesuai jadwal yang dikonfigurasi.

  • Setiap perbaikan yang tidak lengkap dicoba di jendela jadwal resync berikutnya.

Saat Anda memuat ulang tabel di database Anda:

  • Operasi sinkronisasi ulang melewatkan tabel apa pun yang mengalami pemuatan ulang.

  • Kegagalan validasi sebelumnya untuk tabel yang dimuat ulang diabaikan.

  • Validasi baru dimulai setelah tindakan reload selesai.

Saat Anda memvalidasi ulang tabel di database Anda:

  • Semua statistik untuk operasi sinkronisasi ulang Anda diatur ulang.

  • Kegagalan validasi sebelumnya untuk tabel yang divalidasi ulang diabaikan.

catatan

Saat memutakhirkan atau memindahkan tugas ke DMS versi 3.6.1 ke atas, kegagalan apa pun dalam awsdms_control.awsdms_validation_failures_v1 tabel tidak disinkronkan ulang. Hanya kegagalan dalam awsdms_validation_failures_v2 tabel yang disinkronkan ulang. Untuk menyinkronkan kembali kegagalan dalam awsdms_control.awsdms_validation_failures_v2 tabel, Anda harus memuat ulang tugas, memuat ulang satu atau beberapa tabel dalam tugas, atau memvalidasi ulang satu atau beberapa tabel. Untuk informasi selengkapnya, lihat tautan berikut:

  • Untuk memuat ulang tugas, lihat referensi StartReplicationTask API.

  • Untuk memuat ulang satu atau beberapa tabel dalam tugas, lihat reload-tablesdi dokumentasi referensi perintah AWS CLI.

  • Untuk memvalidasi ulang satu atau beberapa tabel, lihat validate-only opsi di reload-tablesbagian dalam dokumentasi referensi perintah AWS CLI.

.

Aturan ekspresi cron

Untuk mengonfigurasi operasi resync Data selama tugas replikasi di AWS DMS Anda dapat menggunakan aturan ekspresi cron. Aturan ini memungkinkan Anda menyesuaikan jendela waktu sinkronisasi ulang dan menjadwalkannya sesuai kebutuhan bisnis Anda. Anda dapat menggunakan berbagai parameter seperti menit, jam, hari, bulan, dan hari dalam seminggu. Aturan ekspresi cron untuk setiap parameter adalah:

Menit:
  • Rentang menit dari 0 hingga 59.

  • Anda dapat menggunakan (-),or/anduntuk menentukan rentang. Maksimal 10 item dipisahkan dengan koma (,).

  • Contoh:

    • 2-5sama dengan. 2,3,5,5

    • 1-2,3-4,5,7-10adalah rentang yang valid.

    • 1,2,3,4,5,6,7,8,9,10adalah rentang yang valid.

    • 1,2,3,4,5,6,7,8,9,10,11bukan rentang yang valid. Operasi sinkronisasi ulang melompati setelah item rentang ke-10.

  • Anda dapat menggunakan (*). Contoh: * sama dengan. 0-59

  • Anda dapat menggunakan (/) hanya dalam kombinasi dengan (-) atau (*).

    Contoh:

    • 2-7/2sama dengan. 2,4,6

    • */15sama dengan. 0,15,30,45

Jam:

Sama seperti "Menit" tetapi rentang yang valid adalah dari 0 ke23.

Hari:
  • Sama seperti "Menit" tetapi rentang yang valid adalah dari 1 ke31.

  • Penggunaan L didukung dalam konfigurasi sinkronisasi ulang. Itu ditafsirkan sebagai hari terakhir bulan itu. Anda tidak boleh menggunakannya dalam kombinasi dengan sintaks lain.

Bulan:

Sama seperti "Menit" tetapi rentang yang valid adalah dari 1 ke12.

Hari dalam seminggu:
  • Sama seperti "Menit" tetapi rentang yang valid adalah dari 0 ke6.

  • Anda tidak dapat menambahkan nilai string untuk nama minggu ini.