Cara menggunakan bit(1 in mysql)

Di sini Anda akan memahaminya dengan cara yang lebih baik!

tinyint: 1 byte, -128 to +127 / 0 to 255 (unsigned)
smallint: 2 bytes, -32,768 to +32,767 / 0 to 65,535 (unsigned)
mediumint: 3 bytes, -8,388,608 to 8,388,607 / 0 to 16,777,215 (unsigned)
int/integer: 4 bytes, -2,147,483,648 to +2,147,483,647 / 0 to 4,294,967,295 (unsigned)
bigint: 8 bytes, -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 / 0 to 18,446,744,073,709,551,615 (unsigned)

Anda dapat memigrasi data dari basis data yang kompatibel dengan MySQL (MySQL, MariaDB, atau Amazon Aurora MySQL) menggunakan Database Migration Service AWS. Versi MySQL 5.5, 5.6, 5.7, dan 8.0. MariaDB versi 10.0.24 untuk 10.0.28, 10.1, 10.2, 10.3, 10.4, dan 10.5, dan juga Amazon Aurora MySQL, didukung untuk lokal.

Support untuk MySQL 8.0 sebagai sumber tersedia diAWS DMSversi 3.4.0 dan versi yang lebih baru, kecuali ketika muatan transaksi dikompresi.AWS DMSsaat ini tidak mendukung replikasi CDC menggunakan MySQL 8.0 sebagai sumber ketika enkripsi log biner diaktifkan.

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.

Di bagian berikut, syarat “dikelola sendiri” berlaku untuk setiap basis data yang diinstal baik lokal atau di Amazon EC2. Syarat "terkelola AWS" berlaku untuk basis data apa pun di Amazon RDS, Amazon Aurora, atau Amazon S3.

Untuk detail tambahan tentang menggunakan basis data yang kompatibel dengan MySQL dan AWS DMS, lihat bagian berikut.

Topik

  • Migrasi dari MySQL ke MySQL menggunakan AWS DMS
  • Menggunakan basis data yang kompatibel dengan MySQL sebagai sumber untuk AWS DMS
  • Menggunakan basis data yang kompatibel dengan MySQL yang dikelola sendiri sebagai sumber untuk AWS DMS
  • Menggunakan basis data yang kompatibel dengan MySQL terkelola AWS sebagai sumber untuk AWS DMS
  • Keterbatasan menggunakan basis data MySQL sebagai sumber untuk AWS DMS
  • Atribut sambungan tambahan saat menggunakan MySQL sebagai sumber untuk AWS DMS
  • Jenis data sumber untuk MySQL

Migrasi dari MySQL ke MySQL menggunakan AWS DMS

Untuk migrasi heterogen, yaitu Anda bermigrasi dari mesin basis data selain MySQL ke basis data MySQL, AWS DMS hampir selalu merupakan alat migrasi terbaik yang bisa digunakan. Tapi untuk migrasi yang homogen, yaitu Anda bermigrasi dari basis data MySQL ke basis data 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, yaitu Anda bermigrasi dari basis data MySQL sumber ke basis data MySQL target.

  • Anda memigrasi seluruh basis data.

  • Alat asli mengizinkan Anda memigrasi data Anda dengan waktu downtime minimal.

Anda juga dapat mengimpor data dari basis data MySQL atau MariaDB yang sudah ada ke instans DB Amazon RDS MySQL atau MariaDB. Anda dapat melakukannya dengan menyalin basis data dengan mysqldump dan memipakannya langsung ke instans DB Amazon RDS MySQL atau MariaDB. Utilitas baris perintah mysqldump umumnya digunakan untuk membuat backup dan mentransfer data dari satu server MySQL atau MariaDB ke server lainnya. Utilitas ini disertakan dengan perangkat lunak klien MySQL dan MariaDB.

Untuk informasi lebih lanjut tentang pengimporan basis data MySQL ke Amazon RDS for MySQL atau Amazon Aurora Edisi Kompatibel MySQL, lihat Pengimporan data ke dalam instans DB MySQL dan Pengimporan data dari DB MySQL atau MariaDB ke instans DB Amazon RDS MySQL atau MariaDB.

Menggunakan AWS DMS untuk memigrasi data dari MySQL ke MySQL

