GSP918
Ringkasan
Database Migration Service menyediakan opsi untuk tugas satu kali dan berkelanjutan untuk memigrasikan data ke Cloud SQL. Layanan ini menawarkan berbagai metode konektivitas, yang mencakup daftar IP yang diizinkan, tunnel SSH terbalik, peering VPC, dan antarmuka Private Service Connect. Pelajari lebih lanjut opsi konektivitas dari Panduan Mengonfigurasi konektivitas.
Lab ini berfokus pada migrasi database PostgreSQL mandiri, yang dihosting di virtual machine, ke Cloud SQL untuk PostgreSQL. Migrasi ini memanfaatkan tugas berkelanjutan dari Database Migration Service dan menggunakan peering VPC untuk membuat konektivitas.
Penggunaan Database Migration Service untuk migrasi database memerlukan beberapa langkah persiapan di database sumber:
- Membuat pengguna khusus: Pengguna ini harus memiliki hak replikasi.
- Menambahkan ekstensi
pglogical: Ekstensi ini harus diinstal di database sumber.
- Memberikan hak yang diperlukan: Pengguna khusus harus diberi hak ke schemata dan tabel dalam database yang ditetapkan untuk migrasi, serta ke database
postgres.
Setelah penyiapan selesai, Anda akan membuat dan menjalankan tugas migrasi. Proses migrasi mencakup:
- Salinan Awal: Mengonfirmasi keberhasilan transfer salinan awal database ke instance Cloud SQL Anda.
- Migrasi Berkelanjutan: Menjelajahi bagaimana tugas migrasi yang sedang berlangsung menerapkan pembaruan data real-time dari sumber ke instance Cloud SQL.
- Promosi: Mengakhiri tugas dengan mempromosikan instance Cloud SQL agar berfungsi sebagai database mandiri, yang siap untuk operasi baca dan tulis.
Yang akan Anda pelajari
Di lab ini, Anda akan mempelajari cara melakukan tugas-tugas berikut:
- Menyiapkan database sumber untuk migrasi.
- Membuat profil untuk koneksi sumber ke instance PostgreSQL (misalnya PostgreSQL mandiri).
- Mengonfigurasi konektivitas antara instance database sumber dan tujuan menggunakan peering VPC.
- Mengonfigurasi aturan akses firewall dan database guna mengizinkan akses ke database sumber untuk migrasi.
- Membuat, menjalankan, dan memverifikasi tugas migrasi berkelanjutan menggunakan Database Migration Service.
- Mempromosikan instance tujuan (Cloud SQL untuk PostgreSQL) menjadi database mandiri untuk pembacaan dan penulisan data.
Penyiapan dan persyaratan
Sebelum mengklik tombol Start Lab
Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Untuk menyelesaikan lab ini, Anda memerlukan:
- Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.
Cara memulai lab dan login ke Konsol Google Cloud
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran.
Di sebelah kanan terdapat panel Lab setup and access yang berisi hal-hal berikut:
- Tombol Open Google Cloud console
- Kredensial sementara (nama pengguna dan sandi) yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
Perhatikan bahwa timer lab terletak di dekat bagian atas halaman, yang menampilkan waktu yang tersisa.
-
Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).
Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.
Tips: Atur tab di jendela terpisah secara berdampingan.
Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
-
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
{{{user_0.username | "Username"}}}
Anda juga dapat menemukan Username di panel Lab setup and access.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}}
Anda juga dapat menemukan Password di panel Lab setup and access.
-
Klik Next.
Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda.
Catatan: Penggunaan akun Google Cloud sendiri untuk lab ini mungkin dikenai biaya tambahan.
-
Klik untuk melanjutkan ke halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan daftar uji coba gratis.
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search.
Mengaktifkan Cloud Shell
Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.
-
Klik Activate Cloud Shell
di bagian atas Konsol Google Cloud.
-
Klik jendela berikut:
- Lanjutkan melalui jendela informasi Cloud Shell.
- Beri otorisasi ke Cloud Shell untuk menggunakan kredensial Anda guna melakukan panggilan Google Cloud API.
Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke Project_ID, . Output berisi baris yang mendeklarasikan Project_ID untuk sesi ini:
Project Cloud Platform Anda dalam sesi ini disetel ke {{{project_0.project_id | "PROJECT_ID"}}}
gcloud adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.
- (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
- Klik Authorize.
Output:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
Untuk menetapkan akun aktif, jalankan:
$ gcloud config set account `ACCOUNT`
- (Opsional) Anda dapat menampilkan daftar ID project dengan perintah ini:
gcloud config list project
Output:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Catatan: Untuk mendapatkan dokumentasi gcloud yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
Memverifikasi bahwa Database Migration API sudah aktif
Database Migration API diperlukan untuk mengelola pergerakan data database melalui Database Migration Service.
- Di kolom judul Konsol Google Cloud, masukkan Database Migration API ke kolom Search, lalu klik Database Migration API dari hasilnya.
Tombol Manage akan terlihat saat API diaktifkan.
- Jika Anda melihat tombol Enable, klik tombol tersebut untuk mengaktifkan API.
Memverifikasi bahwa Service Networking API sudah aktif
Service Networking API diperlukan untuk mengonfigurasi Cloud SQL guna mendukung Peering VPC dan koneksi melalui alamat IP pribadi.
- Di kolom judul Konsol Cloud, masukkan Service Networking API ke kolom Search, lalu klik Service Networking API dari hasilnya.
Tombol Manage akan terlihat saat API diaktifkan.
- Jika Anda melihat tombol Enable, klik tombol tersebut untuk mengaktifkan API.
Tugas 1. Menyiapkan database sumber untuk migrasi
Guna menyiapkan database sumber untuk migrasi melalui Database Migration Service, Anda akan mengupgrade database dengan ekstensi pglogical, lalu membuat pengguna migrasi database.
Untuk mengupgrade database dengan ekstensi pglogical, Anda dapat melakukan langkah-langkah berikut:
- Menginstal dan mengonfigurasi ekstensi database
pglogical.
- Mengonfigurasi database PostgreSQL mandiri untuk mengizinkan akses dari Cloud Shell dan Cloud SQL.
- Menambahkan ekstensi database
pglogical ke database postgres, orders, dan gmemegen_db di server mandiri.
Untuk membuat pengguna migrasi database, Anda akan membuat pengguna migration_admin (dengan izin Replikasi) untuk migrasi database, lalu memberi pengguna tersebut izin yang diperlukan untuk schemata dan relasi.
Mengupgrade database dengan ekstensi pglogical
Di bagian ini, Anda akan mendownload dan menambahkan ekstensi database pglogical ke database orders dan postgres di instance VM postgresql-vm.
-
Di Konsol Google Cloud, pada Navigation menu (
), klik Compute Engine > VM instances.
-
Di instance VM postgresql-vm, klik SSH.
-
Jika diminta, klik Authorize
-
Di jendela terminal baru, instal ekstensi database pglogical menggunakan perintah berikut:
sudo apt install postgresql-14-pglogical
Catatan: pglogical adalah sistem replikasi logis yang diimplementasikan sepenuhnya sebagai ekstensi PostgreSQL. Sistem ini sepenuhnya terintegrasi dan tidak memerlukan pemicu atau program eksternal. Sebagai alternatif dari replikasi fisik, metode ini menawarkan cara mereplikasi data yang sangat efisien dengan model publikasi/langganan untuk replikasi selektif.
- Download dan terapkan beberapa konfigurasi tambahan ke file konfigurasi PostgreSQL (untuk mengaktifkan ekstensi
pglogical), lalu mulai ulang layanan postgresql menggunakan perintah berikut:
sudo su - postgres -c "gsutil cp gs://spls/gsp918/pg_hba_append.conf ."
sudo su - postgres -c "gsutil cp gs://spls/gsp918/postgresql_append.conf ."
sudo su - postgres -c "cat pg_hba_append.conf >> /etc/postgresql/14/main/pg_hba.conf"
sudo su - postgres -c "cat postgresql_append.conf >> /etc/postgresql/14/main/postgresql.conf"
sudo systemctl restart postgresql@14-main
Di pg_hba.conf, file berikut menambahkan aturan untuk mengizinkan akses ke semua host:
#GSP918 - allow access to all hosts
host all all 0.0.0.0/0 md5
Di postgresql.conf, perintah berikut menetapkan konfigurasi minimal untuk pglogical agar dapat memproses semua alamat:
#GSP918 - added configuration for pglogical database extension
wal_level = logical # minimal, replica, or logical
max_worker_processes = 10 # one per database needed on provider node
# one per node needed on subscriber node
max_replication_slots = 10 # one per node needed on provider node
max_wal_senders = 10 # one per node needed on provider node
shared_preload_libraries = 'pglogical'
max_wal_size = 1GB
min_wal_size = 80MB
listen_addresses = '*' # what IP address(es) to listen on, '*' is all
Cuplikan kode di atas ditambahkan ke file yang relevan dan layanan PostgreSQL dimulai ulang.
- Jalankan perintah berikut untuk meluncurkan alat psql:
sudo su - postgres
psql
- Tambahkan ekstensi database
pglogical ke database postgres, orders, dan gmemegen_db menggunakan perintah berikut:
\c postgres;
CREATE EXTENSION pglogical;
\c orders;
CREATE EXTENSION pglogical;
\c gmemegen_db;
CREATE EXTENSION pglogical;
- Lihat daftar database PostgreSQL di server:
\l
Anda akan mendapatkan output berikut yang mencantumkan database postgresql default, serta database orders dan gmemegen_db yang disediakan untuk lab ini. Anda tidak menggunakan database gmemegen_db di lab ini.
Output:
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-------------+----------+----------+---------+---------+-----------------------
gmemegen_db | postgres | UTF8 | C.UTF-8 | C.UTF-8 |
orders | postgres | UTF8 | C.UTF-8 | C.UTF-8 |
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(5 rows)
Membuat pengguna migrasi database
Di bagian ini, Anda akan membuat pengguna khusus untuk mengelola migrasi database.
- Di psql, masukkan perintah berikut untuk membuat pengguna baru dengan peran replikasi:
CREATE USER migration_admin PASSWORD 'DMS_1s_cool!';
ALTER DATABASE orders OWNER TO migration_admin;
ALTER ROLE migration_admin WITH REPLICATION;
Menetapkan izin kepada pengguna migrasi
Di bagian ini, Anda akan menetapkan izin yang diperlukan kepada pengguna migration_admin agar Database Migration Service dapat memigrasikan database Anda.
- Di psql, jalankan perintah berikut untuk memberikan izin ke skema dan tabel
pglogical untuk database postgres:
\c postgres;
GRANT USAGE ON SCHEMA pglogical TO migration_admin;
GRANT ALL ON SCHEMA pglogical TO migration_admin;
GRANT SELECT ON pglogical.tables TO migration_admin;
GRANT SELECT ON pglogical.depend TO migration_admin;
GRANT SELECT ON pglogical.local_node TO migration_admin;
GRANT SELECT ON pglogical.local_sync_status TO migration_admin;
GRANT SELECT ON pglogical.node TO migration_admin;
GRANT SELECT ON pglogical.node_interface TO migration_admin;
GRANT SELECT ON pglogical.queue TO migration_admin;
GRANT SELECT ON pglogical.replication_set TO migration_admin;
GRANT SELECT ON pglogical.replication_set_seq TO migration_admin;
GRANT SELECT ON pglogical.replication_set_table TO migration_admin;
GRANT SELECT ON pglogical.sequence_state TO migration_admin;
GRANT SELECT ON pglogical.subscription TO migration_admin;
- Berikan izin ke skema dan tabel
pglogical untuk database orders menggunakan perintah berikut:
\c orders;
GRANT USAGE ON SCHEMA pglogical TO migration_admin;
GRANT ALL ON SCHEMA pglogical TO migration_admin;
GRANT SELECT ON pglogical.tables TO migration_admin;
GRANT SELECT ON pglogical.depend TO migration_admin;
GRANT SELECT ON pglogical.local_node TO migration_admin;
GRANT SELECT ON pglogical.local_sync_status TO migration_admin;
GRANT SELECT ON pglogical.node TO migration_admin;
GRANT SELECT ON pglogical.node_interface TO migration_admin;
GRANT SELECT ON pglogical.queue TO migration_admin;
GRANT SELECT ON pglogical.replication_set TO migration_admin;
GRANT SELECT ON pglogical.replication_set_seq TO migration_admin;
GRANT SELECT ON pglogical.replication_set_table TO migration_admin;
GRANT SELECT ON pglogical.sequence_state TO migration_admin;
GRANT SELECT ON pglogical.subscription TO migration_admin;
- Berikan izin ke skema dan tabel
public untuk database orders menggunakan perintah berikut:
GRANT USAGE ON SCHEMA public TO migration_admin;
GRANT ALL ON SCHEMA public TO migration_admin;
GRANT SELECT ON public.distribution_centers TO migration_admin;
GRANT SELECT ON public.inventory_items TO migration_admin;
GRANT SELECT ON public.order_items TO migration_admin;
GRANT SELECT ON public.products TO migration_admin;
GRANT SELECT ON public.users TO migration_admin;
- Berikan izin ke skema dan tabel
pglogical untuk database gmemegen_db menggunakan perintah berikut:
\c gmemegen_db;
GRANT USAGE ON SCHEMA pglogical TO migration_admin;
GRANT ALL ON SCHEMA pglogical TO migration_admin;
GRANT SELECT ON pglogical.tables TO migration_admin;
GRANT SELECT ON pglogical.depend TO migration_admin;
GRANT SELECT ON pglogical.local_node TO migration_admin;
GRANT SELECT ON pglogical.local_sync_status TO migration_admin;
GRANT SELECT ON pglogical.node TO migration_admin;
GRANT SELECT ON pglogical.node_interface TO migration_admin;
GRANT SELECT ON pglogical.queue TO migration_admin;
GRANT SELECT ON pglogical.replication_set TO migration_admin;
GRANT SELECT ON pglogical.replication_set_seq TO migration_admin;
GRANT SELECT ON pglogical.replication_set_table TO migration_admin;
GRANT SELECT ON pglogical.sequence_state TO migration_admin;
GRANT SELECT ON pglogical.subscription TO migration_admin;
- Berikan izin ke skema dan tabel
public untuk database gmemegen_db menggunakan perintah berikut:
GRANT USAGE ON SCHEMA public TO migration_admin;
GRANT ALL ON SCHEMA public TO migration_admin;
GRANT SELECT ON public.meme TO migration_admin;
Database sumber kini siap digunakan untuk migrasi. Izin yang Anda berikan ke pengguna migration_admin merupakan semua izin yang diperlukan Database Migration Service untuk memigrasikan database postgres, orders, dan gmemegen_db.
Selanjutnya, jadikan pengguna migration_admin sebagai pemilik tabel dalam database orders, sehingga Anda dapat mengedit data sumber nanti saat menguji migrasi.
- Jalankan perintah berikut:
\c orders;
\dt
ALTER TABLE public.distribution_centers OWNER TO migration_admin;
ALTER TABLE public.inventory_items OWNER TO migration_admin;
ALTER TABLE public.order_items OWNER TO migration_admin;
ALTER TABLE public.products OWNER TO migration_admin;
ALTER TABLE public.users OWNER TO migration_admin;
\dt
Output
List of relations
Schema | Name | Type | Owner
--------+----------------------+-------+-------
public | distribution_centers | table | migration_admin
public | inventory_items | table | migration_admin
public | order_items | table | migration_admin
public | products | table | migration_admin
public | users | table | migration_admin
(5 rows)
- Tutup sesi pengguna psql dan postgres menggunakan perintah berikut:
\q
exit
Klik Periksa progres saya untuk memverifikasi tujuan.
Menyiapkan instance sumber PostgreSQL untuk migrasi.
Tugas 2. Membuat dan memulai tugas migrasi berkelanjutan
Untuk membuat tugas migrasi baru, Anda harus menentukan instance database sumber menggunakan profil koneksi yang ada. Selanjutnya, Anda akan membuat instance database tujuan dan menyiapkan konektivitas yang diperlukan antara instance sumber dan tujuan.
Mendapatkan informasi konektivitas untuk instance sumber PostgreSQL
Pada langkah ini, Anda mengidentifikasi alamat IP internal instance database sumber yang Anda migrasikan ke Cloud SQL.
-
Di Konsol Google Cloud, pada Navigation menu (
), klik Compute Engine > VM instances.
-
Dalam daftar Instance, cari postgresql-vm.
-
Salin Internal IP (misalnya, 10.128.0.2) untuk digunakan saat mengonfigurasi profil koneksi di bagian berikutnya.
Membuat tugas migrasi berkelanjutan baru
-
Di kolom judul Konsol Google Cloud, untuk Search, ketik Database migration, tekan ENTER, lalu di hasil penelusuran, klik Database Migration.
-
Di panel kiri, klik Migration jobs, lalu klik Create migration job.
Catatan: Wizard tugas migrasi dimuat di sebelah kiri, yang menampilkan langkah-langkah konfigurasi berikutnya.
Memulai
Di langkah ini, Anda akan membuat tugas migrasi berkelanjutan baru.
- Di tab Get started, tentukan nilai berikut, lalu biarkan setelan lainnya sebagai default:
| Kolom |
Nilai |
| Migration job name |
vm-to-cloudsql |
| Source database engine |
PostgreSQL |
| Destination database engine |
Cloud SQL for PostgreSQL |
| Destination region |
|
| Migration job type |
Continuous |
- Klik Save & continue.
Menentukan sumber
Di langkah ini, Anda akan menentukan instance sumber untuk migrasi dan membuat profil koneksi baru untuk instance sumber PostgreSQL.
Profil koneksi menyimpan informasi tentang instance database sumber (misalnya PostgreSQL mandiri) dan digunakan oleh Database Migration Service untuk memigrasikan data dari sumber ke instance database Cloud SQL tujuan. Setelah dibuat, profil koneksi dapat digunakan kembali di berbagai tugas migrasi.
-
Untuk Source connection profile, pilih Create a connection profile.
-
Di tab Create connection profile, tentukan nilai berikut, dan biarkan nilai lainnya sebagai default:
| Kolom |
Nilai |
| Source engine |
PostgreSQL |
| Destination engine |
Cloud SQL for PostgreSQL |
| Profile type |
Source |
| Connection profile name |
postgres-vm |
| Region |
|
| Define connection configurations |
Define |
| Hostname or IP address |
IP internal untuk instance sumber PostgreSQL yang Anda salin di tugas sebelumnya (misalnya, 10.128.0.2) |
| Port |
5432 |
| Username |
migration_admin |
| Password |
DMS_1s_cool! |
- Klik Save.
- Klik Create.
Profil koneksi baru bernama postgres-vm akan muncul di halaman Define a source pada wizard tugas migrasi.
- Klik Save & continue.
Klik Periksa progres saya untuk memverifikasi tujuan.
Membuat profil koneksi untuk instance sumber PostgreSQL.
Menentukan tujuan
Di langkah ini, Anda akan menentukan instance tujuan untuk migrasi.
-
Untuk Type of destination instance, pilih Existing instance.
-
Untuk Select destination instance, pilih postgresql-cloudsql.
-
Klik Select & continue.
-
Jika diminta untuk mengonfirmasi, masukkan nama instance postgresql-cloudsql.
-
Klik Confirm & continue.
Catatan: Anda dapat mengabaikan catatan peringatan, "Your destination instance will be demoted and converted into a replica for your source database."
Menentukan metode konektivitas
Pada langkah ini, Anda menentukan metode konektivitas untuk migrasi.

-
Untuk Connectivity method, pilih VPC peering.
-
Untuk VPC, pilih default.
Peering VPC dikonfigurasi oleh Database Migration Service menggunakan informasi yang disediakan untuk Jaringan VPC (yang merupakan jaringan default dalam contoh ini).
Saat melihat pesan baru yang dibuat instance tujuan, lanjutkan ke langkah berikutnya.

- Klik Configure & continue.
Mengonfigurasi database migrasi
Pada langkah ini, Anda menentukan instance sumber untuk migrasi.
-
Untuk Databases to migrate, pilih All databases.
-
Klik Save & continue.
Mengizinkan akses ke instance postgresql-vm dari rentang IP yang dialokasikan secara otomatis
Di langkah ini, Anda akan mengedit file konfigurasi PostgreSQL pg_hba.conf untuk mengizinkan Database Migration Service mengakses database PostgreSQL mandiri.
-
Dapatkan rentang alamat IP yang dialokasikan. Di konsol, pada bagian Navigation menu (
), klik VPC Network, lalu klik kanan VPC network peering. Selanjutnya, pilih Open link in new tab.
-
Klik entri servicenetworking-googleapis-com, lalu klik Effective routes view di bagian bawah.
-
Dari dropdown untuk Network, pilih default, dan untuk Region, pilih . Klik View.
-
Di kolom Destination IP range, catat IP range (mis. 10.107.176.0/24) di samping rute peering-route-xxxxx... untuk digunakan di langkah berikutnya.
-
Dalam sesi terminal pada instance VM, edit file pg_hba.conf sebagai berikut:
sudo nano /etc/postgresql/14/main/pg_hba.conf
- Pada baris terakhir file:
#GSP918 - allow access to all hosts
host all all 0.0.0.0/0 md5
Ganti rentang "all IP addresses" (0.0.0.0/0) dengan rentang yang dicatat pada langkah sebelumnya.
#GSP918 - allow access to all hosts
host all all 10.107.176.0/24 md5
Catatan: Langkah di atas tidak diperlukan untuk menjalankan proses migrasi, tetapi berguna demi meningkatkan keamanan database sumber selama proses migrasi. Langkah tersebut juga membatasi akses setelah migrasi saat database yang dimigrasikan menjadi sumber tepercaya.
-
Tekan CTRL+O, ENTER, CTRL+X untuk menyimpan file dan keluar dari editor nano.
-
Mulai ulang layanan PostgreSQL agar perubahan dapat diterapkan. Dalam sesi terminal instance VM, jalankan perintah berikut:
sudo systemctl start postgresql@14-main
Menguji dan memulai tugas migrasi berkelanjutan
Pada langkah ini, Anda menguji dan memulai tugas migrasi.
-
Di tab Database Migration Service yang Anda buka sebelumnya, tinjau detail tugas migrasi.
-
Klik Test job.
-
Setelah pengujian berhasil, klik Create & start job.
-
Jika diminta untuk mengonfirmasi, klik Create & start.
Meninjau status tugas migrasi berkelanjutan
Pada langkah ini, Anda mengonfirmasi bahwa tugas migrasi berkelanjutan sedang berjalan.
-
Di Konsol Google Cloud, pada Navigation menu (
), klik Database migration > Migration jobs.
-
Klik tugas migrasi vm-to-cloudsql untuk melihat halaman detail.
-
Tinjau status tugas migrasi.
- Jika Anda belum memulai tugas, statusnya ditampilkan sebagai Not started. Anda dapat memilih untuk memulai atau menghapus tugas.
- Setelah tugas dimulai, statusnya akan ditampilkan sebagai Starting, lalu berubah menjadi Running untuk menunjukkan bahwa dump database awal sedang dalam proses.
- Setelah dump database awal diselesaikan, status phase akan menjadi CDC untuk menunjukkan bahwa migrasi berkelanjutan sedang aktif.
Saat fase tugas berubah menjadi CDC, lanjutkan ke tugas berikutnya.
Catatan: Tugas migrasi berkelanjutan akan tetap berada dalam status berjalan (running) untuk memastikan database tujuan akan terus menerima update data dari sumber.
Status akan berubah menjadi selesai setelah Anda mempromosikan database tujuan menjadi database mandiri untuk pembacaan dan penulisan data. Anda akan melakukannya di Tugas 4.
Klik Periksa progres saya untuk memverifikasi tujuan.
Membuat, memulai, dan meninjau tugas migrasi berkelanjutan.
Tugas 3. Mengonfirmasi data di Cloud SQL untuk PostgreSQL
Memeriksa database PostgreSQL di Cloud SQL
-
Di Konsol Google Cloud, pada Navigation menu (
), klik Cloud SQL.
-
Luaskan ID instance bernama postgresql-cloudsql-master.
-
Klik instance postgresql-cloudsql (replika baca PostgreSQL).
-
Pada menu Replica instance, klik Databases.
Perhatikan bahwa database bernama postgres, orders, dan gmemegen_db telah dimigrasikan ke Cloud SQL.
Terhubung ke instance PostgreSQL
-
Pada menu Replica instance, klik Overview.
-
Scroll ke bawah ke bagian Connect to this instance, lalu klik Open Cloud Shell.
Perintah untuk terhubung ke PostgreSQL akan diisi otomatis di Cloud Shell sebagai berikut:
gcloud sql connect postgresql-cloudsql --user=postgres --quiet
-
Jalankan perintah yang telah diisi secara otomatis.
-
Jika diminta, klik Authorize untuk API.
-
Saat diminta memasukkan sandi, yang telah Anda tetapkan sebelumnya, masukkan:
supersecret!
Sekarang Anda telah mengaktifkan konsol interaktif PostgreSQL untuk instance tujuan.
Meninjau data di instance Cloud SQL untuk PostgreSQL
- Untuk memilih database di konsol interaktif PostgreSQL, jalankan perintah berikut:
\c orders;
- Saat diminta memasukkan sandi, masukkan:
supersecret!
- Buat kueri tabel
distribution_centers menggunakan perintah berikut:
select * from distribution_centers;
Output:
longitude | latitude | name | id
-----------+----------+---------------------------------------------+----
-89.9711 | 35.1174 | Memphis TN | 1
-87.6847 | 41.8369 | Chicago IL | 2
-95.3698 | 29.7604 | Houston TX | 3
-118.25 | 34.05 | Los Angeles CA | 4
-90.0667 | 29.95 | New Orleans LA | 5
-73.7834 | 40.634 | Port Authority of New York/New Jersey NY/NJ | 6
-75.1667 | 39.95 | Philadelphia PA | 7
-88.0431 | 30.6944 | Mobile AL | 8
-79.9333 | 32.7833 | Charleston SC | 9
-81.1167 | 32.0167 | Savannah GA | 10
- Tutup konsol interaktif PostgreSQL menggunakan perintah berikut:
\q
Memperbarui data sumber mandiri untuk menguji migrasi berkelanjutan
- Di Cloud Shell, jalankan perintah berikut untuk terhubung ke instance PostgreSQL sumber:
export VM_NAME=postgresql-vm
export PROJECT_ID=$(gcloud config list --format 'value(core.project)')
export POSTGRESQL_IP=$(gcloud compute instances describe ${VM_NAME} \
--zone={{{ project_0.default_zone|(zone) }}} --format="value(networkInterfaces[0].accessConfigs[0].natIP)")
echo $POSTGRESQL_IP
psql -h $POSTGRESQL_IP -p 5432 -d orders -U migration_admin
Catatan: Perintah di atas adalah pendekatan alternatif untuk mengakses database mandiri di instance VM.
- Saat diminta memasukkan sandi, masukkan:
DMS_1s_cool!
- Di psql, masukkan perintah berikut:
\c orders;
insert into distribution_centers values(-80.1918,25.7617,'Miami FL',11);
- Tutup sesi psql interaktif menggunakan perintah berikut:
\q
Menghubungkan ke database PostgreSQL Cloud SQL untuk memeriksa bahwa data yang diperbarui telah dimigrasikan
- Di Cloud Shell, ketik perintah berikut untuk terhubung ke instance PostgreSQL Cloud SQL tujuan:
gcloud sql connect postgresql-cloudsql --user=postgres --quiet
- Saat diminta memasukkan sandi yang telah Anda tetapkan sebelumnya, masukkan sandi untuk instance Cloud SQL sebagai berikut:
supersecret!
Sekarang Anda telah mengaktifkan konsol interaktif PostgreSQL untuk instance tujuan.
Meninjau data di database Cloud SQL untuk PostgreSQL
- Di Cloud Shell, pilih database aktif di konsol interaktif PostgreSQL menggunakan perintah berikut:
\c orders;
- Saat diminta memasukkan sandi, yang telah Anda tetapkan sebelumnya, masukkan:
supersecret!
- Buat kueri tabel
distribution_centers menggunakan perintah berikut:
select * from distribution_centers;
Output:
longitude | latitude | name | id
-----------+----------+---------------------------------------------+----
-89.9711 | 35.1174 | Memphis TN | 1
-87.6847 | 41.8369 | Chicago IL | 2
-95.3698 | 29.7604 | Houston TX | 3
-118.25 | 34.05 | Los Angeles CA | 4
-90.0667 | 29.95 | New Orleans LA | 5
-73.7834 | 40.634 | Port Authority of New York/New Jersey NY/NJ | 6
-75.1667 | 39.95 | Philadelphia PA | 7
-88.0431 | 30.6944 | Mobile AL | 8
-79.9333 | 32.7833 | Charleston SC | 9
-81.1167 | 32.0167 | Savannah GA | 10
-80.1918 | 25.7617 | Miami FL | 11
Perhatikan bahwa baris baru yang ditambahkan di database orders mandiri kini berada di database yang dimigrasikan.
- Tutup konsol interaktif PostgreSQL menggunakan perintah berikut:
\q
Klik Periksa progres saya untuk memverifikasi tujuan.
Menguji migrasi data berkelanjutan dari sumber ke tujuan.
Tugas 4. Mempromosikan Cloud SQL menjadi instance mandiri untuk pembacaan dan penulisan data
-
Di Konsol Google Cloud, pada Navigation menu (
), klik View all products. Di bagian Databases, klik Database Migration > Migration jobs.
-
Klik nama tugas migrasi vm-to-cloudsql untuk melihat halaman detail.
-
Klik Promote.
-
Jika diminta untuk mengonfirmasi, klik Promote.
Setelah promosi selesai, status tugas akan diperbarui menjadi Completed.
- Di Konsol Google Cloud, pada Navigation menu (
), klik View all products. Di bagian Databases, klik Cloud SQL.
Perhatikan bahwa postgresql-cloudsql sekarang menjadi instance mandiri untuk pembacaan dan penulisan data.
Klik Periksa progres saya untuk memverifikasi tujuan.
Mempromosikan database Cloud SQL untuk PostgreSQL menjadi instance mandiri untuk pembacaan dan penulisan data.
Selamat!
Anda telah mengonfigurasi tugas Database Migration Service berkelanjutan untuk memigrasikan database dari instance PostgreSQL ke Cloud SQL untuk PostgreSQL.
Langkah berikutnya/Pelajari lebih lanjut
Pelajari lebih lanjut migrasi data, database Cloud SQL, dan Database Migration Service dari referensi berikut:
Sertifikasi dan pelatihan Google Cloud
...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.
Manual Terakhir Diperbarui pada 20 Mei 2026
Lab Terakhir Diuji pada 28 Mei 2026
Hak cipta 2026 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.