Migrasi dari On Premise Database (MySQL di Compute Engine) ke MySQL di Cloud SQL
Bisa untuk 2 use case, yang ini untuk migrasi menggunakan database migration service, jadi akan membuat database baru, dan use case lainnya untuk migrasi ke database yang sudah ada
Opsi kenapa kita pakai continous (CDC)? Bisa aja buat mempersiapkan seluruh keperluan, jadi kita masih mengambil data dari sumber dan mengirimkan secara real-time ke cloud, sebelum pada akhirnya kita mengirimkan request asli ke cloud dan mematikan database sumber
Link video: Migrating On-Prem MySQL to Google Cloud SQL | Google Cloud Migration | GCP Database Migration
posisi nya dia punya VM dengan instance MySQL (cek di aplikasi workbench nya), trus ada 2 database
migration dan onpremmigration, yang onprem migration tabel nya udah di-insert
Masuk ke service Database Migration
Klik Connection profiles buat ngebikin koneksi untuk migrasi sumber ke destinasi nya
Klik create profile, trus pilih jenis database nya (MySQL) karena di VM (onprem) nya itu MySQL
isi nama profile, anggap aja kek nama koneksi aja, otomatis buat id juga
isi hostname, biarin port nya karena default MySQL
isi juga kredensial yaitu username dan password nya
Inget itu cuma buat profile atau koneksi on premise nya doang, sekarang kita set up jembatan untuk target migrasi nya
Klik migration jobs
lalu klik create migration jobs
beri nama migration job name nya, otomatis jadi migration job id juga
trus tentuin mesin sumber nya apaan
Tentukan tipe migrasi nya, untuk Continous itu kayak CDC, ada perubahan maka di upload, dengan kata lain ini tuh real-time synchronization. Ada juga tipe One-time, full migrasi sekali doang secara keseluruhan
Klik save and continue
Lanjut ke step define a source, ini kita pilih profile yang tadi dah dibuat, otomatis sistem nya bakalan ngenanlin si sumber, kayak hostname/IP, port, username dan password dll
Save and continue
Sekarang di step create a destination.
# Note: di tahap ini, bukan untuk ngisi koneksi existing database, melainkan tahapan ini akan membuat instance baru
Masukin password cloud instance nya
pilih versi database
Next ke tahap define connectivity method
Gw gak ngerti ini ada 3 opsi di method nya
1. IP allowlist, Access from external networks, not secured
2. Reverse-SSH tunnel via cloud-hosted VM, Access from external-networks, secure, low throughput
3. VPC peering, Access a data source hosted in Google's network
Trus di video ngisi VPC peering, kemudian ada opsi dropdown lagi buat milih sumber VPC nya, dan dia pilih default
Last step, Test and create migration jobs
Pastikan semua nya udah sesuai, mesin sumber dan destinasi, tipe, port si sumber, dll
Di video ini ada error MySQL binlog is configured incorrectly on the source database. Solusi nya perlu kita define log-bin dan server nya di file conf.
ke SSH, trus vim, pastikan udah exit dari command SQL nya
vim /etc/mysql.conf.d/mysql.cnf
di bagian [mysqld] tambahin:
log-bin=mysql-bin
server-id=1
save, restart
systemctl restart mysql.service
On premise database (in VM) 34.69.7.224
nama job migrate nya: migrationonprim
nama koneksi profile: onprimemysql
ada database migration dan table persons
ada database onprimmigrations dan table person dan 1 row data
Cloud SQL database (newly created instance) 34.136.234.233
nama instance nya: migrationonprim
Katanya sih kita bisa tetap masukin data ke on prem DB nya dan nanti akan terkirim juga ke Cloud SQL instance karena job type yg kita pilih tadi itu continous.
Alhasil nanti klo udah selesai, di tampilan Cloud SQL instance nya bakalan jadi nama_instance-master sebagai sumber (external primary), dan dibawahnya akan ada nama_instance sebagai read-replica, sesuai dengan hostname/ip address nya. Kita gak bisa bikin database baru di instance Cloud SQL nya karena migrate ini bersifat read only/replica, jadi gak ada akses write
Jadi gimana dong caranya klo kita mau pakai si Cloud SQL instance nya sebagai database utama biar bisa akses read and write? Kita buka Database Migration service nya, trus klik Promote, nanti akan ada konfirmasi untuk memutus koneksi dengan sumber dan membuat database instance nya bisa memiliki akses write.
Yang tadinya ada nama_instance di bawah nama_instance-master, sekarang jadi terpecah dan menjadi individu, gak ada lagi terhubung dari yang awalnya di Cloud SQL gak bisa akses write, sekarang dah aman.
Karena job migration dan profile nya udah selesai dan gak akan dipakai lagi, udah bisa dihapus. efek nya juga akan menghapus nama_instance-master, kata video nya sih gitu, tapi dia malah ngapus manual karena belum berhasil wwkkw
Komentar
Posting Komentar