AWS DMS dapat memigrasi data dari, misalnya, basis data MySQL sumber lokal untuk instans target Amazon RDS for MySQL atau Aurora MySQL. Jenis data MySQL inti atau basic adalah yang paling sering berhasil bermigrasi.

Jenis data yang didukung pada basis data sumber tetapi tidak didukung pada target mungkin tidak berhasil bermigrasi. AWS DMS mengalirkan beberapa jenis data sebagai string jika jenis data tidak diketahui. Beberapa jenis data, seperti XML, dapat berhasil bermigrasi sebagai file kecil tetapi dapat gagal jika mereka adalah dokumen besar.

Tabel berikut menunjukkan jenis data sumber MySQL dan apakah mereka dapat berhasil bermigrasi.

Jenis dataBerhasil bermigrasiAkan sebagian bermigrasiTidak akan bermigrasi
INT X
BIGINT X
MEDIUMINT X
TINYINT X
DECIMAL(p,s) X
BINARY X
BIT(M) X
BLOB X
LONGBLOB X
MEDIUMBLOB X
TINYBLOB X
DATE X
DATETIME X
TIME X
TIMESTAMP X
YEAR X
DOUBLE X
FLOAT X
VARCHAR(N) X
VARBINARY(N) X
CHAR(N) X
TEXT X
LONGTEXT X
MEDIUMTEXT X
TINYTEXT X
JSON X
GEOMETRY X
POINT X
LINESTRING X
POLYGON X
MULTILINESTRING X
MULTIPOLYGON X
GEOMETRYCOLLECTION X
ENUM X
SET X

Menggunakan basis data yang kompatibel dengan MySQL sebagai sumber untuk AWS DMS

Sebelum Anda mulai menggunakan basis data MySQL sebagai sumber untuk AWS DMS, pastikan bahwa Anda memiliki prasyarat berikut. Prasyarat ini berlaku untuk sumber yang dikelola sendiri maupun terkelola AWS.

Anda harus memiliki akun untuk AWS DMS yang memiliki peran Admin Replikasi. Peran itu memerlukan keistimewaan berikut:

  • REPLICATION CLIENT — Hak istimewa ini diperlukan untuk tugas CDC saja. Dengan kata lain, full-load-only tugas tidak memerlukan hak istimewa ini.

  • REPLICATION SLAVE — Hak istimewa ini diperlukan untuk tugas CDC saja. Dengan kata lain, full-load-only tugas tidak memerlukan hak istimewa ini.

  • SUPER — Hak istimewa ini diperlukan hanya dalam versi MySQL sebelum 5.6.6.

Pengguna AWS DMS juga harus memiliki hak istimewa SELECT untuk tabel sumber yang ditunjuk untuk replikasi.

Menggunakan basis data yang kompatibel dengan MySQL yang dikelola sendiri sebagai sumber untuk AWS DMS

Anda dapat menggunakan basis data yang kompatibel dengan MySQL yang dikelola sendiri berikut sebagai sumber 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

Untuk menggunakan CDC, pastikan untuk mengaktifkan binary logging. Untuk mengaktifkan binary logging, parameter berikut harus dikonfigurasi di MySQL my.ini (Windows) atau file my.cnf (UNIX).

Parameter

Nilai

server-id

Atur parameter ini supaya nilainya 1 atau lebih besar.

log-bin

Atur jalur ke berkas log biner, seperti log-bin=E:\MySql_Logs\BinLog. Jangan sertakan ekstensi file.

binlog_format

Atur parameter ini menjadi ROW. Kami merekomendasikan pengaturan ini selama replikasi karena dalam kasus-kasus tertentu ketika binlog_format diatur menjadi STATEMENT, inkonsistensi dapat terjadi ketika mereplikasi data ke target. Mesin basis data juga menulis data yang tidak konsisten yang mirip dengan target ketika binlog_format diatur menjadi MIXED, karena mesin basis data secara otomatis beralih ke logging berbasis STATEMENT yang dapat mengakibatkan penulisan data yang tidak konsisten pada basis data target.

expire_logs_days

Atur parameter ini supaya nilainya 1 atau lebih besar. Untuk mencegah penggunaan ruang disk secara berlebihan, kami sarankan Anda tidak menggunakan nilai default 0.

