Menggunakan basis data yang kompatibel dengan MySQL sebagai target untuk AWS Database Migration Service - AWS Layanan Migrasi Database

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

Menggunakan basis data yang kompatibel dengan MySQL sebagai target untuk AWS Database Migration Service

Anda dapat memigrasikan data ke database yang kompatibel dengan MySQL menggunakan AWS DMS, dari salah satu mesin data sumber yang mendukung. AWS DMS Jika Anda bermigrasi ke database yang kompatibel dengan MySQL lokal, maka mesin sumber Anda AWS DMS harus 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 titik akhir yang kompatibel dengan MySQL dan instans replikasi. Untuk informasi lebih lanjut tentang penggunaan SSL dengan titik akhir yang kompatibel dengan MySQL, lihat Menggunakan SSL dengan AWS Database Migration Service.

Untuk informasi tentang versi MySQL AWS DMS yang mendukung sebagai target, lihat. Target untuk AWS DMS

Anda dapat menggunakan database yang kompatibel dengan MySQL 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 yang digunakan (myISAM, MEMORY, dan sebagainya), AWS DMS menciptakan tabel target yang kompatibel dengan MySQL sebagai tabel InnoDB secara default.

Jika Anda membutuhkan tabel di mesin penyimpanan selain InnoDB, Anda dapat membuatnya secara manual pada target yang kompatibel dengan MySQL dan memigrasi tabel dengan memilih Tidak melakukan apapun. Untuk informasi lebih lanjut, lihat Pengaturan tugas beban penuh.

Untuk detail tambahan tentang bekerja dengan basis data yang kompatibel dengan MySQL sebagai target AWS DMS, lihat bagian berikut.

Menggunakan database yang kompatibel dengan MySQL sebagai target untuk AWS Database Migration Service

Sebelum Anda mulai bekerja dengan basis data yang kompatibel dengan MySQL sebagai target untuk AWS DMS, pastikan bahwa Anda telah memenuhi prasyarat berikut:

  • Berikan akun pengguna AWS DMS yang memiliki hak membaca/menulis ke database yang kompatibel dengan MySQL. 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 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 database yang kompatibel dengan MySQL selama pemuatan penuh, Anda dapat menambahkan perintah berikut ke bagian Atribut koneksi tambahan AWS DMS konsol untuk titik akhir target Anda.

    Initstmt=SET FOREIGN_KEY_CHECKS=0;
  • Tetapkan parameter basis data local_infile = 1 untuk mengaktifkan AWS DMS agar memuat data ke basis data target.

Batasan dalam menggunakan database yang kompatibel dengan MySQL 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 TABLE table_name ADD COLUMN column_name untuk menambahkan kolom ke bagian depan atau tengah tabel.

  • Saat memuat data ke target yang kompatibel dengan MySQL dalam tugas pemuatan 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 perintah. LOAD DATA Pastikan untuk melakukan hal berikut selama fase beban penuh:

    • Nonaktifkan kendala

    • Gunakan AWS DMS validasi untuk memastikan data konsisten.

  • Ketika Anda memperbarui nilai kolom ke nilai yang ada, basis data yang kompatibel dengan MySQL akan menampilkan Peringatan 0 rows affected. 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 database yang kompatibel dengan MySQL, buat entri di AWS DMS tabel kontrol awsdms_apply_exceptions 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 Tanpa Server, lihat Menggunakan Aurora Tanpa Server 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 parameter innodb_read_only dan disetel read_only ke atau. 0 OFF Untuk informasi selengkapnya tentang penggunaan Amazon RDS dan Aurora sebagai target, lihat berikut ini:

Pengaturan titik akhir saat menggunakan database yang kompatibel dengan MySQL sebagai target AWS DMS

Anda dapat menggunakan pengaturan titik akhir untuk mengonfigurasi basis data target yang kompatibel dengan MySQL mirip dengan menggunakan atribut koneksi tambahan. Anda menentukan pengaturan saat Anda membuat titik akhir target menggunakan AWS DMS konsol, atau dengan menggunakan create-endpoint perintah di AWS CLI, dengan sintaks --my-sql-settings '{"EndpointSetting": "value", ...}' JSON.

Tabel berikut menunjukkan pengaturan endpoint yang dapat Anda gunakan dengan MySQL sebagai target.

Nama Deskripsi

TargetDbType

Tentukan tujuan untuk migrasi tabel sumber pada target, baik untuk basis data tunggal atau beberapa basis data. Jika Anda menentukanSPECIFIC_DATABASE, Anda perlu menentukan nama database, baik saat menggunakan AWS CLI atau AWS Management Console.

Nilai default: MULTIPLE_DATABASES

Nilai valid: {SPECIFIC_DATABASE, MULTIPLE_DATABASES}

Contoh: --my-sql-settings '{"TargetDbType": "MULTIPLE_DATABASES"}'

ParallelLoadThreads

Meningkatkan performa saat memuat data ke basis data target yang kompatibel dengan MySQL. Menentukan berapa banyak thread yang digunakan untuk memuat data ke dalam basis data target yang kompatibel dengan MySQL. 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: --my-sql-settings '{"ParallelLoadThreads": 1}'

AfterConnectScript

Menentukan script untuk menjalankan segera setelah AWS DMS terhubung ke titik akhir.

Misalnya, Anda dapat menentukan bahwa target yang kompatibel dengan MySQL harus menerjemahkan pernyataan yang diterima ke dalam kumpulan karakter latin1, yang merupakan kumpulan karakter default yang dikompilasi dari database. Parameter ini biasanya meningkatkan performa ketika mengonversi dari client UTF8.

Contoh: --my-sql-settings '{"AfterConnectScript": "SET character_set_connection='latin1'"}'

MaxFileSize

Menentukan ukuran maksimum (dalam KB) dari setiap file .csv yang digunakan untuk mentransfer data ke basis data yang komptaibel dengan MySQL.

Nilai default: 32.768 KB (32 MB)

Nilai valid: 1-1.048.576

--my-sql-settings '{"MaxFileSize": 512}'

CleanSrcMetadataOnMismatch

Membersihkan dan membuat ulang informasi metadata tabel pada instans replikasi ketika terjadi ketidakcocokan. Contohnya adalah situasi ketika menjalankan pernyataan DDL ‘alter’ di tabel dapat menghasilkan informasi berbeda tentang tabel yang disimpan dalam cache di instans replikasi. Boolean.

Nilai default: false

Contoh: --my-sql-settings '{"CleanSrcMetadataOnMismatch": false}'

Anda juga dapat menggunakan atribut koneksi tambahan untuk mengonfigurasi basis data target yang kompatibel dengan MySQL Anda.

Tabel berikut menunjukkan atribut koneksi tambahan yang dapat Anda gunakan dengan MySQL sebagai target.

Nama Penjelasan

Initstmt=SET FOREIGN_KEY_CHECKS=0;

Menonaktifkan memeriksa kunci asing.

Contoh: --extra-connection-attributes "Initstmt=SET FOREIGN_KEY_CHECKS=0;"

Initstmt=SET time_zone

Menentukan zona waktu untuk target basis data yang kompatibel dengan MySQL.

Nilai default: UTC

Nilai yang valid: Nama zona waktu yang tersedia di database MySQL target.

Contoh: --extra-connection-attributes "Initstmt=SET time_zone=US/Pacific;"

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 AWS DMS menggunakan dan pemetaan AWS DMS default dari tipe data.

Untuk informasi tambahan tentang tipe AWS DMS 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).