Halaman ini menjelaskan cara melakukan migrasi berkelanjutan mulai cepat untuk migrasi PostgreSQL homogen ke AlloyDB untuk PostgreSQL.
Ringkasan
Migrasi mulai cepat adalah alur migrasi berkelanjutan yang ringan untuk skenario PostgreSQL homogen. Dengan migrasi mulai cepat, Database Migration Service dapat otomatis mengonfigurasi resource jaringan dan migrasi inti yang Anda perlukan: lampiran jaringan, subnet, konfigurasi konektivitas pribadi dengan antarmuka Private Service Connect, profil koneksi, dan tugas migrasi berkelanjutan.
Dengan migrasi mulai cepat, Anda dapat memindahkan data ke cluster AlloyDB untuk PostgreSQL yang ada, atau membuat cluster baru saat mengonfigurasi migrasi. Migrasi mulai cepat paling cocok untuk:
- Migrasi dasar yang tidak memerlukan setelan paralelisme dump data yang disesuaikan.
- Memigrasikan database Anda dari satu project Google Cloud ke project lainnya. Saat mengonfigurasi migrasi mulai cepat, Anda dapat membuat cluster tujuan di project yang berbeda dengan sumber dan menetapkan Database Migration Service untuk membuat lampiran jaringan dan subnet di jaringan Virtual Private Cloud (VPC) project lain.
-
Melakukan migrasi dari sumber yang memiliki alamat IP pribadi di jaringan Google Cloud Virtual Private Cloud (VPC) Anda, seperti database yang dikelola sendiri di Compute Engine, atau instance Cloud SQL untuk PostgreSQL yang diaktifkan untuk jaringan pribadi.
Sumber yang dihosting di luar Google Cloud mungkin memerlukan komponen jaringan tambahan (seperti koneksi Cloud VPN) agar dapat dijangkau di alamat IP pribadi dalam jaringan VPC Anda.
- Migrasi mulai cepat mendukung konektivitas antarmuka IP publik dan Private Service Connect. Tunnel SSH terbalik tidak didukung untuk migrasi mulai cepat.
Untuk mempelajari lebih lanjut migrasi mulai cepat, lihat Ringkasan migrasi mulai cepat dalam dokumentasi utama Database Migration Service.
Sebelum memulai
- Pastikan apakah migrasi mulai cepat dapat sepenuhnya mendukung skenario Anda. Lihat Batasan migrasi mulai cepat.
- Di konsol Google Cloud , pada halaman pemilih project, pilih atau buat Google Cloud project.
- Aktifkan API Database Migration Service, Compute Engine, Network Connectivity Center, dan AlloyDB untuk PostgreSQL.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna menjalankan migrasi mulai cepat ke AlloyDB untuk PostgreSQL dengan Database Migration Service, minta administrator Anda untuk memberikan peran Identity and Access Management (IAM) yang diperlukan untuk akun yang terlibat dalam migrasi di project yang relevan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses dalam dokumentasi IAM.
Peran dan izin di project sumber
Jika Anda menggunakan konektivitas IP pribadi untuk terhubung ke database sumber dalam projectGoogle Cloud , berikan peran berikut ke akun tertentu di project tempat database sumber Anda berada:
- Untuk akun pengguna yang melakukan migrasi:
-
Compute Network Admin (
roles/compute.networkAdmin) -
Browser (
roles/browser)
-
Compute Network Admin (
- Untuk akun layanan Database Migration Service dari project tujuan:
Compute Network Viewer (
roles/compute.networkViewer)Akun layanan Database Migration Service dibuat saat Anda mengaktifkan Database Migration Service API. Alamat email yang terkait dengan akun ini dibuat secara otomatis dan tidak dapat diubah. Alamat email ini menggunakan format berikut:
service-DESTINATION_PROJECT_NUMBER@gcp-sa-datamigration.
Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk menyiapkan konektivitas pada project database sumber Anda sebagai bagian dari migrasi mulai cepat dengan Database Migration Service. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan (sumber):
Izin yang diperlukan (sumber)
Izin berikut diperlukan untuk melakukan migrasi mulai cepat homogen dengan Database Migration Service:
Untuk akun pengguna yang melakukan migrasi:
compute.networks.getcompute.networks.listcompute.networks.updatePolicycompute.subnetworks.getcompute.subnetworks.listcompute.subnetworks.createcompute.subnetworks.usecompute.networkAttachments.createcompute.networkAttachments.getcompute.networkAttachments.listcompute.networkAttachments.updatecompute.networkAttachments.usecompute.regionOperations.getnetworkconnectivity.internalRanges.createnetworkconnectivity.internalRanges.getnetworkconnectivity.operations.getresourcemanager.projects.getIamPolicy
Untuk akun layanan Database Migration Service dari project tujuan:
compute.networkAttachments.get
Peran dan izin di project tujuan
Berikan peran berikut ke akun pengguna yang melakukan migrasi pada project Google Cloud tempat database tujuan Anda berada:
-
Database Migration Admin (
roles/datamigration.admin) -
AlloyDB Admin (
roles/alloydb.admin) -
Browser (
roles/browser)
Selain itu, akun layanan Database Migration Service dari project tujuan
(service-DESTINATION_PROJECT_NUMBER@gcp-sa-datamigration.)
memerlukan peran
Database Migration Service Agent (roles/datamigration.serviceAgent)
pada project tujuan. Google Cloud memberikan peran ini secara otomatis
saat Anda mengaktifkan Database Migration Service API.
Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk menyiapkan komponen migrasi yang diperlukan di project database tujuan Anda sebagai bagian dari migrasi mulai cepat dengan Database Migration Service. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan (tujuan):
Izin yang diperlukan (tujuan)
Izin berikut diperlukan untuk melakukan migrasi mulai cepat homogen dengan Database Migration Service:
Untuk akun pengguna yang melakukan migrasi:
datamigration.privateconnections.getdatamigration.privateconnections.listdatamigration.privateconnections.createdatamigration.migrationjobs.createdatamigration.migrationjobs.updatedatamigration.migrationjobs.verifydatamigration.migrationjobs.startdatamigration.migrationjobs.getdatamigration.migrationjobs.fetchSourceObjectsdatamigration.operations.getdatamigration.connectionprofiles.createdatamigration.connectionprofiles.getdatamigration.connectionprofiles.updatedatamigration.locations.listdatamigration.locations.fetchStaticIpsalloydb.clusters.createalloydb.clusters.getalloydb.clusters.listalloydb.clusters.updatealloydb.clusters.deletealloydb.instances.createalloydb.instances.getalloydb.instances.listalloydb.instances.updatealloydb.instances.deletealloydb.operations.getalloydb.users.listalloydb.users.getalloydb.users.createalloydb.users.updatealloydb.users.deleteresourcemanager.projects.getIamPolicy
Untuk akun layanan Database Migration Service dari project tujuan:
alloydb.clusters.importalloydb.instances.connectalloydb.instances.executeSql
Mengonfigurasi database sumber
Untuk mengonfigurasi database PostgreSQL sumber, lakukan hal berikut:
- Buat akun pengguna migrasi khusus di instance Anda.
- Untuk sumber Cloud SQL untuk PostgreSQL, lihat Membuat pengguna dalam dokumentasi Cloud SQL.
- Untuk sumber lain, lihat dokumentasi penyedia database Anda atau membuat dan mengelola pengguna dalam dokumentasi PostgreSQL.
- Tetapkan hak istimewa yang diperlukan ke akun pengguna migrasi khusus.
Jalankan perintah berikut untuk setiap database yang ingin Anda migrasikan:
-- Grant the REPLICATION attribute ALTER ROLE MIGRATION_USER REPLICATION; -- Grant database-level permissions. -- Repeat for each database you want to migrate. GRANT CONNECT, CREATE ON DATABASE DATABASE_NAME TO MIGRATION_USER; -- Grant schema-level usage. -- Repeat for each schema in each database you want to migrate. GRANT USAGE ON SCHEMA SCHEMA_NAME TO MIGRATION_USER;
Ganti kode berikut:
- MIGRATION_USER dengan nama akun pengguna migrasi.
- DATABASE_NAME dengan nama database yang ingin Anda migrasikan.
- SCHEMA_NAME dengan nama skema dalam database yang ingin Anda migrasikan.
- Akun pengguna migrasi harus memiliki akses kepemilikan ke tabel yang Anda migrasikan. Untuk memberikan tingkat akses ini, lakukan salah satu hal berikut:
- Khusus untuk sumber selain Cloud SQL untuk PostgreSQL: Tetapkan
peran PostgreSQL
SUPERUSERke akun migrasi. - Untuk semua sumber: Tambahkan akun pengguna migrasi ke grup pengguna yang memiliki tabel.
Jalankan perintah berikut:
-- Grant table ownership. GRANT TABLE_OWNER_GROUP_NAME TO MIGRATION_USER;
Ganti kode berikut:
- TABLE_OWNER_GROUP_NAME dengan nama grup pengguna yang memiliki setiap tabel yang ingin Anda migrasikan.
- MIGRATION_USER dengan nama akun pengguna migrasi.
- Khusus untuk sumber selain Cloud SQL untuk PostgreSQL: Tetapkan
peran PostgreSQL
- Untuk tabel yang tidak memiliki kunci utama: Database Migration Service
tidak mereplikasi operasi
UPDATEatauDELETEuntuk tabel tanpa kunci utama selama fase Change Data Capture (CDC). Jika Anda ingin menyertakan operasi tersebut dalam replikasi, ubah tabel tanpa kunci utama denganREPLICA IDENTITY:ALTER TABLE TABLE_NAME REPLICA IDENTITY FULL; ALTER TABLE TABLE_NAME REPLICA IDENTITY USING INDEX INDEX_NAME;
Ganti kode berikut:
- TABLE_NAME adalah nama tabel yang tidak memiliki kunci utama.
- INDEX_NAME adalah indeks unik yang dapat melacak baris dari tabel tanpa kunci utama.
- Konfigurasikan setelan replikasi menggunakan flag database.
Sumber yang dikelola sendiri
Menyimpan perubahan pada flag database memerlukan mulai ulang database secara menyeluruh. Contoh berikut menggunakan kueri SQL untuk mengubah nilai flag. Jika Anda tidak dapat menjalankan kueri SQL secara langsung, lihat dokumentasi penyedia Anda untuk mengetahui langkah-langkah mengubah flag ini.
- Tetapkan parameter
wal_levelkelogical. Jalankan perintah berikut:ALTER SYSTEM SET wal_level = 'logical';
- Tetapkan parameter
wal_sender_timeoutke0. Nilai ini menonaktifkan mekanisme waktu tunggu yang digunakan untuk menghentikan koneksi replikasi tidak aktif. Jalankan perintah berikut:ALTER SYSTEM SET wal_sender_timeout = 0;
- Konfigurasikan jumlah maksimum slot replikasi dengan parameter
max_replication_slots. Parameter ini harus ditetapkan setidaknya ke jumlah database yang Anda migrasikan per tugas migrasi, ditambah beberapa cadangan untuk sinkronisasi tabel.Misalnya, jika Anda memigrasikan 5 database dan ada 2 tugas migrasi yang dibuat untuk instance sumber, jumlah slot replikasi harus minimal
5 * 2 = 10, ditambah jumlah slot replikasi yang sudah Anda gunakan.Untuk menetapkan parameter ini, jalankan perintah berikut:
Dengan NUMBER_OF_SLOTS mewakili jumlah maksimum slot replikasi.ALTER SYSTEM SET max_replication_slots = NUMBER_OF_SLOTS;
- Konfigurasikan parameter
max_wal_senderssetidaknya ke nilai yang sama denganmax_replication_slots, ditambah jumlah pengirim yang sudah digunakan di instance Anda.Misalnya, jika parameter
max_replication_slotsditetapkan ke10, dan Anda sudah menggunakan 2 pengirim, jumlah proses pengirim WAL yang berjalan pada saat yang sama adalah10 + 2 = 12.Untuk menetapkan parameter ini, jalankan perintah berikut:
Dengan NUMBER_OF_SENDERS mewakili jumlah proses pengirim WAL yang berjalan secara bersamaan.ALTER SYSTEM SET max_wal_senders = NUMBER_OF_SENDERS;
- Tetapkan
max_worker_processeske setidaknya jumlah database yang ingin Anda migrasikan, ditambah jumlahmax_worker_processesyang sudah digunakan di instance Anda. Untuk menetapkan parameter ini, jalankan perintah berikut: Dengan NUMBER_OF_PROCESSES mewakili jumlah database yang akan dimigrasikan.ALTER SYSTEM SET max_worker_processes = NUMBER_OF_PROCESSES;
Sumber Cloud SQL untuk PostgreSQL
Untuk sumber Cloud SQL, Anda mengonfigurasi flag database di konsol Google Cloud . Anda harus memulai ulang instance setelah mengubah flag database agar setelan diterapkan. Untuk mengetahui informasi selengkapnya tentang cara menetapkan flag database di Cloud SQL, lihat Mengonfigurasi flag database dalam dokumentasi Cloud SQL.
- Tetapkan flag
cloudsql.logical_decodingkeon. Mengaktifkan flag ini mengharuskan instance dimulai ulang agar setelan diterapkan. - Tetapkan parameter
wal_sender_timeoutke0. Nilai ini menonaktifkan mekanisme waktu tunggu yang digunakan untuk menghentikan koneksi replikasi tidak aktif. - Konfigurasikan jumlah maksimum slot replikasi dengan parameter
max_replication_slots. Parameter ini harus ditetapkan setidaknya ke jumlah database yang Anda migrasikan per tugas migrasi, ditambah beberapa cadangan untuk sinkronisasi tabel.Misalnya, jika Anda memigrasikan 5 database dan ada 2 tugas migrasi yang dibuat untuk instance sumber, jumlah slot replikasi harus minimal
5 * 2 = 10, ditambah jumlah slot replikasi yang sudah Anda gunakan. - Konfigurasikan parameter
max_wal_sendersagar setidaknya sama dengan nilaimax_replication_slots, ditambah jumlah pengirim yang sudah digunakan di instance Anda.Misalnya, jika parameter
max_replication_slotsditetapkan ke10, dan Anda sudah menggunakan 2 pengirim, jumlah proses pengirim WAL yang berjalan pada saat yang sama adalah10 + 2 = 12. - Tetapkan parameter
max_worker_processeske setidaknya jumlah database yang ingin Anda migrasikan, ditambah jumlahmax_worker_processesyang sudah digunakan di instance Anda.
- Tetapkan parameter
Membuat dan menjalankan migrasi mulai cepat
Untuk membuat dan menjalankan migrasi mulai cepat, Anda dapat menggunakan konsol Google Cloud atau gcloud CLI.
Konsol
- Di konsol Google Cloud , buka halaman Get started.
- Di menu Source engine, pilih PostgreSQL.
- Di menu Destination engine, pilih
AlloyDB untuk PostgreSQL.
Bagian Introducing quick-start PostgreSQL migration akan muncul.
- Di bagian Introducing quick-start PostgreSQL migration, klik
Start migration.
Halaman Migrate to AlloyDB for PostgreSQL akan terbuka.
- Di bagian Configure migration, lakukan hal berikut:
- Dari menu Destination region, pilih region cluster AlloyDB untuk PostgreSQL tujuan Anda.
- Di kotak Migration prefix, masukkan string yang mudah dipahami manusia yang akan ditambahkan ke nama semua entity migrasi yang dibuat untuk migrasi panduan memulai: profil koneksi, konfigurasi konektivitas pribadi, lampiran jaringan dan subnetnya, serta tugas migrasi.
- Dari menu Connectivity type, pilih cara Database Migration Service
terhubung ke database sumber Anda:
- IP pribadi: Hubungkan melalui jaringan pribadi menggunakan antarmuka Private Service Connect. Dari menu
Configuration type, pilih salah satu opsi berikut:
- Konfigurasi konektivitas yang ada: Pilih opsi ini jika Anda sudah memiliki lampiran jaringan dan konfigurasi konektivitas pribadi yang menggunakan metode antarmuka Private Service Connect. Opsi ini paling baik digunakan jika sebelumnya Anda menggunakan migrasi mulai cepat dan ingin menggunakan kembali resource jaringan yang sama.
- New connectivity configuration: Pilih opsi ini untuk membuat lampiran jaringan baru dan subnet lampiran jaringan di jaringan VPC database sumber. Konfigurasi konektivitas pribadi akan dibuat di project yang sama dengan cluster tujuan Anda.
- IP Publik: Terhubung melalui internet publik menggunakan alamat IP publik statis keluar khusus. Jika konfigurasi konektivitas IP publik sudah ada di project dan region tujuan, Database Migration Service akan menggunakannya kembali. Jika tidak, Database Migration Service akan membuat konfigurasi konektivitas IP publik baru dan membuat alamat IP keluar saat Anda melanjutkan.
- IP pribadi: Hubungkan melalui jaringan pribadi menggunakan antarmuka Private Service Connect. Dari menu
Configuration type, pilih salah satu opsi berikut:
- Klik Lanjutkan. Jika diminta untuk mengonfirmasi pembuatan resource jaringan, klik Configure & continue.
- Di bagian Connect source, lakukan hal berikut:
- Jika Anda memilih Public IP di langkah sebelumnya, salin alamat IP keluar yang ditampilkan di konsol Google Cloud dan tambahkan sebagai aturan firewall masuk atau entri daftar IP yang diizinkan di jaringan sumber Anda (seperti
pg_hba.confatau grup keamanan penyedia cloud) untuk mengizinkan Database Migration Service terhubung. - Masukkan Nama host atau Alamat IP database sumber Anda. Jika Anda memilih Private IP, masukkan alamat IP pribadi yang dapat dijangkau dari jaringan VPC sumber Anda. Jika Anda memilih IP Publik, masukkan alamat IP publik database sumber Anda.
- Masukkan Port yang digunakan untuk mengakses host. Port PostgreSQL default adalah
5432. - Masukkan nama pengguna dan sandi untuk akun migrasi khusus di database sumber Anda.
- Dari menu Jenis enkripsi, pilih salah satu opsi berikut:
- Tidak ada: Jika database sumber Anda tidak memerlukan koneksi terenkripsi SSL/TLS.
- Wajib: Jika database sumber Anda memerlukan koneksi terenkripsi SSL/TLS. Opsi ini tidak memerlukan verifikasi sertifikat apa pun.
- Di menu Databases to migrate, klik Customize. Gunakan panel samping dengan penemuan database tersemat untuk memilih hanya database yang ingin Anda migrasikan ke AlloyDB untuk PostgreSQL.
- Klik Lanjutkan.
- Jika Anda memilih Public IP di langkah sebelumnya, salin alamat IP keluar yang ditampilkan di konsol Google Cloud dan tambahkan sebagai aturan firewall masuk atau entri daftar IP yang diizinkan di jaringan sumber Anda (seperti
- Di bagian Configure destination, Anda dapat membuat cluster tujuan baru, atau memilih cluster yang ada:
Cluster baru
Jika Anda ingin membuat cluster tujuan baru, lakukan hal berikut:
- Dari menu Destination instance type, pilih
New cluster.
Database Migration Service menggunakan konfigurasi AlloyDB untuk PostgreSQL default untuk cluster baru. Klik Customize untuk menyesuaikan fitur cluster, seperti jenis mesin, ketersediaan zona, atau setelan perlindungan data. Untuk mengetahui informasi selengkapnya tentang konfigurasi cluster, lihat Membuat cluster dan instance utamanya dalam dokumentasi AlloyDB untuk PostgreSQL.
- Di kolom Password, masukkan sandi untuk pengguna admin
postgresdefault. Database Migration Service terhubung sebagai pengguna ini untuk memigrasikan data Anda.
Cluster yang ada
Anda dapat memigrasikan database ke cluster yang sudah ada. Pastikan cluster tujuan diaktifkan untuk Private Service Connect, dalam status
RUNNABLE, dan tidak menerapkan mTLS dengan konektor AlloyDB. Lakukan tindakan berikut:- Dari menu Destination instance type, pilih Existing cluster.
- Dari menu ID cluster yang ada, pilih ID cluster.
- Dari menu Destination instance type, pilih
New cluster.
- Klik Mulai migrasi.
Database Migration Service membuat tugas migrasi berkelanjutan dan mulai mereplikasi data. Anda dapat memantau progres migrasi dan kondisi cluster tujuan di AlloyDB untuk PostgreSQL. Untuk mengetahui informasi selengkapnya, lihat Melihat detail cluster dan instance dalam dokumentasi AlloyDB untuk PostgreSQL.
gcloud
Untuk membuat dan menjalankan migrasi panduan memulai menggunakan gcloud CLI, lakukan hal berikut:
-
Konfigurasikan konektivitas ke database sumber Anda.
Pilih tab berdasarkan apakah database sumber Anda menggunakan IP Pribadi (Private Service Connect) atau IP Publik:IP Pribadi (Private Service Connect)
Untuk terhubung menggunakan Private Service Connect, konfigurasikan lampiran jaringan dan koneksi pribadi Anda:
-
Konfigurasikan lampiran jaringan: Tentukan apakah Anda ingin membuat lampiran jaringan baru atau menggunakan kembali lampiran jaringan yang sudah ada. Anda harus memiliki lampiran jaringan di jaringan tempat IP pribadi database sumber Anda dapat dijangkau.
- Jika Anda ingin membuat lampiran jaringan baru, jalankan perintah berikut (klik untuk meluaskan detail lengkap).
gcloud compute network-attachments createSebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- NETWORK_ATTACHMENT dengan nama lampiran jaringan yang akan dibuat.
- REGION dengan region untuk lampiran jaringan.
- DEST_PROJECT_ID dengan project ID dari project tujuan Anda.
- SOURCE_PROJECT_ID dengan project ID tempat jaringan sumber berada.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud compute network-attachments create NETWORK_ATTACHMENT \ --region=REGION \ --connection-preference=ACCEPT_MANUAL \ --producer-accept-list=DEST_PROJECT_ID \ --subnets=default \ --project=SOURCE_PROJECT_ID
Windows (PowerShell)
gcloud compute network-attachments create NETWORK_ATTACHMENT ` --region=REGION ` --connection-preference=ACCEPT_MANUAL ` --producer-accept-list=DEST_PROJECT_ID ` --subnets=default ` --project=SOURCE_PROJECT_ID
Windows (cmd.exe)
gcloud compute network-attachments create NETWORK_ATTACHMENT ^ --region=REGION ^ --connection-preference=ACCEPT_MANUAL ^ --producer-accept-list=DEST_PROJECT_ID ^ --subnets=default ^ --project=SOURCE_PROJECT_ID
- Jika Anda ingin menggunakan kembali lampiran jaringan yang ada, lanjutkan ke langkah berikutnya.
- Jika Anda ingin membuat lampiran jaringan baru, jalankan perintah berikut (klik untuk meluaskan detail lengkap).
-
Izinkan project tenant Database Migration Service mengakses lampiran jaringan Anda: Lampiran jaringan Anda harus mengizinkan koneksi dari project tenant Database Migration Service. Lakukan langkah-langkah berikut:
- Ambil ID project tenant Database Migration Service dengan melakukan pembuatan koneksi pribadi uji coba (klik untuk meluaskan):
gcloud database-migration private-connections create --validate-onlySebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- PRIVATE_CONN dengan nama resource koneksi pribadi.
- REGION dengan region untuk koneksi pribadi.
- NETWORK_ATTACHMENT_URI dengan URI lampiran jaringan.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud database-migration private-connections create PRIVATE_CONN \ --region=REGION \ --network-attachment=NETWORK_ATTACHMENT_URI \ --display-name=PRIVATE_CONN \ --format="value(metadata.metadata.tenant_project_id)" \ --validate-only
Windows (PowerShell)
gcloud database-migration private-connections create PRIVATE_CONN ` --region=REGION ` --network-attachment=NETWORK_ATTACHMENT_URI ` --display-name=PRIVATE_CONN ` --format="value(metadata.metadata.tenant_project_id)" ` --validate-only
Windows (cmd.exe)
gcloud database-migration private-connections create PRIVATE_CONN ^ --region=REGION ^ --network-attachment=NETWORK_ATTACHMENT_URI ^ --display-name=PRIVATE_CONN ^ --format="value(metadata.metadata.tenant_project_id)" ^ --validate-only
Simpan ID project tenant yang ditampilkan untuk digunakan dengan perintah berikutnya.
- Izinkan project tenant Database Migration Service dan project tujuan terhubung ke lampiran jaringan (klik untuk meluaskan):
gcloud compute network-attachments updateSebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- NETWORK_ATTACHMENT dengan nama lampiran jaringan.
- REGION dengan region.
- DEST_PROJECT_ID dengan project ID dari project tujuan Anda.
- DMS_TENANT_ID dengan project ID tenant Database Migration Service yang diambil.
- SOURCE_PROJECT_ID dengan project ID tempat jaringan sumber berada.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud compute network-attachments update NETWORK_ATTACHMENT \ --region=REGION \ --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID \ --project=SOURCE_PROJECT_ID
Windows (PowerShell)
gcloud compute network-attachments update NETWORK_ATTACHMENT ` --region=REGION ` --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID ` --project=SOURCE_PROJECT_ID
Windows (cmd.exe)
gcloud compute network-attachments update NETWORK_ATTACHMENT ^ --region=REGION ^ --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID ^ --project=SOURCE_PROJECT_ID
- Ambil ID project tenant Database Migration Service dengan melakukan pembuatan koneksi pribadi uji coba (klik untuk meluaskan):
-
Buat resource konektivitas pribadi Database Migration Service: Jalankan perintah berikut (klik untuk meluaskan):
gcloud database-migration private-connections createSebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- PRIVATE_CONN dengan nama resource koneksi pribadi.
- REGION dengan region untuk koneksi pribadi.
- NETWORK_ATTACHMENT_URI dengan URI lampiran jaringan.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud database-migration private-connections create PRIVATE_CONN \ --region=REGION \ --network-attachment=NETWORK_ATTACHMENT_URI \ --display-name=PRIVATE_CONN
Windows (PowerShell)
gcloud database-migration private-connections create PRIVATE_CONN ` --region=REGION ` --network-attachment=NETWORK_ATTACHMENT_URI ` --display-name=PRIVATE_CONN
Windows (cmd.exe)
gcloud database-migration private-connections create PRIVATE_CONN ^ --region=REGION ^ --network-attachment=NETWORK_ATTACHMENT_URI ^ --display-name=PRIVATE_CONN
IP Publik
Untuk terhubung ke database sumber dengan alamat IP publik, lakukan langkah-langkah berikut:
-
Membuat koneksi pribadi dengan IP publik yang dicadangkan.
Jalankan perintah berikut (klik untuk meluaskan):gcloud database-migration private-connections createContoh ini menggunakan flag
--no-asyncopsional sehingga semua operasi dilakukan secara sinkron. Artinya, beberapa perintah mungkin memerlukan waktu beberapa saat untuk diselesaikan. Anda dapat melewati flag--no-asyncuntuk menjalankan perintah secara asinkron. Jika ya, Anda harus menggunakan perintahgcloud database-migration operations describeuntuk memverifikasi apakah operasi Anda berhasil.Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- CONNECTION_ID dengan ID untuk koneksi pribadi.
- REGION dengan Google Cloud region tempat Anda ingin membuat koneksi pribadi.
- DISPLAY dengan nama tampilan yang mudah digunakan untuk koneksi pribadi.
- Opsional: Anda dapat mengganti flag
--reserved-public-ipdengan--reserved-public-ip-nat-ips-countuntuk mencadangkan beberapa alamat IP publik khusus yang digunakan Database Migration Service untuk koneksi. Anda dapat memesan hingga10alamat IP.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud database-migration private-connections create \ CONNECTION_ID \ --region=REGION \ --display-name="DISPLAY" \ --reserved-public-ip \ --no-async
Windows (PowerShell)
gcloud database-migration private-connections create ` CONNECTION_ID ` --region=REGION ` --display-name="DISPLAY" ` --reserved-public-ip ` --no-async
Windows (cmd.exe)
gcloud database-migration private-connections create ^ CONNECTION_ID ^ --region=REGION ^ --display-name="DISPLAY" ^ --reserved-public-ip ^ --no-async
-
Ambil alamat IP publik yang dicadangkan.
Jalankan perintah berikut (klik untuk meluaskan):gcloud database-migration connection-profiles fetch-static-ipsSebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- REGION dengan region Google Cloud koneksi pribadi.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud database-migration connection-profiles fetch-static-ips \ REGION \ --fetch-reserved-public-ips
Windows (PowerShell)
gcloud database-migration connection-profiles fetch-static-ips ` REGION ` --fetch-reserved-public-ips
Windows (cmd.exe)
gcloud database-migration connection-profiles fetch-static-ips ^ REGION ^ --fetch-reserved-public-ips
-
Izinkan alamat IP yang dicadangkan di database sumber.
Tambahkan alamat IP yang diambil pada langkah sebelumnya ke daftar yang diizinkan masuk untuk database sumber Anda (misalnya, dalam konfigurasipg_hba.conf, grup keamanan penyedia cloud, atau aturan firewall jaringan) sehingga Database Migration Service dapat membuat koneksi.
-
-
Buat profil koneksi sumber.
Jalankan perintah berikut (klik untuk meluaskan):gcloud database-migration connection-profiles create postgresqlContoh ini menggunakan flag
--no-asyncopsional sehingga semua operasi dilakukan secara sinkron. Artinya, beberapa perintah mungkin memerlukan waktu beberapa saat untuk diselesaikan. Anda dapat melewati flag--no-asyncuntuk menjalankan perintah secara asinkron. Jika ya, Anda harus menggunakan perintahgcloud database-migration operations describeuntuk memverifikasi apakah operasi Anda berhasil.Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- SOURCE_CONN_ID dengan ID profil koneksi sumber Anda.
- REGION dengan region tempat Anda ingin menyimpan profil koneksi.
- SOURCE_PRIVATE_IP dengan alamat IP pribadi database sumber Anda.
- SOURCE_PORT dengan port database sumber Anda (defaultnya adalah 5432).
- SOURCE_USER dengan nama pengguna migrasi di database sumber Anda.
- SOURCE_PASSWORD dengan sandi pengguna migrasi di database sumber Anda.
- PRIVATE_CONN dengan nama resource koneksi pribadi.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud database-migration connection-profiles create postgresql \ SOURCE_CONN_ID \ --region=REGION \ --role=SOURCE \ --host=SOURCE_PRIVATE_IP \ --port=SOURCE_PORT \ --username=SOURCE_USER \ --password=SOURCE_PASSWORD \ --private-connection=PRIVATE_CONN \ --no-async
Windows (PowerShell)
gcloud database-migration connection-profiles create postgresql ` SOURCE_CONN_ID ` --region=REGION ` --role=SOURCE ` --host=SOURCE_PRIVATE_IP ` --port=SOURCE_PORT ` --username=SOURCE_USER ` --password=SOURCE_PASSWORD ` --private-connection=PRIVATE_CONN ` --no-async
Windows (cmd.exe)
gcloud database-migration connection-profiles create postgresql ^ SOURCE_CONN_ID ^ --region=REGION ^ --role=SOURCE ^ --host=SOURCE_PRIVATE_IP ^ --port=SOURCE_PORT ^ --username=SOURCE_USER ^ --password=SOURCE_PASSWORD ^ --private-connection=PRIVATE_CONN ^ --no-async
-
Buat profil koneksi tujuan.
Pilih tab berdasarkan apakah Anda ingin bermigrasi ke cluster AlloyDB untuk PostgreSQL baru atau yang sudah ada:Cluster baru
Untuk menggunakan cluster tujuan baru untuk migrasi cepat, buat cluster dan instance utamanya terlebih dahulu dengan Google Cloud CLI AlloyDB untuk PostgreSQL, lalu buat profil koneksi tujuan. Ikuti langkah-langkah berikut:
-
Buat cluster dan instance utamanya dengan Google Cloud CLI AlloyDB untuk PostgreSQL.
Pastikan Anda menggunakan flag
--enable-private-service-connectuntuk mengaktifkan cluster tujuan untuk Private Service Connect. Migrasi mulai cepat hanya mendukung tujuan yang mengaktifkan Private Service Connect. - Buat profil koneksi tujuan untuk cluster baru Anda.
Luaskan bagian berikut untuk mengetahui detail perintah selengkapnya.
gcloud database-migration connection-profiles create postgresqlContoh ini menggunakan flag
--no-asyncopsional sehingga semua operasi dilakukan secara sinkron. Artinya, beberapa perintah mungkin memerlukan waktu beberapa saat untuk diselesaikan. Anda dapat melewati flag--no-asyncuntuk menjalankan perintah secara asinkron. Jika ya, Anda harus menggunakan perintahgcloud database-migration operations describeuntuk memverifikasi apakah operasi Anda berhasil.Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- DEST_CONN_ID dengan ID profil koneksi tujuan.
- REGION dengan region tempat Anda ingin menyimpan profil koneksi. Region ini harus sama dengan region cluster tujuan Anda.
- DEST_CLUSTER dengan ID atau jalur resource lengkap cluster AlloyDB untuk PostgreSQL tujuan Anda.
- DEST_USER dengan nama pengguna migrasi di database tujuan Anda.
- DEST_PASSWORD dengan sandi untuk pengguna migrasi di database tujuan.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \ --region=REGION \ --alloydb-cluster=DEST_CLUSTER \ --username=DEST_USER \ --password=DEST_PASSWORD \ --role=DESTINATION \ --no-async
Windows (PowerShell)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ` --region=REGION ` --alloydb-cluster=DEST_CLUSTER ` --username=DEST_USER ` --password=DEST_PASSWORD ` --role=DESTINATION ` --no-async
Windows (cmd.exe)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ^ --region=REGION ^ --alloydb-cluster=DEST_CLUSTER ^ --username=DEST_USER ^ --password=DEST_PASSWORD ^ --role=DESTINATION ^ --no-async
Anda akan melihat respons seperti berikut:
Waiting for connection profile [CONNECTION_PROFILE_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]
Cluster yang ada
Untuk bermigrasi ke cluster tujuan yang ada, buat profil koneksi yang mengarah ke cluster yang telah dibuat sebelumnya. Jalankan perintah berikut (klik untuk meluaskan):
gcloud database-migration connection-profiles create postgresqlContoh ini menggunakan flag
--no-asyncopsional sehingga semua operasi dilakukan secara sinkron. Artinya, beberapa perintah mungkin memerlukan waktu beberapa saat untuk diselesaikan. Anda dapat melewati flag--no-asyncuntuk menjalankan perintah secara asinkron. Jika ya, Anda harus menggunakan perintahgcloud database-migration operations describeuntuk memverifikasi apakah operasi Anda berhasil.Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- DEST_CONN_ID dengan ID profil koneksi tujuan.
- REGION dengan region tempat Anda ingin menyimpan profil koneksi. Region ini harus sama dengan region cluster tujuan Anda.
- DEST_CLUSTER dengan ID atau jalur resource lengkap cluster AlloyDB untuk PostgreSQL tujuan Anda.
- DEST_USER dengan nama pengguna migrasi di database tujuan Anda.
- DEST_PASSWORD dengan sandi untuk pengguna migrasi di database tujuan.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \ --region=REGION \ --alloydb-cluster=DEST_CLUSTER \ --username=DEST_USER \ --password=DEST_PASSWORD \ --role=DESTINATION \ --no-async
Windows (PowerShell)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ` --region=REGION ` --alloydb-cluster=DEST_CLUSTER ` --username=DEST_USER ` --password=DEST_PASSWORD ` --role=DESTINATION ` --no-async
Windows (cmd.exe)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ^ --region=REGION ^ --alloydb-cluster=DEST_CLUSTER ^ --username=DEST_USER ^ --password=DEST_PASSWORD ^ --role=DESTINATION ^ --no-async
Anda akan melihat respons seperti berikut:
Waiting for connection profile [CONNECTION_PROFILE_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]
-
Buat cluster dan instance utamanya dengan Google Cloud CLI AlloyDB untuk PostgreSQL.
Pastikan Anda menggunakan flag
-
Membuat tugas migrasi berkelanjutan.
Jalankan perintah berikut untuk membuat tugas migrasi berkelanjutan (klik untuk meluaskan):gcloud database-migration migration-jobs createContoh ini menggunakan flag
--no-asyncopsional sehingga semua operasi dilakukan secara sinkron. Artinya, beberapa perintah mungkin memerlukan waktu beberapa saat untuk diselesaikan. Anda dapat melewati flag--no-asyncuntuk menjalankan perintah secara asinkron. Jika ya, Anda harus menggunakan perintahgcloud database-migration operations describeuntuk memverifikasi apakah operasi Anda berhasil.Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- MIGRATION_JOB_ID dengan ID tugas migrasi Anda.
- REGION dengan region tempat Anda ingin menyimpan tugas migrasi.
- SOURCE_CONN_ID dengan ID profil koneksi sumber.
- DEST_CONN_ID dengan ID profil koneksi tujuan.
- DATABASES_LIST dengan daftar database yang dipisahkan koma yang ingin Anda migrasikan.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud database-migration migration-jobs create \ MIGRATION_JOB_ID \ --region=REGION \ --type=CONTINUOUS \ --source=SOURCE_CONN_ID \ --destination=DEST_CONN_ID \ --use-postgres-native \ --postgres-max-additional-subscriptions=10 \ --databases-filter=DATABASES_LIST \ --no-async
Windows (PowerShell)
gcloud database-migration migration-jobs create ` MIGRATION_JOB_ID ` --region=REGION ` --type=CONTINUOUS ` --source=SOURCE_CONN_ID ` --destination=DEST_CONN_ID ` --use-postgres-native ` --postgres-max-additional-subscriptions=10 ` --databases-filter=DATABASES_LIST ` --no-async
Windows (cmd.exe)
gcloud database-migration migration-jobs create ^ MIGRATION_JOB_ID ^ --region=REGION ^ --type=CONTINUOUS ^ --source=SOURCE_CONN_ID ^ --destination=DEST_CONN_ID ^ --use-postgres-native ^ --postgres-max-additional-subscriptions=10 ^ --databases-filter=DATABASES_LIST ^ --no-async
Anda akan melihat respons seperti berikut:
Waiting for migration job [MIGRATION_JOB_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created migration job MIGRATION_JOB_ID [OPERATION_ID]
-
Mulai tugas migrasi.
Untuk memulai tugas migrasi berkelanjutan, jalankan perintah berikut (klik untuk meluaskan):gcloud database-migration migration-jobs startSebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- MIGRATION_JOB_ID dengan ID tugas migrasi Anda.
Jika tidak mengetahui ID, Anda dapat menggunakan perintah
gcloud database-migration migration-jobs listuntuk mencantumkan semua tugas migrasi di region tertentu dan melihat ID-nya. - REGION dengan ID region tempat tugas migrasi Anda disimpan.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud database-migration migration-jobs \ start MIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` start MIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ start MIGRATION_JOB_ID ^ --region=REGION
Hasil
Tindakan ini dilakukan secara asinkron. Oleh karena itu, perintah ini menampilkan Entity operasi yang mewakili operasi yang berjalan lama:
done: false metadata: '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata apiVersion: v1 createTime: '2024-02-20T12:20:24.493106418Z' requestedCancellation: false target: MIGRATION_JOB_ID verb: start name: OPERATION_ID
Untuk melihat apakah operasi Anda berhasil, Anda dapat mengkueri objek operasi yang ditampilkan, atau memeriksa status tugas migrasi:
- Gunakan perintah
gcloud database-migration migration-jobs describedengan MIGRATION_JOB_ID untuk melihat status tugas migrasi. - Gunakan perintah
gcloud database-migration operations describedengan OPERATION_ID untuk melihat status operasi itu sendiri.
- MIGRATION_JOB_ID dengan ID tugas migrasi Anda.
Menyelesaikan migrasi
Saat Anda memutuskan untuk mengalihkan traffic aplikasi ke cluster AlloyDB untuk PostgreSQL yang baru, selesaikan migrasi dengan mengikuti langkah-langkah berikut:
- Hentikan semua operasi tulis di database sumber Anda. Anda dapat mengalihkan database sumber ke mode hanya baca untuk mempertahankan fungsi kueri operasional selama cutover.
- Mempromosikan tugas migrasi. Untuk migrasi mulai cepat, cluster tujuan Anda tetap dapat ditulis selama proses migrasi. Mempromosikan tugas migrasi hanya akan mengakhiri replikasi dan tidak berdampak pada cluster tujuan Anda.
- Opsional: Verifikasi data migrasi untuk kelengkapan dan konsistensi.