binlog_checksum

Atur parameter ini menjadi NONE.

binlog_row_image

Atur parameter ini menjadi FULL.

log_slave_updates

Atur parameter ini menjadi TRUE jika Anda menggunakan MySQL atau MariaDB replika baca sebagai sumber.

Jika sumber Anda menggunakan mesin basis data NDB (clustered), parameter berikut harus dikonfigurasi untuk mengaktifkan CDC pada tabel yang menggunakan mesin penyimpanan. Tambahkan perubahan ini di MySQL my.ini (Windows) atau file my.cnf (UNIX).

Parameter

Nilai

ndb_log_bin

Atur parameter ini menjadi ON. Nilai ini memastikan bahwa perubahan dalam clustered tables tercatat di log biner.

ndb_log_update_as_write

Atur parameter ini menjadi OFF. Nilai ini mencegah penulisan pernyataan UPDATE sebagai pernyataan INSERT dalam log biner.

ndb_log_updated_only

Atur parameter ini menjadi OFF. Nilai ini memastikan bahwa log biner berisi seluruh baris dan bukan hanya kolom yang berubah.

Menggunakan basis data yang kompatibel dengan MySQL terkelola AWS sebagai sumber untuk AWS DMS

Anda dapat menggunakan basis data yang kompatibel dengan MySQL terkelola AWS berikut sebagai sumber untuk AWS DMS:

  • MySQL Community Edition

  • MariaDB Community Edition

  • Amazon Aurora Edisi Kompatibel MySQL

Saat menggunakanAWSbasis data yang kompatibel dengan MySQL yang dikelola sebagai sumber untukAWS DMS, pastikan bahwa Anda memiliki prasyarat berikut untuk CDC:

  • Untuk mengaktifkan log biner untuk RDS untuk MySQL dan untuk RDS untuk MariaDB, aktifkan backup otomatis di tingkat instans. Untuk mengaktifkan binary log untuk klaster MySQL Aurora, ubah variabelbinlog_formatdi grup parameter.

    Untuk informasi selengkapnya tentang pengaturan backup otomatis, lihatBekerja dengan backup otomatisdi dalamPanduan Pengguna Amazon.

    Untuk informasi selengkapnya tentang pengaturan binary logging untuk basis data Amazon RDS for MySQLMengatur format logging binerdi dalamPanduan Pengguna Amazon.

    Untuk informasi selengkapnya tentang pengaturan binary logging untuk MySQL AuroraBagaimana cara mengaktifkan pencatatan biner untuk klaster Amazon Aurora MySQL saya?.

  • Jika Anda berencana menggunakan CDC, aktifkan binary logging. Untuk informasi selengkapnya tentang pengaturan binary logging untuk basis data Amazon RDS for MySQLMengatur format logging binerdi dalamPanduan Pengguna Amazon.

  • Pastikan bahwa log biner tersedia untuk AWS DMS. Karena basis data yang kompatibel dengan MySQL terkelola AWS membersihkan log biner sesegera mungkin, Anda harus meningkatkan panjang waktu supaya 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".

    Untuk MariaDB, jika parameter binlog_format dialihkan menjadi ROW untuk tujuan replikasi, log biner berikutnya masih dibuat dalam format MIXED. Hal ini dapat mencegah DMS melakukan perubahan penangkapan data. Jadi, saat mengganti parameter binlog_formatuntuk MariaDB, lakukan reboot atau mulai kemudian hentikan tugas replikasi Anda.

  • Atur parameter binlog_row_image menjadi "Full".

  • Atur parameter binlog_checksum menjadi "NONE". Untuk informasi selengkapnya tentang pengaturan parameter di Amazon RDS MySQL, lihat Menggunakan backup otomatis dalam Panduan Pengguna Amazon RDS.

  • Jika Anda menggunakan Amazon RDS MySQL atau Amazon RDS MariaDB sebagai sumber, aktifkan backup pada replika baca, dan pastikanlog_slave_updatesparameter diatur keTRUE.

Keterbatasan menggunakan basis data MySQL sebagai sumber untuk AWS DMS

