Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan MySQL-compatible database sebagai target untuk AWS Database Migration Service
Anda dapat memigrasikan data ke MySQL-compatible database apa pun menggunakan AWS DMS, dari salah satu mesin data sumber yang AWS DMS mendukung. Jika Anda bermigrasi ke MySQL-compatible database lokal, maka AWS DMS mengharuskan mesin sumber Anda berada di dalam ekosistem. AWS Mesin dapat menggunakan layanan yang AWS dikelola seperti Amazon RDS, Amazon Aurora, atau Amazon S3. Atau mesin bisa berada di basis data terkelola mandiri di Amazon EC2.
Anda dapat menggunakan SSL untuk mengenkripsi koneksi antara MySQL-compatible titik akhir dan instance replikasi. Untuk informasi selengkapnya tentang menggunakan SSL dengan MySQL-compatible titik akhir, lihatMenggunakan SSL dengan AWS Database Migration Service.
Untuk informasi tentang versi MySQL yang AWS DMS mendukung sebagai target, lihatTarget untuk AWS DMS.
Anda dapat menggunakan MySQL-compatible database berikut sebagai target untuk AWS DMS:
-
MySQL Community Edition
-
MySQL Standard Edition
-
MySQL Enterprise Edition
-
MySQL Cluster Carrier Grade Edition
-
MariaDB Community Edition
-
MariaDB Enterprise Edition
-
MariaDB Column Store
-
Amazon Aurora MySQL
catatan
Terlepas dari mesin penyimpanan sumber (MyISAM, MEMORY, dan sebagainya), membuat tabel AWS DMS MySQL-compatible target sebagai tabel InnoDB secara default.
Jika Anda memerlukan tabel di mesin penyimpanan selain InnoDB, Anda dapat membuat tabel secara manual pada MySQL-compatible target dan memigrasikan tabel menggunakan opsi Do nothing. Untuk informasi selengkapnya, lihat Full-load pengaturan tugas.
Untuk detail tambahan tentang bekerja dengan MySQL-compatible database sebagai target AWS DMS, lihat bagian berikut.
Topik
Menggunakan MySQL-compatible database apa pun sebagai target untuk AWS Database Migration Service
Sebelum Anda mulai bekerja dengan MySQL-compatible database sebagai target AWS DMS, pastikan Anda telah menyelesaikan prasyarat berikut:
-
Berikan akun pengguna AWS DMS yang memiliki read/write hak istimewa ke MySQL-compatible database. Untuk membuat hak yang diperlukan, jalankan perintah berikut.
CREATE USER '<user acct>'@'%' IDENTIFIED BY '<user password>'; GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT, CREATE TEMPORARY TABLES ON <schema>.* TO '<user acct>'@'%'; GRANT ALL PRIVILEGES ON awsdms_control.* TO '<user acct>'@'%'; -
Selama fase migrasi beban penuh, Anda harus nonaktifkan kunci asing pada tabel target Anda. Untuk menonaktifkan pemeriksaan kunci asing pada MySQL-compatible database selama pemuatan penuh, Anda dapat menambahkan perintah berikut ke bagian Atribut koneksi tambahan di AWS DMS konsol untuk titik akhir target Anda.
Initstmt=SET FOREIGN_KEY_CHECKS=0; -
Tetapkan parameter basis data
local_infile = 1untuk mengaktifkan AWS DMS agar memuat data ke basis data target. -
Berikan hak istimewa berikut jika Anda menggunakan penilaian MySQL-specific premigrasi.
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
Pertimbangan untuk target Aurora MySQL 8.4
Aurora MySQL 8.4 memperkenalkan perubahan keamanan yang dapat mempengaruhi konektivitas titik akhir AWS DMS target. Tinjau hal berikut sebelum memutakhirkan target Aurora MySQL Anda ke versi 8.4.
Penegakan TLS
Aurora MySQL 8.4 require_secure_transport diatur ON secara default, artinya semua koneksi harus menggunakan TLS. Jika titik akhir AWS DMS target Anda terhubung ke Aurora MySQL 8.4 dan mode SSL diatur ke none, koneksi akan ditolak. Jika mode SSL titik akhir Anda diset el ke none, Anda akan menerima kesalahan berikut:MySQL Error 3159 (HY000): Connections using insecure transport are
prohibited while --require_secure_transport=ON. Setel mode SSL titik akhir untuk verify-ca atau verify-full. Kedua mode memerlukan sertifikat CA. Atau, atur require_secure_transport ke OFF grup parameter cluster Aurora Anda untuk mengizinkan koneksi yang tidak terenkripsi.
catatan
Aurora MySQL 8.4 hanya mendukung suite sandi GCM untuk TLS 1.2. Semua CBC-mode sandi telah dihapus. AWS DMS menggunakan TLS 1.2 untuk titik akhir MySQL dan Aurora MySQL dan akan menegosiasikan secara otomatis sandi GCM yang didukung. Jika Anda memiliki konfigurasi sandi khusus, pastikan konfigurasi tersebut menyertakan salah satu sandi yang didukung berikut: ECDHE-RSA-AES128-GCM-SHA256,, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-ECDSA-AES128-GCM-SHA256 atau. ECDHE-ECDSA-AES256-GCM-SHA384
catatan
AWS DMS tidak mendukung TLS 1.3 untuk titik akhir MySQL. Ini tidak mempengaruhi konektivitas ke Aurora MySQL 8.4, karena Aurora MySQL 8.4 terus mendukung TLS 1.2.
Otentikasi (Aurora MySQL dan RDS untuk MySQL 8.4)
Aurora MySQL 8.4 menggantikan default_authentication_plugin parameter denganauthentication_policy, yang default ke*:caching_sha2_password. Pengguna database yang ada mempertahankan plugin otentikasi mereka saat ini setelah peningkatan. Jika Anda membuat pengguna AWS DMS
titik akhir baru setelah memutakhirkan, mereka akan menggunakan caching_sha2_password secara default kecuali Anda menyet authentication_policy el ke *:mysql_native_password dalam grup parameter cluster Anda.
Reset kata sandi pengguna utama
Setelah memutakhirkan ke Aurora MySQL 8.4, mengatur ulang kata sandi pengguna master melalui Konsol Manajemen AWS, CLI, atau melalui rotasi Secrets Manager mengatur plugin otentikasi pengguna master ke default yang ditentukan oleh parameter. authentication_policy Jika authentication_policy disetel ke nilai defaultnya (*:caching_sha2_password), plugin otentikasi pengguna master berubah dari mysql_native_password ke caching_sha2_password pada pengaturan ulang kata sandi berikutnya.
Jika titik akhir AWS DMS target Anda menggunakan akun pengguna utama, verifikasi konektivitas setelah pengaturan ulang kata sandi. Untuk menghindari perubahan plugin otentikasi, salah satunya:
Set
authentication_policyel ke*:mysql_native_passworddalam grup parameter cluster Anda sebelum mengatur ulang kata sandi, atauBuat pengguna AWS DMS titik akhir khusus dengan plugin otentikasi yang ditentukan secara eksplisit (disarankan). Misalnya:
CREATE USER 'dms_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
Untuk informasi selengkapnya tentang perubahan keamanan Aurora MySQL 8.4, lihat Keamanan dengan Amazon Aurora MySQL dan Manajemen Kata Sandi dengan Amazon Aurora dan Manajer Rahasia di Panduan Pengguna Amazon Aurora. Untuk informasi tentang masalah plugin otentikasi yang diketahui, lihat Plugin otentikasi di Panduan Pengguna Amazon RDS.
Batasan penggunaan MySQL-compatible database sebagai target untuk AWS Database Migration Service
Saat menggunakan database MySQL sebagai target, AWS DMS tidak mendukung hal berikut:
-
Beberapa pernyataan bahasa definisi data (DDL): TRUNCATE PARTITION, DROP TABLE, dan RENAME TABLE.
-
Menggunakan pernyataan
ALTER TABLEuntuk menambahkan kolom ke bagian depan atau tengah tabel.table_nameADD COLUMNcolumn_name -
Saat memuat data ke MySQL-compatible target dalam tugas beban penuh, AWS DMS tidak melaporkan kesalahan yang disebabkan oleh kendala dalam log tugas, yang dapat menyebabkan kesalahan kunci duplikat atau ketidakcocokan dengan jumlah catatan. Hal ini disebabkan oleh cara MySQL menangani data lokal dengan
LOAD DATAperintah. Pastikan untuk melakukan hal berikut selama fase beban penuh:Nonaktifkan kendala
Gunakan AWS DMS validasi untuk memastikan data konsisten.
-
Saat Anda memperbarui nilai kolom ke nilai yang ada, MySQL-compatible database mengembalikan
0 rows affectedperingatan. Meskipun secara teknis perilaku ini bukan merupakan kesalahan, penanganan situasi ini berbeda dibandingkan mesin basis data lain. Misalnya Oracle melakukan update dari satu baris. Untuk MySQL-compatible database, buat AWS DMS entri di tabel kontrol awsdms_apply_dan mencatat peringatan berikut.Some changes from the source database had no impact when applied to the target database. See awsdms_apply_exceptions table for details. Aurora Nirserver tersedia sebagai target untuk Amazon Aurora versi 2, kompatibel dengan MySQL versi 5.7. (Pilih Aurora MySQL versi 2.07.1 untuk dapat menggunakan Aurora Nirserver dengan kompatibilitas terhadap MySQL 5.7.) Untuk informasi selengkapnya tentang Aurora Serverless, lihat Menggunakan Aurora Serverless v2 di Panduan Pengguna Amazon Aurora.
AWS DMS tidak mendukung penggunaan titik akhir pembaca untuk Aurora atau Amazon RDS, kecuali instans dalam mode yang dapat ditulis, yaitu
innodb_read_onlyparameterread_onlydan disetel ke0atau.OFFUntuk informasi selengkapnya tentang menggunakan Amazon RDS dan Aurora sebagai target, lihat berikut ini:-
Saat mereplikasi tipe data TIME, bagian fraksional dari nilai waktu tidak direplikasi.
-
Saat mereplikasi tipe data TIME dengan Atribut Koneksi Ekstra
loadUsingCSV=false, nilai waktu dibatasi hingga rentang.[00:00:00, 23:59:59]
Pengaturan titik akhir saat menggunakan MySQL-compatible database sebagai target untuk AWS DMS
Anda dapat menggunakan pengaturan titik akhir untuk mengonfigurasi database MySQL-compatible target Anda mirip dengan menggunakan atribut koneksi tambahan. Anda menentukan pengaturan saat membuat titik akhir target menggunakan AWS DMS konsol, atau dengan menggunakan create-endpoint perintah di AWS CLI, dengan sintaks --my-sql-settings '{" JSON.EndpointSetting":
"value", ...}'
Tabel berikut menunjukkan pengaturan titik akhir yang dapat Anda gunakan dengan MySQL sebagai target.
| Nama | Deskripsi |
|---|---|
|
|
Gunakan atribut koneksi tambahan (ECA) ini untuk mengatur batas waktu koneksi titik akhir untuk instance MySQL, dalam detik. Nilai bawaannya adalah 10 detik. Contoh ECA: |
|
|
Tentukan tujuan untuk migrasi tabel sumber pada target, baik untuk basis data tunggal atau beberapa basis data. Jika Anda menentukan Nilai default: Nilai valid: { Contoh: |
|
Meningkatkan kinerja saat memuat data ke database MySQL-compatible target. Menentukan berapa banyak thread yang akan digunakan untuk memuat data ke database MySQL-compatible target. Menetapkan sejumlah besar thread dapat memiliki efek yang berlawanan pada performa basis data, karena koneksi terpisah diperlukan untuk setiap utas. Nilai default: 1 Nilai valid: 1-5 Contoh: |
|
Menentukan script untuk menjalankan segera setelah AWS DMS terhubung ke titik akhir. Misalnya, Anda dapat menentukan bahwa MySQL-compatible target harus menerjemahkan pernyataan yang diterima ke dalam kumpulan karakter latin1, yang merupakan kumpulan karakter terkompilasi default dari database. Parameter ini biasanya meningkatkan performa ketika mengonversi dari client UTF8. Contoh: |
|
Menentukan ukuran maksimum (dalam KB) dari setiap file.csv yang digunakan untuk mentransfer data ke MySQL-compatible database. Nilai default: 32.768 KB (32 MB) Nilai valid: 1-1.048.576
|
Anda juga dapat menggunakan atribut koneksi tambahan untuk mengonfigurasi database MySQL-compatible target Anda.
Tabel berikut menunjukkan atribut koneksi tambahan yang dapat Anda gunakan dengan MySQL sebagai target.
| Nama | Deskripsi |
|---|---|
|
Menonaktifkan memeriksa kunci asing. Contoh: |
|
Menentukan zona waktu untuk MySQL-compatible database target. Nilai default: UTC Nilai yang valid: Nama zona waktu yang tersedia di database MySQL target. Contoh: |
Atau, Anda dapat menggunakan AfterConnectScript parameter --my-sql-settings perintah untuk menonaktifkan pemeriksaan kunci asing dan menentukan zona waktu untuk database Anda.
Tipe data target untuk MySQL
Tabel berikut menunjukkan tipe data target database MySQL yang didukung saat menggunakan AWS DMS dan pemetaan default dari AWS DMS tipe data.
Untuk informasi tambahan tentang AWS DMS tipe data, lihatTipe data untuk AWS Database Migration Service.
|
AWS DMS tipe data |
Tipe data MySQL |
|---|---|
|
BOOLEAN |
BOOLEAN |
|
BYTES |
Jika panjangnya dari 1 sampai 65.535, maka gunakan VARBINARY (length). Jika panjangnya dari 65.536 hingga 2.147.483.647 maka gunakan LONGLOB. |
|
DATE |
DATE |
|
TIME |
TIME |
|
TIMESTAMP |
“If scale => 0 and =< 6, then: DATETIME (Scale) If scale is => 7 and =< 9, then: VARCHAR (37)" |
|
INT1 |
TINYINT |
|
INT2 |
SMALLINT |
|
INT4 |
INTEGER |
|
INT8 |
BIGINT |
|
NUMERIC |
DECIMAL (p,s) |
|
REAL4 |
FLOAT |
|
REAL8 |
DOUBLE PRECISION |
|
STRING |
Jika panjangnya dari 1 sampai 21.845 maka gunakan VARCHAR (panjang). Jika panjangnya dari 21.846 hingga 2.147.483.647 maka gunakan LONGTEXT. |
|
UINT1 |
UNSIGNED TINYINT |
|
UINT2 |
UNSIGNED SMALLINT |
|
UINT4 |
UNSIGNED INTEGER |
|
UINT8 |
UNSIGNED BIGINT |
|
WSTRING |
Jika panjangnya dari 1 sampai 32.767 maka gunakan VARCHAR (panjang). Jika panjangnya dari 32.768 hingga 2.147.483.647 maka gunakan LONGTEXT. |
|
BLOB |
Jika panjangnya dari 1 sampai 65.535 maka gunakan BLOB. Jika panjangnya dari 65.536 hingga 2.147.483.647 maka gunakan LONGBLOB. Jika panjangnya 0, gunakan LONGBLOB (support LOB penuh). |
|
NCLOB |
Jika panjangnya dari 1 sampai 65.535, gunakan TEXT. Jika panjangnya dari 65.536 hingga 2.147.483.647, gunakan LONGTEXT dengan ucs2 untuk CHARACTER SET. Jika panjangnya 0, gunakan LONGTEXT (support LOB penuh) dengan ucs2 untuk CHARACTER SET. |
|
CLOB |
Jika panjangnya dari 1 sampai 65.535, gunakan TEXT. Jika panjangnya dari 65.536 hingga 2.147.483.647, gunakan LONGTEXT. Jika panjangnya 0, gunakan LONGTEXT (supportLOB penuh). |