Dalam serangkaian empat tutorial, kami mengeksplorasi migrasi instans database MySQL ke database PostgreSQL dengan menggunakan AWS Database Migration Service (DMS). Dalam tutorial pertama, “Migrating MySQL to PostgreSQL on AWS RDS, Part 1,” kami memperkenalkan DMS dan membuat pengguna IAM untuk DMS. Dalam tutorial kedua, Migrating MySQL to PostgreSQL on AWS RDS, Part 2,” kami membuat instance MySQL dan PostgreSQL di RDS dan terhubung ke dua instance. Dalam tutorial lanjutan ini, kita akan membuat migrasi DMS untuk melakukan migrasi. Tutorial ini memiliki bagian berikut:
- Membuat Migrasi DMS
- Membuat Instance Replikasi
- Membuat Titik Akhir Tugas Migrasi
- Membuat Tugas Migrasi
- Kesimpulan
Membuat Migrasi DMS
Pada bagian ini, kita akan membuat Database Migration Service (DMS) untuk memigrasikan Database MySQL ke database PostgreSQL. Migrasi DMS terdiri dari komponen berikut:
- Contoh Replikasi
- Titik Akhir Basis Data
- Tugas
Kami akan membahas pembuatan masing-masing ini di sub-bagian, tetapi pertama-tama Anda perlu membuat migrasi DMS. Navigasikan ke dasbor DMS dan klik Buat migrasi , seperti yang ditunjukkan pada Gambar 1.
Gambar 1: Buat migrasi
Wizard DMS akan dimulai. Klik Next, seperti yang ditunjukkan pada Gambar 2.
Gambar 2: Wisaya DMS
Membuat Instance Replikasi
Selanjutnya, konfigurasikan instance replikasi, yang membuat koneksi antara database sumber dan target, mentransfer data, dan menyimpan perubahan data yang terjadi selama pemuatan data awal. Tentukan instance replikasi Nama dan Deskripsi , dan pilih Kelas instance (defaultnya adalah dms.t2.medium), seperti yang ditunjukkan pada Gambar 3. Pilih VPC dan pilih opsi untuk mengonfigurasi ketersediaan tinggi dengan Mult-Az; pengaturan default diatur ke “Tidak.” Pilih opsi Dapat diakses oleh publik .
Gambar 3: Mengonfigurasi Instance Replikasi
Dalam Lanjutan , pertahankan setelan default untuk Penyimpanan yang dialokasikan (50 GB), Grup Subnet Replikasi, Availability zone (Tidak ada preferensi), dan Grup Keamanan VPC (Gunakan default), seperti yang ditunjukkan pada Gambar 4. Pilih kunci master KMS (dbms) yang dibuat sebelumnya di Mengatur Lingkungan bagian.
Gambar 4: Mengonfigurasi Pengaturan Lanjutan untuk Instance Replikasi
Klik Next, seperti yang ditunjukkan pada Gambar 5.
Gambar 5: Selanjutnya
Instance replikasi mulai dibuat, seperti yang ditunjukkan oleh pesan pada Gambar 6. Selanjutnya, koneksi database sumber dan target perlu dikonfigurasi, yang akan kita selesaikan di sub-bagian berikutnya.
Gambar 6: Instance Replikasi mulai dibuat
Membuat Titik Akhir Tugas Migrasi
Instance replikasi dapat memakan waktu beberapa menit untuk dibuat. Titik akhir migrasi dapat ditambahkan saat instance replikasi sedang dibuat. Pilih Mesin sumber sebagai “mysql,” seperti yang ditunjukkan pada Gambar 7.
Gambar 7: Memilih Mesin Sumber
Pilih Mesin target sebagai “postgres,” seperti yang ditunjukkan pada Gambar 8.
Gambar 8: Memilih Mesin Target
Di Nama Server , tentukan Endpoint untuk instans DB RDS untuk database dengan menghapus :port akhiran. Untuk database MySQL, Titik Akhir RDS adalah mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com:3306 . Oleh karena itu, tentukan Servername sebagai mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com , seperti yang ditunjukkan pada Gambar 9. Untuk database PostgreSQL di RDS, Endpointnya adalah postgresdb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com:5432; oleh karena itu, tentukan Servername sebagai postgresdb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com . Tentukan port secara terpisah untuk database sumber dan target:3306 untuk database MySQL dan 5432 untuk Postgres.
Gambar 9: Menentukan Nama Server dan Port untuk Basis Data Sumber dan Target
Gulir ke bawah untuk pengaturan konfigurasi titik akhir lainnya, seperti yang ditunjukkan pada Gambar 10. Pilih mode SSL sebagai tidak ada untuk database sumber dan target. Tentukan Nama Pengguna dan Kata Sandi sebagaimana dikonfigurasi saat membuat instans DB RDS. Tentukan nama Database PostgreSQL (postgresdb), juga seperti yang dikonfigurasi saat membuat instans DB RDS.
Gambar 10: Menentukan mode SSL, Nama Pengguna, Kata Sandi, dan SID atau Nama Database
Dalam pengaturan Lanjutan, atribut koneksi tambahan yang tersedia untuk Database MySQL dan database PostgreSQL dapat ditentukan, tetapi tidak ada yang diperlukan untuk tutorial ini. Pilih kunci master KMS (dbms) untuk database sumber dan target (lihat Gambar 11). Untuk menguji titik akhir DMS, Jalankan pengujian tombol disediakan, seperti yang ditunjukkan pada Gambar 11. Jalankan tes tombol berwarna abu-abu atau dinonaktifkan hingga instance replikasi dibuat.
Gambar 11 Mengonfigurasi Pengaturan Lanjutan untuk Titik Akhir DMS
Ketika instance replikasi telah dibuat, pesan “Instance replikasi berhasil dibuat” akan ditampilkan, seperti yang ditunjukkan pada Gambar 12.
Gambar 12: Instance replikasi berhasil dibuat
Setelah instance replikasi dibuat, Jalankan pengujian tombol menjadi diaktifkan. Klik Jalankan pengujian , seperti yang ditunjukkan pada Gambar 13, untuk setiap database.
Gambar 13: Jalankan tes
Koneksi mulai diuji, seperti yang ditunjukkan oleh pesan “Menguji koneksi titik akhir” pada Gambar 14.
Gambar 14: Menguji Koneksi Titik Akhir
Jika koneksi titik akhir telah dikonfigurasi sesuai kebutuhan, pesan “Koneksi berhasil diuji” akan ditampilkan, seperti yang ditunjukkan pada Gambar 15. Klik Berikutnya.
Gambar 15: Koneksi berhasil diuji
Membuat Tugas Migrasi
Setelah membuat instance replikasi dan titik akhir basis data, selanjutnya kita akan membuat tugas migrasi untuk menghubungkan ke titik akhir dan benar-benar mentransfer data. Di Buat tugas wizard, tentukan Nama tugas (default juga ditentukan) dan menambahkan deskripsi tugas (lihat Gambar 16). Pilih opsi untuk Memulai tugas saat membuat .
Gambar 16: Buat wizard tugas
Titik akhir Sumber dan Target serta instans replikasi telah dikonfigurasi sebelumnya dan tidak dapat dimodifikasi saat membuat tugas. Pilih Jenis migrasi , yang mencantumkan tiga opsi, seperti yang ditunjukkan pada Gambar 17.
- Migrasikan data yang ada :Memigrasikan skema, tabel, dan data tabel yang sudah ada di database sumber, tetapi tidak memigrasikan perubahan berikutnya secara berkelanjutan.
- Migrasikan data yang ada dan replika perubahan yang sedang berlangsung :Memigrasikan skema, tabel, dan data tabel yang sudah ada di database sumber dan juga memigrasikan perubahan berikutnya secara berkelanjutan.
- Hanya meniru perubahan data :Tidak memigrasikan skema, tabel, dan data yang ada dan hanya memigrasikan perubahan data.
Pilih Migrasikan data yang ada opsi, seperti yang ditunjukkan pada Gambar 17. Untuk memigrasikan perubahan, yang disediakan oleh dua opsi lainnya, waktu retensi log biner pada instans DB MySQL harus ditingkatkan menjadi 24 jam atau lebih.
Gambar 17: Memilih jenis Migrasi sebagai Migrasi data yang ada
Selanjutnya, konfigurasikan Setelan Tugas . Mode persiapan tabel target pengaturan berlaku untuk tabel pada database target dan menyediakan tiga opsi:
- Tidak melakukan apa-apa :Data dan metadata dari tabel target tidak diubah
- Lepaskan tabel sesuai target :Tabel yang ada, jika ada, dibuang dan tabel baru dibuat
- Memotong :Tabel terpotong, yang menyiratkan bahwa data tabel dihapus tetapi metadata tabel tidak diubah. Sertakan kolom LOB dalam replikasi pengaturan berlaku untuk kolom tipe data LOB di database sumber, dan menyediakan tiga opsi:
- Jangan sertakan kolom LOB :kolom LOB dikecualikan dari migrasi
- Mode LOB penuh :Memigrasikan LOB lengkap terlepas dari ukurannya; LOB dimigrasikan dalam beberapa bagian, yang dapat memperlambat proses migrasi
- Mode LOB terbatas :Memotong LOB ke ukuran yang ditentukan dalam ukuran LOB maks (kb)
Pilih Mode persiapan tabel target sebagai Lakukan apa-apa, seperti yang ditunjukkan pada Gambar 18. Pilih Sertakan kolom LOB dalam replikasi sebagai Mode LOB terbatas dan tentukan Ukuran LOB Maks sebagai 32 kb (default). Pilih Aktifkan pencatatan pilihan.
Gambar 18: Pengaturan Tugas
Selanjutnya, tambahkan aturan pemilihan dan aturan transformasi di Pemetaan tabel , seperti yang ditunjukkan pada Gambar 19. Pemetaan tabel dapat ditambahkan dengan menggunakan Terpandu antarmuka pengguna atau sebagai JSON . UI Terpandu direkomendasikan. Setidaknya satu aturan pemilihan harus ditambahkan dan aturan transformasi bersifat opsional. Aturan pemilihan diterapkan, sedangkan pemilihan skema, tabel, dan kolom dari database sumber dan aturan transformasi diterapkan sebelum skema, tabel, dan kolom dimigrasikan ke database target.
Gambar 19: Pemetaan tabel
Skema dapat dipilih dari Nama skema adalah tarik-turun atau, jika tidak ada yang terdaftar, pilih Masukkan skema dan tentukan skema di Nama skema seperti bidang. Tindakan tarik-turun mencantumkan dua opsi:Sertakan dan Kecualikan . Opsi Sertakan menyertakan pilihan yang dibuat untuk skema dan tabel dan opsi Kecualikan tidak menyertakan skema dan tabel. Pengecualian diproses setelah Termasuk. Tidak semua skema harus dipilih dan tidak semua tabel dari skema harus dipilih.
Kami akan menambahkan aturan pemilihan berikut:
- Sertakan semua skema dan semua tabel dari database sumber
Untuk aturan pemilihan, pilih Masukkan skema dan tentukan Nama skema adalah sebagai % , yang memilih semua skema dalam database sumber, seperti yang ditunjukkan pada Gambar 20. Tentukan Nama tabel seperti sebagai % , yang memilih semua tabel dalam skema yang dipilih. Pilih Tindakan sebagai Sertakan .
Gambar 20: Mengonfigurasi Aturan Pemilihan
Klik Tambahkan aturan pemilihan (lihat Gambar 21).
Gambar 21: Menambahkan aturan pemilihan
Aturan pemilihan ditambahkan, seperti yang ditunjukkan pada Gambar 22. Saat tugas dibuat, peran IAM dms-cloudwatch-logs-role dibuat untuk memungkinkan DMS mengakses CloudWatch.
Gambar 22: Aturan pemilihan ditambahkan
Selanjutnya, tambahkan aturan transformasi. Untuk ini, klik tambahkan aturan transformasi tautan, seperti yang ditunjukkan pada Gambar 23.
Gambar 23: Tambahkan aturan transformasi
Aturan transformasi memiliki setelan untuk Target . Aturan memiliki tiga opsi, seperti yang ditunjukkan pada Gambar 24.
- Skema
- Tabel
- Kolom
Di mana menentukan subset dari objek yang dipilih oleh aturan seleksi. Tindakannya adalah transformasi yang akan diterapkan dan opsi berikut tersedia:
- Ganti nama menjadi (tersedia untuk objek Skema dan Tabel)
- Hapus kolom (tersedia untuk Kolom)
- Buat huruf kecil (tersedia untuk Skema, Tabel, dan Kolom)
- Buat huruf besar (tersedia untuk Skema, Tabel, dan Kolom)
- Tambahkan awalan (tersedia untuk Skema, Tabel, dan Kolom)
- Hapus awalan (tersedia untuk Skema, Tabel, dan Kolom)
Gambar 24: Pengaturan aturan transformasi
PostgreSQL menggunakan huruf kecil dalam skema, tabel, dan kolom. Kami akan menambahkan tiga aturan transformasi:
- Buat semua Skema menjadi huruf kecil
- Jadikan semua Tabel menjadi huruf kecil
- Buat semua kolom menjadi huruf kecil
Untuk menambahkan aturan transformasi pertama ini, pilih Target sebagai Skema seperti terlihat pada Gambar 25. Tentukan Nama skema seperti % . Pilih Tindakan sebagai Buat huruf kecil dan klik Tambahkan aturan transformasi .
Gambar 25: Menambahkan Aturan Transformasi
Aturan transformasi ditambahkan (lihat Gambar 26). Untuk menambahkan aturan transformasi lainnya, klik tambahkan aturan transformasi tautkan lagi.
Gambar 26: Aturan transformasi ditambahkan
Pilih Target sebagai Tabel , seperti yang ditunjukkan pada Gambar 27. Tentukan Nama skema seperti % . Pilih Nama tabel seperti % . Pilih Tindakan sebagai Buat huruf kecil dan klik Tambahkan aturan transformasi .
Gambar 27: Menambahkan Aturan Transformasi untuk mengganti nama tabel
Pilih Target sebagai Kolom , seperti yang ditunjukkan pada Gambar 28. Tentukan Nama skema seperti % . Pilih Nama tabel seperti % . Pilih Nama kolom seperti % . Pilih Tindakan sebagai Buat huruf kecil dan klik Tambahkan aturan transformasi .
Gambar 28: Menambahkan aturan transformasi untuk membuat nama kolom menjadi huruf kecil
Tiga aturan seleksi dan aturan transformasi yang ditambahkan ditunjukkan pada Gambar 29. Ketika tugas dijalankan, aturan seleksi diterapkan sebelum aturan transformasi. Untuk setelan lanjutan, klik Setelan Lanjutan , seperti yang ditunjukkan pada Gambar 29.
Gambar 29: Aturan Seleksi dan Aturan Transformasi
Di Setelan Lanjutan , pilih Setelan tabel kontrol dan tentukan Buat tabel kontrol di target menggunakan skema sebagai publik , seperti yang ditunjukkan pada Gambar 30, dan klik Selesai.
Gambar 30: Mengatur Skema Tabel Kontrol di Target
Pengaturan Lanjutan ditambahkan (lihat Gambar 31).
Gambar 31: Pengaturan Lanjut
Setelah mengonfigurasi tugas, klik Buat tugas , seperti yang ditunjukkan pada Gambar 32, untuk membuat tugas.
Gambar 32: Buat tugas
Tugas migrasi dibuat, seperti yang ditunjukkan pada Gambar 33. Awalnya, status tugas adalah “Membuat.”
Gambar 33: Tugas migrasi
Tugas mungkin memiliki salah satu status yang dibahas dalam Tabel 1.
Status | Deskripsi |
Membuat | Tugas sedang dibuat. |
Siap | Tugas siap untuk dimulai dan dijalankan. Biasanya mengikuti status “Membuat”. |
Mulai | Tugas dimulai, selama waktu itu tugas terhubung dengan instance replikasi dan titik akhir database. Aturan seleksi dan transformasi diterapkan. |
Berjalan | Tugas sedang berjalan, yang menyiratkan bahwa tugas sedang memigrasi database. |
Pemuatan Selesai | Tugas telah selesai memuat (memigrasi) database. |
Gagal | Tugas gagal. |
Kesalahan | Terjadi kesalahan selama migrasi. Beberapa skema dan tabel mungkin berhasil dimigrasikan tetapi setidaknya satu skema atau tabel gagal dimigrasikan. |
Memodifikasi | Tugas dimodifikasi, biasanya setelah pengguna memodifikasi tugas. |
Berhenti | Tugas dihentikan, biasanya setelah pengguna memilih untuk menghentikan tugas. |
Berhenti | Tugas dihentikan, yang mungkin disebabkan oleh pengguna yang menghentikan tugas atau karena jenis Migrasi dari Migrasi data yang ada dan mereplikasi perubahan yang sedang berlangsung digunakan dan tugas telah menyelesaikan pemuatan awal . |
Menghapus | Tugas akan dihapus, karena pengguna telah menghapus tugas. |
Tabel 1: Status Tugas
Dua peran IAM, satu untuk CloudWatch dan lainnya untuk VPC, dibuat, seperti yang ditunjukkan pada Gambar 34.
Gambar 34: Peran IAM untuk DMS
Kesimpulan
Dalam tutorial ketiga tentang migrasi instans database MySQL di RDS ke instans database Postgres di RDS, kami membuat migrasi DMS termasuk instans replikasi, titik akhir migrasi, dan tugas migrasi. Dalam tutorial keempat, kita akan membahas menjalankan migrasi DMS untuk melakukan migrasi dan mengevaluasi hasilnya.