Ketika menggunakan basis data MySQL sebagai sumber, pertimbangkan hal berikut:

  • Change data capture (CDC) tidak didukung untuk Amazon RDS MySQL 5.5 atau versi yang lebih rendah. Untuk Amazon RDS MySQL, Anda harus menggunakan versi 5.6, 5.7, atau 8.0 untuk mengaktifkan CDC. CDC didukung untuk sumber MySQL 5.5 yang dikelola sendiri.

  • Untuk CDC, CREATE TABLE, ADD COLUMN, dan DROP COLUMN mengubah jenis data kolom, dan renaming a columndidukung. 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, ketika Anda mengaturMode persiapan tabel target menjadi Keluarkan tabel pada target, AWS DMS membuat tabel sederhana tanpa partisi pada target MySQL. Untuk memirasi tabel yang dipartisi ke tabel yang dipartisi pada target, buatlah terlebih dahulu tabel yang dipartisi pada basis data MySQL target.

  • Menggunakan pernyataan ALTER TABLE table_name ADD COLUMN column_name untuk menambahkan kolom ke awal (FIRST) atau tengah tabel (AFTER) tidak didukung. Kolom selalu ditambahkan ke akhir tabel.

  • CDC tidak didukung ketika nama tabel memuat huruf besar dan huruf kecil, dan mesin sumber di-host pada sistem operasi dengan nama file yang tidak peka kapital. Contohnya adalah Microsoft Windows atau OS X menggunakan HFS+.

  • Anda dapat menggunakan Aurora MySQL yang kompatibel dengan Edisi Serverless untuk beban penuh, tetapi Anda tidak dapat menggunakannya untuk CDC. Ini karena Anda tidak dapat mengaktifkan prasyarat untuk MySQL. Untuk informasi lebih lanjut, lihat Kelompok parameter dan Aurora Serverless v1.

  • Atribut AUTO_INCREMENT pada kolom tidak bermigrasi ke kolom basis data target.

  • Menangkap perubahan ketika log biner tidak disimpan di penyimpanan blok standar tidak didukung. Sebagai contoh, CDC tidak bekerja ketika log biner disimpan di Amazon S3.

  • AWS DMS menciptakan 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 replika Aurora MySQL sebagai sumberAWS DMSkecuali mode tugas migrasi DMS AndaMigrasi data yang ada- beban penuh saja.

  • Jika sumber yang kompatibel dengan MySQL berhenti selama beban penuh, tugas AWS DMS 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. Sebagai contoh, indeks CREATE INDEX first_ten_chars ON pelanggan (name(10)) tidak dibuat pada target.

  • Dalam beberapa kasus, tugas dikonfigurasi untuk tidak mereplikasi LOB (”SupportLobs“adalah palsu dalam pengaturan tugas atauJangan sertakan kolom LOBdipilih di konsol tugas). Dalam kasus ini, AWS DMS tidak memigrasi kolom MEDIUMBLOB, LONGBLOB, MEDIUMTEXT apapun ke target.

    Kolom BLOB, TINYBLOB, TEXT, dan TINYTEXT tidak terpengaruh dan dimigrasi ke target.

  • Tabel data temporal atau tabel sistem-versi tidak didukung pada sumber MariaDB dan basis data target.

  • Jika migrasi antara dua klaster MySQL Amazon RDS Aurora, titik akhir sumber MySQL RDS Aurora, titik akhir sumber MySQL RDS Aurora, bukan instans replika.

  • AWS DMS saat ini tidak mendukung migrasi tampilan untuk MariaDB.

  • AWS DMS tidak mendukung perubahan DDL untuk tabel dipartisi untuk MySQL.

  • AWS DMS saat ini tidak mendukung transaksi XA.

  • AWS DMStidak mendukung GTID untuk replikasi.

  • AWS DMStidak mendukung kompresi transaksi log biner.

Atribut sambungan tambahan saat menggunakan MySQL sebagai sumber untuk AWS DMS

Anda dapat menggunakan atribut sambungan tambahan untuk mengonfigurasi sumber MySQL. Anda menentukan pengaturan ini ketika Anda membuat titik akhir sumber. Jika Anda memiliki beberapa pengaturan atribut sambungan, pisahkan satu sama lain dengan titik koma tanpa spasi putih tambahan (misalnya, oneSetting;thenAnother).

Tabel berikut menunjukkan atribut sambungan tambahan yang tersedia saat menggunakan Amazon RDS MySQL sebagai sumber untuk AWS DMS

