Anda dapat memigrasikan data dari database apa pun yang kompatibel dengan MySQL (MySQL, MariaDB, atau Amazon Aurora MySQL) menggunakan AWS Database Migration Service. MySQL versi 5. 5, 5. 6, 5. 7, dan 8. 0. MariaDB versi 10. 0. 24 sampai 10. 0. 28, 10. 1, 10. 2, 10. 3, 10. 4, dan 10. 5, dan juga Amazon Aurora MySQL, didukung untuk lokal
Dukungan untuk MySQL 8. 0 sebagai sumber tersedia di AWS DMS versi 3. 4. 0 dan yang lebih baru, kecuali saat payload transaksi dikompresi. AWS DMS saat ini tidak mendukung replikasi CDC menggunakan MySQL 8. 0 sebagai sumber saat enkripsi log biner diaktifkan
Anda dapat menggunakan SSL untuk mengenkripsi koneksi antara titik akhir yang kompatibel dengan MySQL dan instans replikasi. Untuk informasi selengkapnya tentang menggunakan SSL dengan titik akhir yang kompatibel dengan MySQL, lihat
Di bagian berikut, istilah "dikelola sendiri" berlaku untuk database apa pun yang diinstal di tempat atau di Amazon EC2. Istilah "dikelola oleh AWS" berlaku untuk semua database di Amazon RDS, Amazon Aurora, atau Amazon S3
Untuk detail tambahan tentang bekerja dengan database yang kompatibel dengan MySQL dan AWS DMS, lihat bagian berikut
Bermigrasi dari MySQL ke MySQL menggunakan AWS DMS
Untuk migrasi heterogen, di mana Anda bermigrasi dari mesin database selain MySQL ke database MySQL, AWS DMS hampir selalu merupakan alat migrasi terbaik untuk digunakan. Tapi untuk migrasi homogen, di mana Anda bermigrasi dari database MySQL ke database MySQL, alat asli bisa lebih efektif
Kami menyarankan Anda menggunakan alat migrasi basis data MySQL asli seperti mysqldump dalam kondisi berikut
Anda memiliki migrasi homogen, di mana Anda bermigrasi dari sumber database MySQL ke database MySQL target
Anda memigrasi seluruh database
Alat asli memungkinkan Anda memigrasikan data dengan waktu henti minimal
Anda dapat mengimpor data dari database MySQL atau MariaDB yang ada ke instans Amazon RDS MySQL atau DB MariaDB. Anda melakukannya dengan menyalin database dengan mysqldumpan dan menyalurkannya langsung ke instans Amazon RDS MySQL atau MariaDB DB. Utilitas baris perintah mysqldump biasanya digunakan untuk membuat cadangan dan mentransfer data dari satu server MySQL atau MariaDB ke server lain. Itu disertakan dengan perangkat lunak klien MySQL dan MariaDB
Untuk informasi selengkapnya tentang mengimpor database MySQL ke Amazon RDS for MySQL atau Amazon Aurora Edisi yang Kompatibel dengan MySQL, lihat Mengimpor data ke dalam instans MySQL DB dan Mengimpor data dari MySQL atau MariaDB DB ke instans Amazon RDS MySQL atau MariaDB DB
Menggunakan AWS DMS untuk memigrasikan data dari MySQL ke MySQL
AWS DMS dapat memigrasikan data dari, misalnya, database MySQL sumber yang ada di lokasi ke instans Amazon RDS for MySQL atau Aurora MySQL target. Tipe data inti atau dasar MySQL paling sering berhasil dimigrasikan
Tipe data yang didukung di database sumber tetapi tidak didukung di target mungkin tidak berhasil dimigrasikan. AWS DMS mengalirkan beberapa tipe data sebagai string jika tipe data tidak diketahui. Beberapa tipe data, seperti XML, bisa berhasil dimigrasikan sebagai file kecil tapi bisa gagal jika berupa dokumen besar
Tabel berikut menunjukkan tipe data sumber MySQL dan apakah mereka dapat dimigrasikan dengan sukses
Data typeMigrates successfullyWill partially migrateWill not migrateINTXBIGINTXMEDIUMINTXTINYINTXDECIMAL(p,s)XBINARYXBIT(M)XBLOBXLONGBLOBXMEDIUMBLOBXTINYBLOBXDATEXDATETIMEXTIMEXTIMESTAMPXYEARXDOUBLEXFLOATXVARCHAR(N)XVARBINARY(N)XCHAR(N)XTEXTXLONGTEXTXMEDIUMTEXTXTINYTEXTXJSONXGEOMETRYXPOINTXLINESTRINGXPOLYGONXMULTILINESTRINGXMULTIPOLYGONXGEOMETRYCOLLECTIONXENUMXSETX
Menggunakan database apa pun yang kompatibel dengan MySQL sebagai sumber untuk AWS DMS
Sebelum Anda mulai bekerja dengan database MySQL sebagai sumber untuk AWS DMS, pastikan Anda memiliki prasyarat berikut. Prasyarat ini berlaku untuk sumber yang dikelola sendiri atau dikelola AWS
Anda harus memiliki akun untuk AWS DMS yang memiliki peran Admin Replikasi. Peran membutuhkan hak istimewa berikut
REPLICATION CLIENT – Hak istimewa ini diperlukan hanya untuk tugas CDC. Dengan kata lain, tugas full-load-only tidak memerlukan hak istimewa ini
REPLICATION SLAVE – Hak istimewa ini diperlukan hanya untuk tugas CDC. Dengan kata lain, tugas full-load-only tidak memerlukan hak istimewa ini
SUPER – Hak istimewa ini hanya diperlukan di versi MySQL sebelum 5. 6. 6
Pengguna AWS DMS juga harus memiliki hak istimewa SELECT untuk tabel sumber yang ditujukan untuk replikasi
Menggunakan database yang kompatibel dengan MySQL yang dikelola sendiri sebagai sumber untuk AWS DMS
Anda dapat menggunakan database yang kompatibel dengan MySQL yang dikelola sendiri berikut ini sebagai sumber untuk AWS DMS
Edisi Komunitas MySQL
Edisi Standar MySQL
Edisi MySQL Perusahaan
MySQL Cluster Carrier Grade Edition
Edisi Komunitas MariaDB
Edisi MariaDB Perusahaan
Toko Kolom MariaDB
Untuk menggunakan CDC, pastikan untuk mengaktifkan logging biner. Untuk mengaktifkan logging biner, parameter berikut harus dikonfigurasi dalam file my.ini (Windows) atau my.cnf (UNIX) MySQL
Parameter
Nilai
server-id
Tetapkan parameter ini ke nilai 1 atau lebih besar
log-bin_
Setel jalur ke file log biner, seperti log-bin=E:\MySql_Logs\BinLog. Jangan sertakan ekstensi file
binlog_format_
Setel parameter ini ke ROW. Kami merekomendasikan pengaturan ini selama replikasi karena dalam kasus tertentu ketika binlog_format diatur ke mysqldump1, ini dapat menyebabkan ketidakkonsistenan saat mereplikasi data ke target. Mesin basis data juga menulis data tidak konsisten serupa ke target ketika binlog_format diatur ke mysqldump3, karena mesin basis data secara otomatis beralih ke pencatatan berbasis mysqldump1 yang dapat mengakibatkan penulisan data yang tidak konsisten pada basis data target
mysqldump_5
Tetapkan parameter ini ke nilai 1 atau lebih besar. Untuk mencegah penggunaan ruang disk yang berlebihan, kami menyarankan agar Anda tidak menggunakan nilai default 0
mysqldump_6
Setel parameter ini ke mysqldump_7
mysqldump_8
Setel parameter ini ke mysqldump_9
mysqldump_0
Setel parameter ini ke mysqldump_1 jika Anda menggunakan replika baca MySQL atau MariaDB sebagai sumber
Jika sumber Anda menggunakan mesin database NDB (berkerumun), parameter berikut harus dikonfigurasi untuk mengaktifkan CDC pada tabel yang menggunakan mesin penyimpanan tersebut. Tambahkan perubahan ini di file my.ini_ (Windows) atau my.cnf (UNIX) MySQL
Parameter
Nilai
mysqldump_4
Setel parameter ini ke mysqldump_5. Nilai ini memastikan bahwa perubahan dalam tabel berkerumun dicatat ke log biner
mysqldump_6
Setel parameter ini ke mysqldump_7. Nilai ini mencegah penulisan pernyataan UPDATE sebagai pernyataan INSERT di log biner
mysqldump_8
Setel parameter ini ke mysqldump_7. Nilai ini memastikan bahwa log biner berisi seluruh baris dan bukan hanya kolom yang diubah
Menggunakan database yang kompatibel dengan MySQL yang dikelola AWS sebagai sumber untuk AWS DMS
Anda dapat menggunakan database yang kompatibel dengan MySQL yang dikelola AWS berikut ini sebagai sumber untuk AWS DMS
Edisi Komunitas MySQL
Edisi Komunitas MariaDB
Amazon Aurora Edisi yang Kompatibel dengan MySQL
Saat menggunakan database yang kompatibel dengan MySQL yang dikelola AWS sebagai sumber untuk AWS DMS, pastikan Anda memiliki prasyarat berikut untuk CDC
Untuk mengaktifkan log biner untuk RDS untuk MySQL dan untuk RDS untuk MariaDB, aktifkan pencadangan otomatis di tingkat instans. Untuk mengaktifkan log biner untuk klaster Aurora MySQL, ubah variabel binlog_format di grup parameter
Untuk informasi selengkapnya tentang menyiapkan pencadangan otomatis, lihat Bekerja dengan pencadangan otomatis di Panduan Pengguna Amazon RDS
Untuk informasi selengkapnya tentang menyiapkan logging biner untuk database Amazon RDS for MySQL, lihat Mengatur format logging biner di Panduan Pengguna Amazon RDS
Untuk informasi selengkapnya tentang menyiapkan logging biner untuk klaster MySQL Aurora, lihat Bagaimana cara mengaktifkan logging biner untuk klaster Amazon Aurora MySQL saya?
Jika Anda berencana menggunakan CDC, aktifkan logging biner. Untuk informasi selengkapnya tentang menyiapkan logging biner untuk database Amazon RDS for MySQL, lihat Mengatur format logging biner di Panduan Pengguna Amazon RDS
Pastikan log biner tersedia untuk AWS DMS. Karena database yang kompatibel dengan MySQL yang dikelola AWS membersihkan log biner sesegera mungkin, Anda harus menambah jangka waktu agar log tetap tersedia. Misalnya, untuk meningkatkan retensi log hingga 24 jam, jalankan perintah berikut
call mysql.rds_set_configuration('binlog retention hours', 24);Setel parameter binlog_format_ ke my.ini2
Untuk MariaDB, jika parameter binlog_format dialihkan ke ROW untuk tujuan replikasi, log biner berikutnya masih dibuat dalam format mysqldump3. Ini dapat mencegah DMS melakukan pengambilan data perubahan. Jadi, saat mengganti parameter binlog_format_ untuk MariaDB, lakukan reboot atau mulai lalu hentikan tugas replikasi Anda
Setel parameter mysqldump_8 ke my.ini8
Tetapkan parameter mysqldump_6 ke my.cnf0. Untuk informasi selengkapnya tentang pengaturan parameter di Amazon RDS MySQL, lihat Bekerja dengan pencadangan otomatis di Panduan Pengguna Amazon RDS
Jika Anda menggunakan replika baca Amazon RDS MySQL atau Amazon RDS MariaDB sebagai sumber, aktifkan pencadangan pada replika baca, dan pastikan parameter mysqldump0 diatur ke mysqldump1
Keterbatasan dalam menggunakan database MySQL sebagai sumber untuk AWS DMS
Saat menggunakan database MySQL sebagai sumber, pertimbangkan hal berikut
Ubah pengambilan data (CDC) tidak didukung untuk Amazon RDS MySQL 5. 5 atau lebih rendah. Untuk Amazon RDS MySQL, Anda harus menggunakan versi 5. 6, 5. 7, atau 8. 0 untuk mengaktifkan CDC. CDC didukung untuk MySQL 5 yang dikelola sendiri. 5 sumber
Untuk CDC, my.cnf_3, my.cnf4, dan my.cnf5 mengubah tipe data kolom, dan my.cnf6 didukung. Namun, my.cnf7, my.cnf8, dan pembaruan yang dibuat untuk atribut lain, seperti nilai default kolom, nullability kolom, rangkaian karakter, dan sebagainya, tidak didukung
Untuk tabel terpartisi pada sumber, saat Anda menyetel mode persiapan tabel Target ke Drop tables on target, AWS DMS membuat tabel sederhana tanpa partisi apa pun pada target MySQL. Untuk memigrasikan tabel yang dipartisi ke tabel yang dipartisi pada target, buat tabel yang dipartisi sebelumnya pada database MySQL target
Menggunakan pernyataan my.cnf_9 ADD COLUMN server-id0 untuk menambahkan kolom ke awal (FIRST) atau tengah tabel (AFTER) tidak didukung. Kolom selalu ditambahkan ke akhir tabel
CDC tidak didukung saat nama tabel berisi karakter huruf besar dan kecil, dan mesin sumber dihosting di sistem operasi dengan nama file yang tidak peka huruf besar/kecil. Contohnya adalah Microsoft Windows atau OS X menggunakan HFS+
Anda dapat menggunakan Aurora MySQL-Compatible Edition Serverless untuk muatan penuh, tetapi Anda tidak dapat menggunakannya untuk CDC. Ini karena Anda tidak dapat mengaktifkan prasyarat untuk MySQL. Untuk informasi lebih lanjut, lihat
Atribut AUTO_INCREMENT pada kolom tidak dimigrasikan ke kolom database target
Menangkap perubahan saat log biner tidak disimpan di penyimpanan blok standar tidak didukung. Misalnya, CDC tidak berfungsi saat log biner disimpan di Amazon S3
AWS DMS membuat tabel target dengan mesin penyimpanan InnoDB secara default. Jika Anda perlu menggunakan mesin penyimpanan selain InnoDB, Anda harus membuat tabel secara manual dan bermigrasi ke sana menggunakan mode tidak melakukan apa pun
Anda tidak dapat menggunakan replika Aurora MySQL sebagai sumber untuk AWS DMS kecuali mode tugas migrasi DMS Anda adalah Migrasikan data yang ada—hanya beban penuh
Jika sumber yang kompatibel dengan MySQL dihentikan saat beban penuh, tugas AWS DMS tidak berhenti dengan kesalahan. Tugas berakhir dengan sukses, tetapi target mungkin tidak sinkron dengan sumbernya. Jika ini terjadi, mulai ulang tugas atau muat ulang tabel yang terpengaruh
Indeks yang dibuat pada sebagian nilai kolom tidak dimigrasikan. Misalnya, indeks CREATE INDEX first_ten_chars ON pelanggan (nama(10)) tidak dibuat pada target
Dalam beberapa kasus, tugas dikonfigurasi untuk tidak mereplikasi LOB ("SupportLobs" salah dalam pengaturan tugas atau Jangan sertakan kolom LOB dipilih di konsol tugas). Dalam kasus ini, AWS DMS tidak memigrasikan kolom MEDIUMBLOB, LONGBLOB, MEDIUMTEXT, dan LONGTEXT ke target
Kolom BLOB, TINYBLOB, TEXT, dan TINYTEXT tidak terpengaruh dan dimigrasikan ke target
Sistem atau tabel data temporal—tabel berversi tidak didukung pada database sumber dan target MariaDB
Jika bermigrasi di antara dua klaster MySQL Amazon RDS Aurora, titik akhir sumber MySQL RDS Aurora harus berupa instans baca/tulis, bukan instans replika
AWS DMS saat ini tidak mendukung migrasi tampilan untuk MariaDB
AWS DMS tidak mendukung perubahan DDL untuk tabel terpartisi untuk MySQL
AWS DMS saat ini tidak mendukung transaksi XA
AWS DMS tidak mendukung GTID untuk replikasi
AWS DMS tidak mendukung kompresi transaksi log biner
Atribut koneksi ekstra saat menggunakan MySQL sebagai sumber untuk AWS DMS
Anda dapat menggunakan atribut koneksi ekstra untuk mengonfigurasi sumber MySQL. Anda menentukan setelan ini saat membuat titik akhir sumber. Jika Anda memiliki beberapa pengaturan atribut koneksi, pisahkan satu sama lain dengan titik koma tanpa spasi tambahan (misalnya, server-id1)
Tabel berikut menampilkan atribut koneksi tambahan yang tersedia saat menggunakan Amazon RDS MySQL sebagai sumber untuk AWS DMS
NamaKeteranganserver-id_2
Menentukan seberapa sering memeriksa log biner untuk perubahan/kejadian baru saat database menganggur
Nilai default. 5
Nilai yang valid. 1–60
Contoh. server-id_3
Dalam contoh, AWS DMS memeriksa perubahan dalam log biner setiap lima detik
server-id_4Untuk AWS DMS versi 3. 4. 7 dan yang lebih baru, menetapkan batas waktu pernyataan klien untuk titik akhir sumber MySQL, dalam hitungan detik
Nilai default. 60
Contoh. server-id5
Untuk contoh ini, pernyataan apa pun yang dijalankan AWS DMS terhadap database sumber MySQL akan habis waktu jika memerlukan waktu lebih dari 1500 detik
server-id_6Menentukan zona waktu untuk sumber database MySQL
Contoh. server-id_7
Jangan sertakan data zona waktu dalam tanda kutip tunggal
server-id_8Menentukan skrip untuk dijalankan segera setelah AWS DMS terhubung ke titik akhir. Tugas migrasi terus berjalan terlepas dari apakah pernyataan SQL berhasil atau gagal
Nilai yang valid. Satu atau lebih pernyataan SQL yang valid, diawali dengan titik koma
Contoh. server-id_9
log-bin_0Membersihkan dan membuat ulang informasi metadata tabel pada instance replikasi saat terjadi ketidakcocokan. Misalnya, dalam situasi di mana menjalankan perubahan DDL pada tabel dapat menghasilkan informasi yang berbeda tentang tabel yang di-cache dalam instance replikasi. Boolean
Nilai default. log-bin_1
Contoh. log-bin_2
Tipe data sumber untuk MySQL
Tabel berikut menampilkan tipe data sumber database MySQL yang didukung saat menggunakan AWS DMS dan pemetaan default dari tipe data AWS DMS
Untuk informasi tentang cara melihat tipe data yang dipetakan di target, lihat bagian titik akhir target yang Anda gunakan
Untuk informasi tambahan tentang tipe data AWS DMS, lihat Tipe data untuk AWS Database Migration Service
tipe data MySQL
Tipe data AWS DMS
INT
INT4
BESAR
INT8
MENENGAH
INT4
TINYINT
INT1
KECIL
INT2
TINYINT TAK TERTANDA
UINT1
KECIL TAK BERTANDA TANGAN
UINT2
MEDIUMINT TAK TERTANDA
UINT4
INT TAK TERTANDA
UINT4
BIGINT TAK BERTANDA
UINT8
desimal(10)
NUMERIK (10,0)
BINER
BYTE(1)
SEDIKIT
BOOLEAN
BIT(64)
BYTE(8)
GUMPAL
BYTE(65535)
LONGBLOB
GUMPAL
MEDIUMBLOB
GUMPAL
TINYBLOB
BYTE(255)
TANGGAL
TANGGAL
TANGGAL WAKTU
TANGGAL WAKTU
DATETIME tanpa nilai kurung direplikasi tanpa milidetik. DATETIME dengan nilai kurung 1 sampai 5 (seperti log-bin3) direplikasi dengan milidetik
Saat mereplikasi kolom DATETIME, waktu tetap sama pada target. Itu tidak dikonversi ke UTC
WAKTU
RANGKAIAN
URUTAN WAKTU
TANGGAL WAKTU
Saat mereplikasi kolom TIMESTAMP, waktu diubah menjadi UTC pada target
TAHUN
INT2
DOBEL
NYATA8
MENGAMBANG
NYATA (GANDA)
Jika nilai FLOAT tidak berada dalam rentang berikut, gunakan transformasi untuk memetakan FLOAT ke STRING. Untuk informasi selengkapnya tentang transformasi, lihat Aturan dan tindakan transformasi
Kisaran FLOAT yang didukung adalah -1. 79E+308 ke -2. 23E-308, 0, dan 2. 23E-308 ke 1. 79E+308
VARCHAR (45)
WSTRING (45)
VARCHAR (2000)
WSTRING (2000)
VARCHAR (4000)
WSTRING (4000)
VARBINER (4000)
BYTE (4000)
VARBINER (2000)
BYTE (2000)
ARANG
WSTRING
TEKS
WSTRING
LONGTEXT
NCLOB
MEDIUMTEXT
NCLOB
TINYTEXT
WSTRING(255)
GEOMETRI
GUMPAL
TITIK
GUMPAL
LINESTRING
GUMPAL
POLIGON
GUMPAL
GANDA
GUMPAL
MULTILINESTRING
GUMPAL
MULTIPOLIGON
GUMPAL
KOLEKSI GEOMETRI
GUMPAL
ENUM
WSTRING (log-bin_4)
Di sini, log-bin_4 adalah panjang dari nilai terpanjang di ENUM
MENGATUR
WSTRING (log-bin_4)
Di sini, log-bin_4 adalah panjang total semua nilai dalam SET, termasuk koma
JSON
KLOB
Dalam beberapa kasus, Anda mungkin menentukan tipe data DATETIME dan TIMESTAMP dengan nilai "nol" (yaitu, 0000-00-00). Jika demikian, pastikan database target dalam tugas replikasi mendukung nilai "nol" untuk tipe data DATETIME dan TIMESTAMP. Jika tidak, nilai ini akan dicatat sebagai null pada target