Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan database yang SQL kompatibel dengan Saya sebagai sumber untuk AWS DMS
Anda dapat memigrasikan data dari database yang SQL kompatibel dengan Saya (My, SQL MariaDB, atau Amazon Aurora My) SQL menggunakan Database Migration Service. AWS
Untuk informasi tentang versi My SQL yang AWS DMS mendukung sebagai sumber, lihatSumber untuk AWS DMS.
Anda dapat menggunakan SSL untuk mengenkripsi koneksi antara titik akhir My SQL -compatible dan instance replikasi. Untuk informasi selengkapnya tentang penggunaan SSL dengan titik akhir SQL yang kompatibel dengan Saya, lihat. Menggunakan SSL dengan AWS Database Migration Service
Di bagian berikut, istilah “dikelola sendiri” berlaku untuk database apa pun yang diinstal baik lokal maupun di Amazon. EC2 Istilah "AWS-managed” berlaku untuk database apa pun di AmazonRDS, Amazon Aurora, atau Amazon S3.
Untuk detail tambahan tentang bekerja dengan database My SQL -compatible dan AWS DMS, lihat bagian berikut.
Topik
- Bermigrasi dari Saya SQL ke Saya menggunakan SQL AWS DMS
- Menggunakan database My SQL -compatible sebagai sumber untuk AWS DMS
- Menggunakan database My SQL -compatible yang dikelola sendiri sebagai sumber AWS DMS
- Menggunakan database AWS yang SQL kompatibel dengan Saya yang dikelola sebagai sumber untuk AWS DMS
- Batasan dalam menggunakan SQL database Saya sebagai sumber AWS DMS
- Support untuk transaksi XA
- Pengaturan titik akhir saat menggunakan My SQL sebagai sumber AWS DMS
- Tipe data sumber untuk My SQL
Bermigrasi dari Saya SQL ke Saya menggunakan SQL AWS DMS
Untuk migrasi heterogen, tempat Anda bermigrasi dari mesin database selain My SQL to a My SQL database, hampir selalu AWS DMS merupakan alat migrasi terbaik untuk digunakan. Tetapi untuk migrasi homogen, di mana Anda bermigrasi dari SQL database Saya ke SQL database Saya, kami menyarankan Anda menggunakan proyek migrasi migrasi data homogen. migrasi data homogen menggunakan alat database asli untuk memberikan kinerja dan akurasi migrasi data yang lebih baik jika dibandingkan dengan. AWS DMS
Menggunakan database My SQL -compatible sebagai sumber untuk AWS DMS
Sebelum Anda mulai bekerja dengan SQL database Saya sebagai sumber untuk AWS DMS, pastikan bahwa Anda memiliki prasyarat berikut. Prasyarat ini berlaku untuk sumber yang dikelola sendiri atau yang dikelola sendiri. AWS
Anda harus memiliki akun AWS DMS yang memiliki peran Admin Replikasi. Peran itu memerlukan keistimewaan berikut:
-
REPLICATIONCLIENT— Hak istimewa ini diperlukan untuk CDC tugas saja. Dengan kata lain, full-load-only tugas tidak memerlukan hak istimewa ini.
-
REPLICATIONSLAVE— Hak istimewa ini diperlukan untuk CDC tugas saja. Dengan kata lain, full-load-only tugas tidak memerlukan hak istimewa ini.
-
SUPER— Hak istimewa ini hanya diperlukan dalam SQL versi Saya sebelum 5.6.6.
AWS DMS Pengguna juga harus memiliki SELECT hak istimewa untuk tabel sumber yang ditunjuk untuk replikasi.
Berikan hak istimewa berikut jika Anda menggunakan penilaian premi SQL khusus Saya.
grant select on mysql.user to <dms_user>; grant select on mysql.db to <dms_user>; grant select on mysql.tables_priv to <dms_user>; grant select on mysql.role_edges to <dms_user> #only for MySQL version 8.0.11 and higher
Menggunakan database My SQL -compatible yang dikelola sendiri sebagai sumber AWS DMS
Anda dapat menggunakan database My SQL -compatible yang dikelola sendiri berikut sebagai sumber untuk: AWS DMS
-
Edisi SQL Komunitas Saya
-
Edisi SQL Standar Saya
-
Edisi SQL Perusahaan Saya
-
Edisi Kelas Operator SQL Cluster Saya
-
MariaDB Community Edition
-
MariaDB Enterprise Edition
-
MariaDB Column Store
Untuk menggunakanCDC, pastikan untuk mengaktifkan logging biner. Untuk mengaktifkan logging biner, parameter berikut harus dikonfigurasi dalam file My SQL my.ini
(Windows) atau my.cnf
(UNIX).
Parameter |
Nilai |
---|---|
|
Atur parameter ini supaya nilainya 1 atau lebih besar. |
|
Atur jalur ke berkas log biner, seperti |
|
Atur parameter ini menjadi |
|
Atur parameter ini supaya nilainya 1 atau lebih besar. Untuk mencegah penggunaan ruang disk secara berlebihan, kami sarankan Anda tidak menggunakan nilai default 0. |
|
Setel parameter ini ke |
|
Atur parameter ini menjadi |
|
Setel parameter ini |
Jika Anda menggunakan replika baca Saya SQL atau MariaDB sebagai sumber tugas migrasi menggunakan Migrasi data DMS yang ada dan mereplikasi mode perubahan yang sedang berlangsung, ada kemungkinan kehilangan data. DMStidak akan menulis transaksi selama pemuatan penuh atau dalam CDC kondisi berikut:
Transaksi telah dilakukan pada contoh utama sebelum DMS tugas dimulai.
Transaksi belum dilakukan ke replika sampai setelah DMS tugas dimulai, karena jeda antara instance utama dan replika.
Semakin lama jeda antara instance utama dan replika, semakin besar potensi kehilangan data.
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 SQL my.ini
(Windows) atau my.cnf
(UNIX).
Parameter |
Nilai |
---|---|
|
Atur parameter ini menjadi |
|
Atur parameter ini menjadi |
|
Atur parameter ini menjadi |
Menggunakan database AWS yang SQL kompatibel dengan Saya yang dikelola sebagai sumber untuk AWS DMS
Anda dapat menggunakan database AWS-managed My SQL -compatible berikut sebagai sumber untuk: AWS DMS
-
Edisi SQL Komunitas Saya
-
MariaDB Community Edition
-
Amazon Aurora Edisi Kompatibel Saya SQL
Saat menggunakan database AWS yang SQL kompatibel dengan Saya yang dikelola sebagai sumber AWS DMS, pastikan Anda memiliki prasyarat berikut untuk: CDC
-
Untuk mengaktifkan log biner RDS untuk My SQL dan RDS untuk MariaDB, aktifkan backup otomatis di tingkat instans. Untuk mengaktifkan log biner untuk SQL cluster Aurora My, ubah variabel
binlog_format
dalam grup parameter.Untuk informasi selengkapnya tentang menyiapkan pencadangan otomatis, lihat Bekerja dengan pencadangan otomatis di Panduan Pengguna Amazon. RDS
Untuk informasi selengkapnya tentang menyiapkan pencatatan biner RDS untuk Amazon untuk SQL database Saya, lihat Menyetel format logging biner di Panduan RDS Pengguna Amazon.
Untuk informasi selengkapnya tentang menyiapkan pencatatan biner untuk SQL klaster Aurora Saya, lihat Bagaimana cara mengaktifkan logging biner untuk Amazon SQL Aurora My
cluster saya? . -
Jika Anda berencana untuk menggunakanCDC, aktifkan logging biner. Untuk informasi selengkapnya tentang menyiapkan pencatatan biner RDS untuk Amazon untuk SQL database Saya, lihat Menyetel format logging biner di Panduan RDS Pengguna Amazon.
-
Pastikan bahwa log biner tersedia untuk AWS DMS. Karena AWS-managed My SQL -compatible database membersihkan log biner sesegera mungkin, Anda harus menambah lamanya waktu log tetap tersedia. Misalnya, untuk meningkatkan retensi log hingga 24 jam, jalankan perintah berikut.
call mysql.rds_set_configuration('binlog retention hours', 24);
-
Atur parameter
binlog_format
menjadi"ROW"
.catatan
Di My SQL atau MariaDB
binlog_format
, adalah parameter dinamis, jadi Anda tidak perlu reboot untuk membuat nilai baru diterapkan. Namun, nilai baru hanya akan berlaku untuk sesi baru. Jika Anda beralihbinlog_format
keROW
untuk tujuan replikasi, database Anda masih dapat membuat log biner berikutnya menggunakanMIXED
format, jika sesi tersebut dimulai sebelum Anda mengubah nilainya. Ini dapat AWS DMS mencegah menangkap semua perubahan pada database sumber dengan benar. Saat Anda mengubahbinlog_format
pengaturan pada MariaDB atau database SQL Saya, pastikan untuk memulai ulang database untuk menutup semua sesi yang ada, atau mulai ulang aplikasi apa pun yang DML melakukan operasi (Bahasa Manipulasi Data). Memaksa database Anda untuk memulai ulang semua sesi setelah mengubahbinlog_format
parameterROW
akan memastikan bahwa database Anda menulis semua perubahan basis data sumber berikutnya menggunakan format yang benar, sehingga AWS DMS dapat menangkap perubahan tersebut dengan benar. -
Atur parameter
binlog_row_image
ke"Full"
. -
Setel
binlog_checksum
parameter ke"NONE"
untuk DMS versi 3.4.7 atau sebelumnya. Untuk informasi selengkapnya tentang pengaturan parameter di Amazon RDS MySQL, lihat Bekerja dengan pencadangan otomatis di RDSPanduan Pengguna Amazon. -
Jika Anda menggunakan replika baca Amazon RDS My SQL atau Amazon RDS MariaDB sebagai sumber, aktifkan cadangan pada replika baca, dan pastikan parameternya disetel ke.
log_slave_updates
TRUE
Batasan dalam menggunakan SQL database Saya sebagai sumber AWS DMS
Saat menggunakan SQL database Saya sebagai sumber, pertimbangkan hal berikut:
-
Ubah pengambilan data (CDC) tidak didukung untuk Amazon RDS My SQL 5.5 atau yang lebih rendah. Untuk Amazon RDS MySQL, Anda harus menggunakan versi 5.6, 5.7, atau 8.0 untuk mengaktifkan. CDC CDCdidukung untuk sumber SQL 5.5 Saya yang dikelola sendiri.
-
UntukCDC,
CREATE TABLE
ADD COLUMN
,, danDROP COLUMN
mengubah tipe data kolom, danrenaming a column
didukung. Namun,DROP TABLE
,RENAME TABLE
, dan pembaruan yang dibuat untuk atribut lainnya, seperti nilai default kolom, nullabilitas kolom, set karakter dan sebagainya, tidak didukung. -
Untuk tabel yang dipartisi pada sumber, saat Anda mengatur mode persiapan tabel Target ke Jatuhkan tabel pada target, AWS DMS buat tabel sederhana tanpa partisi apa pun pada target Saya. SQL Untuk memigrasikan tabel yang dipartisi ke tabel yang dipartisi pada target, buat tabel yang dipartisi pada target database Saya. SQL
-
Menggunakan
ALTER TABLE
pernyataan untuk menambahkan kolom ke awal (FIRST) atau tengah tabel (AFTER) tidak didukung. Kolom selalu ditambahkan ke akhir tabel.table_name
ADD COLUMNcolumn_name
-
CDCtidak didukung ketika nama tabel berisi huruf besar dan huruf kecil, dan mesin sumber di-host pada sistem operasi dengan nama file case-insensitive. Contohnya adalah Microsoft Windows atau OS X menggunakan HFS +.
-
Anda dapat menggunakan Aurora My SQL -Compatible Edition Serverless v1 untuk muatan penuh, tetapi Anda tidak dapat menggunakannya untuk. CDC Ini karena engkau tidak dapat mengaktifkan prasyarat untuk-Ku. SQL Untuk informasi lebih lanjut, lihat Kelompok parameter dan Aurora Serverless v1.
Aurora My SQL -Compatible Edition Serverless v2 mendukung. CDC
-
INCREMENTAtribut AUTO _ pada kolom tidak dimigrasikan ke kolom database target.
-
Menangkap perubahan ketika 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 secara manual membuat tabel dan bermigrasi ke mesin tersebut menggunakan mode do nothing.
-
Anda tidak dapat menggunakan SQL replika Aurora My sebagai sumber AWS DMS kecuali mode tugas DMS migrasi Anda Migrasikan data yang ada —hanya memuat penuh.
-
Jika sumber SQL yang kompatibel dengan Saya dihentikan selama pemuatan penuh, AWS DMS tugas tidak berhenti dengan kesalahan. Tugas berhasil berakhir, tetapi target mungkin tidak sinkron dengan sumber. Jika hal ini terjadi, ulang kembali tugas atau muat ulang tabel yang terpengaruh.
-
Indeks yang dibuat pada porsi nilai kolom tidak bermigrasi. Misalnya, indeks CREATE INDEX first_ten_chars ON pelanggan (nama (10)) tidak dibuat pada target.
-
Dalam beberapa kasus, tugas dikonfigurasi untuk tidak mereplikasi LOBs (SupportLobs”” salah dalam pengaturan tugas atau Jangan sertakan LOB kolom dipilih di konsol tugas). Dalam kasus ini, AWS DMS tidak memigrasikan LONGTEXT kolomMEDIUMBLOB, LONGBLOBMEDIUMTEXT, dan apa pun ke target.
BLOB,TINYBLOB,TEXT, dan TINYTEXT kolom tidak terpengaruh dan dimigrasikan ke target.
-
Tabel data temporal atau tabel sistem-versi tidak didukung pada sumber MariaDB dan basis data target.
-
Jika bermigrasi antara dua cluster Amazon RDS Aurora SQL My, titik akhir RDS Aurora SQL My source harus berupa instance baca/tulis, bukan instance replika.
-
AWS DMS saat ini tidak mendukung migrasi tampilan untuk MariaDB.
-
AWS DMS tidak mendukung DDL perubahan untuk tabel yang dipartisi untuk My. SQL Untuk melewati suspensi tabel untuk DDL perubahan partisi selamaCDC, atur
skipTableSuspensionForPartitionDdl
ketrue
. -
AWS DMS hanya mendukung transaksi XA di versi 3.5.0 dan lebih tinggi. Versi sebelumnya tidak mendukung transaksi XA. AWS DMS tidak mendukung transaksi XA di MariaDB versi 10.6. Untuk informasi lebih lanjut, lihat Support untuk transaksi XA berikut ini.
-
AWS DMS tidak digunakan GTIDs untuk replikasi, bahkan jika data sumber mengandungnya.
-
AWS DMS tidak mendukung Aurora Log biner saya yang SQL disempurnakan.
-
AWS DMS tidak mendukung kompresi transaksi log biner.
-
AWS DMS tidak menyebarkan UPDATE CASCADE acara ON DELETE CASCADE dan ON untuk SQL database Saya menggunakan mesin penyimpanan InnoDB. Untuk acara ini, My SQL tidak menghasilkan peristiwa binlog untuk mencerminkan operasi bertingkat pada tabel anak. Akibatnya, tidak AWS DMS dapat mereplikasi perubahan yang sesuai ke tabel anak. Untuk informasi selengkapnya, lihat Indeks, Kunci Asing, atau Pembaruan atau Penghapusan Cascade Tidak Dimigrasi.
-
AWS DMS tidak menangkap perubahan pada kolom yang dihitung (
VIRTUAL
danGENERATED ALWAYS
). Untuk mengatasi batasan ini, lakukan hal berikut:Pra-buat tabel target dalam database target, dan buat AWS DMS tugas dengan
DO_NOTHING
atau pengaturan tugasTRUNCATE_BEFORE_LOAD
beban penuh.Tambahkan aturan transformasi untuk menghapus kolom yang dihitung dari cakupan tugas. Untuk informasi tentang aturan transformasi, lihat Aturan dan tindakan transformasi.
Support untuk transaksi XA
Transaksi Extended Architecture (XA) adalah transaksi yang dapat digunakan untuk mengelompokkan serangkaian operasi dari beberapa sumber daya transaksional menjadi satu transaksi global yang andal. Transaksi XA menggunakan protokol komit dua fase. Secara umum, menangkap perubahan saat ada transaksi XA terbuka dapat menyebabkan hilangnya data. Jika database Anda tidak menggunakan transaksi XA, Anda dapat mengabaikan izin ini dan konfigurasi IgnoreOpenXaTransactionsCheck
dengan menggunakan nilai tuli. TRUE
Untuk mulai mereplikasi dari sumber yang memiliki transaksi XA, lakukan hal berikut:
Pastikan bahwa pengguna AWS DMS endpoint memiliki izin berikut:
grant XA_RECOVER_ADMIN on *.* to 'userName'@'%';
Atur pengaturan titik akhir
IgnoreOpenXaTransactionsCheck
kefalse
.
catatan
AWS DMS tidak mendukung transaksi XA pada MariaDB Source DB versi 10.6.
Pengaturan titik akhir saat menggunakan My SQL sebagai sumber AWS DMS
Anda dapat menggunakan pengaturan titik akhir untuk mengonfigurasi database SQL sumber saya mirip dengan menggunakan atribut koneksi tambahan. Anda menentukan pengaturan saat Anda membuat titik akhir sumber menggunakan AWS DMS konsol, atau dengan menggunakan create-endpoint
perintah di AWS CLI, dengan --my-sql-settings '{"
JSON sintaks.EndpointSetting"
:
"value"
, ...
}'
Tabel berikut menunjukkan pengaturan titik akhir yang dapat Anda gunakan dengan My SQL sebagai sumber.
Nama | Deskripsi |
---|---|
EventsPollInterval |
Menentukan seberapa sering memeriksa log biner untuk perubahan/peristiwa baru ketika basis data diam. Nilai default: 5 Nilai yang valid: 1–60. Contoh: Dalam contoh, AWS DMS memeriksa perubahan dalam log biner setiap lima detik. |
ExecuteTimeout |
Untuk AWS DMS versi 3.4.7 dan yang lebih tinggi, tetapkan batas waktu pernyataan klien untuk titik akhir SQL Sumber saya, dalam hitungan detik. Nilai default: 60 Contoh: |
ServerTimezone |
Menentukan zona waktu untuk sumber SQL database Saya. Contoh: |
AfterConnectScript |
Menentukan script untuk menjalankan segera setelah AWS DMS menghubungkan ke endpoint. Tugas migrasi terus berjalan terlepas dari apakah SQL pernyataan berhasil atau gagal. Nilai yang valid: Satu atau lebih SQL pernyataan yang valid, dipicu oleh titik koma. Contoh: |
CleanSrcMetadataOnMismatch
|
Membersihkan dan membuat ulang informasi metadata tabel pada instans replikasi ketika terjadi ketidakcocokan. Misalnya, dalam situasi di mana menjalankan alter DDL di atas meja dapat menghasilkan informasi yang berbeda tentang tabel yang di-cache dalam contoh replikasi. Boolean. Nilai default: Contoh: |
skipTableSuspensionForPartitionDdl
|
AWS DMS tidak mendukung DDL perubahan untuk tabel yang dipartisi untuk My. SQL Untuk AWS DMS versi 3.4.6 dan yang lebih tinggi, atur ini untuk Nilai default: Contoh: |
IgnoreOpenXaTransactionsCheck
|
Untuk AWS DMS versi 3.5.0 dan yang lebih tinggi, tentukan apakah tugas harus mengabaikan transaksi XA terbuka saat memulai. Setel ini ke Nilai default: Contoh: |
Tipe data sumber untuk My SQL
Tabel berikut menunjukkan tipe data sumber SQL database saya yang didukung saat menggunakan AWS DMS dan pemetaan default dari tipe AWS DMS data.
Untuk informasi tentang cara melihat jenis data yang dipetakan dalam target, lihat bagian titik akhir target yang Anda gunakan.
Untuk informasi tambahan tentang tipe AWS DMS data, lihatTipe data untuk AWS Database Migration Service.
Tipe SQL data saya |
AWS DMS tipe data |
---|---|
INT |
INT4 |
BIGINT |
INT8 |
MEDIUMINT |
INT4 |
TINYINT |
INT1 |
SMALLINT |
INT2 |
UNSIGNED TINYINT |
UINT1 |
UNSIGNED SMALLINT |
UINT2 |
UNSIGNED MEDIUMINT |
UINT4 |
UNSIGNED INT |
UINT4 |
UNSIGNED BIGINT |
UINT8 |
DECIMAL(10) |
NUMERIC(10,0) |
BINARY |
BYTES(1) |
BIT |
BOOLEAN |
BIT(64) |
BYTES(8) |
BLOB |
BYTES(65535) |
LONGBLOB |
BLOB |
MEDIUMBLOB |
BLOB |
TINYBLOB |
BYTES(255) |
DATE |
DATE |
DATETIME |
DATETIME DATETIMEtanpa nilai tanda kurung direplikasi tanpa milidetik. DATETIMEdengan nilai kurung 1 sampai 5 (seperti Saat mereplikasi DATETIME kolom, waktunya tetap sama pada target. Itu tidak dikonversi keUTC. |
TIME |
STRING |
TIMESTAMP |
DATETIME Saat mereplikasi TIMESTAMP kolom, waktu dikonversi UTC ke target. |
YEAR |
INT2 |
DOUBLE |
REAL8 |
FLOAT |
REAL(DOUBLE) Jika FLOAT nilai tidak dalam kisaran berikut, gunakan transformasi untuk memetakan FLOAT keSTRING. Untuk informasi lebih lanjut tentang transformasi, lihat Aturan dan tindakan transformasi. FLOATRentang yang didukung adalah -1.79E+308 hingga -2.23E-308, 0, dan 2.23E-308 hingga 1.79E+308 |
VARCHAR(45) |
WSTRING(45) |
VARCHAR(2000) |
WSTRING(2000) |
VARCHAR(4000) |
WSTRING(4000) |
VARBINARY(4000) |
BYTES(4000) |
VARBINARY(2000) |
BYTES(2000) |
CHAR |
WSTRING |
TEXT |
WSTRING |
LONGTEXT |
NCLOB |
MEDIUMTEXT |
NCLOB |
TINYTEXT |
WSTRING(255) |
GEOMETRY |
BLOB |
POINT |
BLOB |
LINESTRING |
BLOB |
POLYGON |
BLOB |
MULTIPOINT |
BLOB |
MULTILINESTRING |
BLOB |
MULTIPOLYGON |
BLOB |
GEOMETRYCOLLECTION |
BLOB |
ENUM |
WSTRING ( Di sini, |
SET |
WSTRING ( Di sini, |
JSON |
CLOB |
catatan
Dalam beberapa kasus, Anda mungkin menentukan tipe DATETIME dan TIMESTAMP data dengan nilai “nol” (yaitu, 0000-00-00). Jika demikian, pastikan bahwa database target dalam tugas replikasi mendukung nilai “nol” untuk tipe DATETIME dan TIMESTAMP data. Jika tidak, nilai-nilai ini dicatat sebagai null pada target.