NamaDeskripsi
eventsPollInterval

Menentukan seberapa sering memeriksa log biner untuk perubahan/peristiwa baru ketika basis data diam.

Nilai default: 5

Nilai yang valid: 1—60

Contoh: eventsPollInterval=5;

Dalam contoh, AWS DMS memeriksa perubahan dalam log biner setiap lima detik.

executeTimeout

UntukAWS DMSversi 3.4.7 dan yang lebih baru, menetapkan batas waktu pernyataan klien untuk titik akhir sumber MySQL, dalam hitungan detik.

Nilai default: 60

Contoh: executeTimeout=1500;

Untuk contoh ini, pernyataan apa punAWS DMSmengeksekusi terhadap database sumber MySQL kali keluar jika dibutuhkan lebih dari 1500 detik.

serverTimezone

Menentukan zona waktu untuk basis data sumber MySQL.

Contoh: serverTimezone=US/Pacific;

Jangan menyertakan data zona waktu dalam tanda kutip tunggal.

afterConnectScript

Menentukan script untuk menjalankan segera setelah AWS DMSterhubung ke titik akhir. Tugas migrasi terus berjalan terlepas jika pernyataan SQL berhasil atau gagal.

Nilai yang valid: Satu atau lebih pernyataan SQL yang valid, yang dimulai dengan titik koma.

Contoh: afterConnectScript=ALTER SESSION SET CURRENT_SCHEMA = system;

CleanSrcMetadataOnMismatch

Membersihkan dan membuat kembali tabel metadata informasi pada instans replikasi ketika terjadi ketidakcocokan. Misalnya, dalam situasi di mana menjalankan alter DDL di tabel dapat mengakibatkan informasi yang berbeda mengenai tabel cache dalam instans replikasi. .Boolean

Nilai default: false

Contoh: CleanSrcMetadataOnMismatch=false;

Jenis data sumber untuk MySQL

Tabel berikut menunjukkan jenis data sumber basis data MySQL yang didukung saat menggunakan AWS DMS dan pemetaan default dari jenis data AWS DMS.

Untuk informasi tentang cara melihat jenis data yang dipetakan dalam target, lihat bagian titik akhir target yang Anda gunakan.

Untuk informasi tambahan tentang jenis data AWS DMS, lihat Tipe data untuk AWS Database Migration Service.

Jenis data MySQL

Jenis data AWS DMS

INT

INT4

MEDIUMINT

INT4

BIGINT

INT8

TINYINT

INT1

DECIMAL(10)

NUMERIC (10,0)

BINARY

BYTES(1)

BIT

BOOLEAN

BIT(64)

BYTES(8)

BLOB

BYTES(66535)

LONGBLOB

BLOB

MEDIUMBLOB

BLOB

TINYBLOB

BYTES(255)

DATE

DATE

DATETIME

DATETIME

TIME

STRING

TIMESTAMP

DATETIME

YEAR

INT2

DOUBLE

REAL8

FLOAT

REAL(DOUBLE)

Rentang FLOAT yang didukung adalah -1.79E+308 hingga -2.23E-308, 0 dan 2.23E-308 hingga 1.79E+308

Jika nilai-nilai FLOAT tidak dalam rentang ini, petakan jenis data FLOAT ke jenis data STRING.

VARCHAR (45)

WSTRING (45)

VARCHAR (2000)

WSTRING (2000)

VARCHAR (4000)

WSTRING (4000)

VARBINARY (4000)

BYTES (4000)

VARBINARY (2000)

BYTE (2000)

CHAR

WSTRING

TEXT

WSTRING

JSON

NCLOB

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 (length)

Di sini, length adalah panjang dari nilai terpanjang di ENUM.

SET

WSTRING (length)

Di sini, length adalah total panjang semua nilai dalam SET, termasuk koma.

Dalam beberapa kasus, Anda mungkin menentukan jenis data DATETIME dan TIMESTAMP dengan nilai “nol” (yaitu 0000-00-00). Jika demikian, pastikan bahwa basis data target dalam tugas replikasi mendukung nilai-nilai “nol” untuk jenis data DATETIME dan TIMESTAMP. Jika tidak, nilai-nilai ini dicatat sebagai null pada target.