Saat Anda membuat instance tujuan dengan Database Migration Service, instance tersebut tidak didemosi dan tidak berjalan dalam mode hanya baca, tetapi menjalankan operasi tertentu selama proses migrasi dapat mengakibatkan error migrasi. Saat Anda bermigrasi ke instance tujuan baru, perhatikan pertimbangan operasional berikut:
- Hindari operasi tulis pada data yang dimigrasikan: Jangan lakukan operasi tulis
(seperti
INSERT,UPDATE,DELETE, atau perubahan skema DDL) di instance tujuan pada tabel atau database yang disertakan dalam migrasi. Operasi tersebut dapat menyebabkan konflik replikasi dengan data yang berasal dari sumber. - Mengelola pengguna database: Anda dapat membuat dan mengelola pengguna database kapan saja menggunakan perintah
psqlstandar atau melalui Cloud SQL di konsol Google Cloud . Untuk mengetahui informasi selengkapnya, lihat Mengelola pengguna dalam dokumentasi Cloud SQL. - Cadangan dan replika baca: Cadangan otomatis dan pemulihan point-in-time (PITR) ditangguhkan selama replikasi berkelanjutan, dan Anda tidak dapat membuat replika baca Cloud SQL dari instance tujuan hingga tugas migrasi dipromosikan.
Untuk mengetahui informasi selengkapnya, lihat Batasan umum.
Pembuatan tugas migrasi mencakup:
- Menentukan setelan untuk tugas migrasi.
- Menentukan setelan sumber dan memilih database yang akan dimigrasikan.
- Menentukan setelan untuk instance database Cloud SQL tujuan dan membuat instance.
- Menyiapkan konektivitas antara instance database sumber dan tujuan.
- Menguji tugas migrasi untuk memastikan informasi koneksi yang Anda berikan untuk tugas tersebut valid.
Untuk membuat tugas migrasi ke instance tujuan baru, lakukan tindakan berikut:
Konsol
Menentukan setelan untuk tugas migrasi
- Di konsol Google Cloud , buka halaman Tugas migrasi.
- Klik Create migration job.
Halaman wizard konfigurasi tugas migrasi akan terbuka. Wizard ini berisi beberapa panel yang memandu Anda melalui setiap langkah konfigurasi.
Anda dapat menjeda pembuatan tugas migrasi kapan saja dengan mengklik Save and exit. Semua data yang Anda masukkan hingga saat itu akan disimpan dalam draf tugas migrasi. Anda dapat menyelesaikan tugas migrasi draf nanti.
- Di halaman Get started, masukkan informasi berikut:
- Nama tugas migrasi
Ini adalah nama yang dapat dibaca manusia untuk tugas migrasi Anda. Nilai ini ditampilkan di konsol Google Cloud .
- ID pekerjaan migrasi
Ini adalah ID yang dapat dibaca mesin untuk tugas migrasi Anda. Anda menggunakan nilai ini untuk menangani tugas migrasi menggunakan perintah Google Cloud CLI atau API Database Migration Service.
- Dari daftar mesin database sumber, pilih
PostgreSQL.
Kolom mesin database Tujuan diisi secara otomatis dengan Cloud SQL untuk PostgreSQL dan tidak dapat diubah.
- Pilih region tempat Anda menyimpan tugas migrasi.
Database Migration Service adalah produk yang sepenuhnya bersifat regional, yang berarti semua entity yang terkait dengan migrasi Anda (profil koneksi sumber dan tujuan, tugas migrasi, database tujuan) harus disimpan dalam satu region. Pilih region berdasarkan lokasi layanan yang memerlukan data Anda, seperti instance Compute Engine atau aplikasi App Engine, dan layanan lainnya. Setelah Anda memilih region tujuan, pilihan ini tidak dapat diubah.
- Tentukan jenis tugas migrasi: One-time atau Continuous.
- Tinjau prasyarat yang dibuat untuk lingkungan Anda. Pastikan database sumber Anda dikonfigurasi dengan benar. Untuk informasi selengkapnya, lihat Mengonfigurasi database sumber.
- Nama tugas migrasi
- Klik Simpan dan lanjutkan.
Menentukan informasi tentang profil koneksi sumber
Di halaman Define a source, lakukan langkah-langkah berikut:
- Dari menu drop-down Source connection profile, pilih profil koneksi untuk database sumber Anda (atau klik Create a connection profile, lihat Membuat profil koneksi sumber).
- Di bagian Customize parallelism configurations,
klik Show parallelism configurations.
Kecepatan paralelisme dump data terkait dengan jumlah beban yang diinduksi pada database sumber Anda. Anda dapat menggunakan setelan berikut:
- Optimal (direkomendasikan): Performa seimbang dengan beban optimal pada database sumber.
- Maksimum: Memberikan kecepatan dump tertinggi, tetapi dapat meningkatkan beban pada database sumber.
- Minimum: Menggunakan jumlah resource komputasi terendah di database sumber, tetapi mungkin memiliki throughput dump yang lebih lambat.
Jika Anda memilih setelan paralelisme yang disesuaikan, pastikan untuk meningkatkan parameter
max_replication_slots,max_wal_senders, danmax_worker_processesdi database sumber Anda. Anda dapat memverifikasi konfigurasi dengan menjalankan pengujian tugas migrasi di akhir pembuatan tugas migrasi. - Klik Simpan dan lanjutkan.
Mengonfigurasi dan membuat instance Cloud SQL tujuan
- Di halaman Define a destination, dari menu drop-down Type of destination
instance, pilih New instance. Tentukan semua
setelan yang relevan:
- Di kolom Destination instance ID, berikan ID untuk instance Cloud SQL atau gunakan ID yang dibuat otomatis.
Jangan sertakan informasi sensitif atau informasi identitas pribadi dalam ID. Anda tidak perlu menyertakan project ID dalam nama instance. Hal ini dilakukan secara otomatis jika sesuai (misalnya, di file log).
- Di kolom Password, berikan sandi alfanumerik untuk instance Cloud SQL tujuan. Ini adalah sandi untuk akun administrator
postgresdalam instance.Anda dapat memasukkan sandi secara manual atau mengklik Generate agar Database Migration Service membuat sandi untuk Anda secara otomatis.
- Dari menu drop-down Database version,
pilih versi database untuk instance tujuan.
Pelajari lebih lanjut dukungan migrasi lintas versi.
- Pilih edisi Cloud SQL untuk PostgreSQL untuk instance tujuan Anda.
Ada dua opsi yang tersedia: Cloud SQL untuk PostgreSQL edisi Enterprise dan Cloud SQL untuk PostgreSQL edisi Enterprise Plus.
Edisi Cloud SQL untuk PostgreSQL dilengkapi dengan berbagai set fitur, jenis mesin yang tersedia, dan harga. Pastikan Anda membaca dokumentasi Cloud SQL untuk memilih edisi yang sesuai dengan kebutuhan Anda. Untuk mengetahui informasi selengkapnya, lihat Pengantar edisi Cloud SQL untuk PostgreSQL.
- Menu Region menampilkan region yang sama dengan yang Anda pilih di halaman Get started.
Jika Anda mengonfigurasi instance untuk ketersediaan tinggi, pilih Multiple zones (Highly available). Anda dapat memilih zona primer dan sekunder. Kondisi berikut berlaku jika zona sekunder digunakan selama pembuatan instance:
- Zona secara default ditetapkan ke Any untuk zona primer dan Any (different from primary) untuk zona sekunder.
- Jika zona primer dan sekunder ditentukan, kedua zona tersebut harus berbeda.
- Di bagian Connections, pilih apakah akan menambahkan alamat IP publik atau pribadi untuk instance tujuan Anda.
Anda dapat mengonfigurasi instance agar memiliki kedua jenis alamat IP, tetapi setidaknya satu jenis diperlukan untuk migrasi.
Pilih salah satu opsi berikut:
- Jika Anda ingin bermigrasi menggunakan peering VPC
atau tunnel SSH terbalik, pilih Private IP.
Untuk mengaktifkan konektivitas IP pribadi, pastikan Anda memenuhi semua persyaratan jaringan tambahan.
Luaskan bagian ini untuk melihat persyaratan IP pribadi selengkapnya.
- Service Networking API diaktifkan. Anda dapat mengaktifkan Service Networking API menggunakan konsol Google Cloud .
- Anda memiliki izin IAM
servicenetworking.services.addPeering. - Anda telah mengonfigurasi akses layanan pribadi untuk project, yang mengharuskan Anda memiliki peran IAM
compute.networkAdmin. - Ada setidaknya satu jaringan VPC non-lama di project Anda, atau jaringan /vpc/docs/shared-vpc.
- Jika Anda menggunakan jaringan/vpc/docs/shared-vpc, Anda juga perlu melakukan hal berikut:
- Aktifkan Service Networking API untuk project host.
- Menambahkan pengguna Anda ke project host.
- Beri pengguna Anda peran IAM compute.networkAdmin di project host.
- Pilih jaringan VPC terkait untuk di-peering. Jika Anda berencana untuk terhubung ke sumber migrasi menggunakan peering VPC, pilih VPC tempat instance berada.
- Jika jaringan layanan terkelola belum pernah dikonfigurasi untuk VPC yang dipilih, Anda dapat memilih untuk memilih rentang IP dan mengklik Connect atau menggunakan rentang IP yang dipilih secara otomatis dan mengklik Allocate & Connect.
- Jika Anda ingin bermigrasi melalui Internet menggunakan daftar IP yang diizinkan,
pilih
IP Publik.
Atau, di bagian Public IP, klik kolom Authorized networks, lalu beri otorisasi jaringan atau proxy untuk terhubung ke instance Cloud SQL. Jaringan hanya diizinkan dengan alamat yang Anda berikan. Lihat Mengonfigurasi IP publik dalam dokumentasi Cloud SQL.
Anda akan mengonfigurasi konektivitas tugas migrasi di langkah berikutnya. Untuk mempelajari lebih lanjut metode jaringan yang tersedia, lihat Mengonfigurasi konektivitas.
- Jika Anda ingin bermigrasi menggunakan peering VPC
atau tunnel SSH terbalik, pilih Private IP.
- Di kolom Destination instance ID, berikan ID untuk instance Cloud SQL atau gunakan ID yang dibuat otomatis.
- Pilih jenis mesin untuk instance Cloud SQL. Pelajari lebih lanjut jenis mesin PostgreSQL.
- Untuk edisi Cloud SQL untuk PostgreSQL Enterprise Plus: Centang kotak Enable data cache jika Anda ingin menggunakan fitur cache data di database tujuan.
Cache data adalah fitur opsional yang tersedia untuk instance edisi Cloud SQL untuk PostgreSQL Enterprise Plus yang menambahkan solid state drive lokal berkecepatan tinggi ke database tujuan Anda. Fitur ini dapat menimbulkan biaya tambahan untuk Cloud SQL Anda. Untuk mengetahui informasi selengkapnya tentang cache data, lihat Ringkasan cache data dalam dokumentasi Cloud SQL.
- Tentukan jenis penyimpanan untuk instance Cloud SQL. Anda dapat memilih solid-state drive (SSD) atau hard disk drive (HDD).
- Tentukan kapasitas penyimpanan (dalam GB) untuk instance Cloud SQL.
Pastikan instance memiliki kapasitas penyimpanan yang cukup untuk menangani data dari database sumber Anda. Anda dapat meningkatkan kapasitas ini kapan saja, tetapi Anda tidak dapat menguranginya.
(Opsional) Konfigurasi opsi enkripsi data atau label resource untuk instance tujuan Anda.
Luaskan bagian ini untuk melihat langkah-langkah opsional.
Klik Show optional configurations, lalu:
Tentukan apakah Anda ingin mengelola enkripsi data yang dimigrasikan dari sumber ke tujuan. Secara default, data Anda dienkripsi dengan kunci yang dikelola oleh Google Cloud. Jika ingin mengelola enkripsi, Anda dapat menggunakan kunci enkripsi yang dikelola pelanggan (CMEK). Untuk melakukannya:
- Centang kotak Gunakan kunci enkripsi yang dikelola pelanggan (CMEK).
- Dari menu Select a customer-managed key, pilih CMEK Anda.
Jika Anda tidak melihat kunci, klik Masukkan nama resource kunci untuk memberikan nama resource kunci yang ingin Anda gunakan. Contoh nama resource kunci:
projects/my-project-name/locations/my-location/keyRings/my-keyring/cryptoKeys/my-key.- Tambahkan flag yang diperlukan untuk diterapkan ke server database. Jika memungkinkan, pastikan flag database pada instance Cloud SQL tujuan yang dibuat sama dengan flag database pada database sumber. Pelajari lebih lanjut flag database yang didukung untuk PostgreSQL.
- Tambahkan label apa pun yang khusus untuk instance Cloud SQL.
Label membantu mengatur instance Anda. Misalnya, Anda dapat mengatur label berdasarkan pusat biaya atau lingkungan. Label juga disertakan dalam tagihan sehingga Anda dapat melihat distribusi biaya di seluruh label.
- Klik Create destination and continue. Database Migration Service kini membuat instance tujuan Cloud SQL Anda. Proses ini dapat memerlukan waktu beberapa menit.
Menyiapkan konektivitas antara instance database sumber dan tujuan
Dari menu drop-down Metode konektivitas, pilih metode konektivitas jaringan. Metode ini menentukan cara instance Cloud SQL yang baru dibuat akan terhubung ke database sumber. Metode konektivitas jaringan saat ini untuk bermigrasi ke instance baru mencakup daftar IP yang diizinkan, tunnel SSH terbalik, dan peering VPC.
| Jika Anda ingin menggunakan... | Maka... |
|---|---|
| Metode konektivitas jaringan daftar IP yang diizinkan, | Anda harus menentukan alamat IP keluar dari instance tujuan. Jika instance Cloud SQL yang Anda buat adalah instance ketersediaan tinggi, sertakan alamat IP keluar untuk instance utama dan sekunder. |
| Metode konektivitas jaringan tunnel SSH terbalik, | Anda harus memilih instance VM Compute Engine yang akan menghosting tunnel.
Setelah menentukan instance, Google akan menyediakan skrip yang melakukan langkah-langkah untuk menyiapkan tunnel antara database sumber dan tujuan. Anda harus menjalankan skrip di Google Cloud CLI. Jalankan perintah dari mesin yang memiliki konektivitas ke database sumber dan ke Google Cloud. |
| Metode konektivitas jaringan peering VPC, | Anda harus memilih jaringan VPC tempat database sumber berada. Instance Cloud SQL akan diupdate untuk terhubung ke jaringan ini. |
Setelah Anda memilih dan mengonfigurasi konektivitas jaringan, klik Konfigurasi dan lanjutkan.
Mengonfigurasi database migrasi
Anda dapat memigrasikan semua database dari instance sumber, atau hanya memilih database tertentu. Instance tujuan Anda tidak boleh berisi database apa pun yang memiliki nama yang sama dengan database yang Anda pilih untuk migrasi. Jika Database Migration Service mengalami tabrakan nama database, database yang bermasalah akan dihapus di tujuan sebelum migrasi.
- Dari daftar Databases to migrate, pilih salah satu opsi berikut:
- All databases: Memilih semua database yang ada di sumber.
- Specific databases: Memungkinkan Anda memilih database tertentu dari semua database yang ada di sumber.
Jika ingin memigrasikan database tertentu, Anda dapat memfilter daftar yang muncul dan memilih database yang ingin dimigrasikan oleh Database Migration Service ke tujuan Anda.
Jika daftar tidak muncul dan error penemuan database ditampilkan, klik Reload. Jika penemuan database gagal, tugas akan memigrasikan semua database. Anda dapat melanjutkan pembuatan tugas migrasi dan memperbaiki error konektivitas nanti.
- Klik Simpan dan lanjutkan.
Menguji, membuat, dan menjalankan tugas migrasi
Pada langkah terakhir ini, tinjau ringkasan setelan tugas migrasi, sumber, tujuan, dan metode konektivitas, lalu uji validitas penyiapan tugas migrasi. Jika terjadi masalah, Anda dapat mengubah setelan tugas migrasi. Tidak semua setelan dapat diedit.
-
Di halaman Test and create migration job, klik Test job.
Jika pengujian gagal, Anda dapat mengatasi masalah tersebut di bagian alur yang sesuai, dan kembali untuk menguji ulang. Untuk mengetahui informasi pemecahan masalah pengujian tugas migrasi yang gagal, lihat Mendiagnosis masalah untuk PostgreSQL.
-
Setelah pengujian tugas migrasi selesai, klik Create and start job
untuk membuat tugas migrasi dan langsung memulainya, atau klik Create job
untuk membuat tugas migrasi tanpa langsung memulainya.
Jika tugas tidak dimulai pada saat dibuat, tugas tersebut dapat dimulai dari halaman Migration jobs dengan mengklik START. Terlepas dari kapan tugas migrasi dimulai, organisasi Anda akan dikenai biaya untuk keberadaan instance tujuan.
Migrasi Anda sedang berlangsung. Saat Anda memulai tugas migrasi, Database Migration Service akan memulai dump dan replikasi penuh awal. Untuk mengetahui informasi selengkapnya, lihat Batasan umum.
- Lanjutkan ke Meninjau tugas migrasi.
Google Cloud CLI
Membuat profil koneksi tujuan.
Saat bermigrasi ke instance tujuan baru dengan Google Cloud CLI, Anda membuat instance tujuan dan profil koneksi dalam satu tindakan.
Jalankan perintah berikut (klik link 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 instance tujuan Anda.
- DEST_INSTANCE dengan ID instance Cloud SQL tujuan yang telah Anda buat sebelumnya.
- 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 \ --cloudsql-instance=DEST_INSTANCE \ --username=DEST_USER \ --password=DEST_PASSWORD \ --role=DESTINATION \ --no-async
Windows (PowerShell)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ` --region=REGION ` --cloudsql-instance=DEST_INSTANCE ` --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 ^ --cloudsql-instance=DEST_INSTANCE ^ --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 tugas migrasi.
Jika Anda menggunakan peering VPC atau konektivitas tunnel reverse-SSH, pastikan untuk menambahkan flag yang diperlukan, seperti--peer-vpc, atau--vm,--vm-ip,--vm-port,--vpc. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi konektivitas dan Contoh Google Cloud CLI.
Jalankan perintah berikut (klik link 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 yang dapat dibaca mesin untuk tugas migrasi Anda. Anda menggunakan nilai ini untuk menangani tugas migrasi menggunakan perintah Google Cloud CLI atau API Database Migration Service.
- REGION dengan ID region tempat Anda ingin menyimpan tugas migrasi.
- MIGRATION_JOB_NAME dengan nama yang dapat dibaca manusia untuk tugas migrasi Anda. Nilai ini ditampilkan di Database Migration Service di konsol Google Cloud .
- SOURCE_CONNECTION_PROFILE_ID dengan ID profil koneksi sumber yang dapat dibaca mesin. Untuk mengetahui informasi selengkapnya, lihat Membuat profil koneksi sumber.
- DESTINATION_CONNECTION_PROFILE_ID dengan ID yang dapat dibaca mesin dari profil koneksi tujuan.
Opsional: Database Migration Service memigrasikan semua database di sumber Anda secara default. Jika Anda hanya ingin memigrasikan database tertentu, gunakan flag
--databases-filterdan tentukan ID-nya sebagai daftar yang dipisahkan koma.Contoh:
--databases-filter=my-business-database,my-other-databaseAnda dapat mengedit tugas migrasi yang dibuat dengan flag
--databases-filternanti menggunakan perintahgcloud database-migration migration-jobs update.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud database-migration migration-jobs \ create MIGRATION_JOB_ID \ --no-async \ --region=REGION \ --display-name=MIGRATION_JOB_NAME \ --source=SOURCE_CONNECTION_PROFILE_ID \ --destination=DESTINATION_CONNECTION_PROFILE_ID \ --type=CONTINUOUS
Windows (PowerShell)
gcloud database-migration migration-jobs ` create MIGRATION_JOB_ID ` --no-async ` --region=REGION ` --display-name=MIGRATION_JOB_NAME ` --source=SOURCE_CONNECTION_PROFILE_ID ` --destination=DESTINATION_CONNECTION_PROFILE_ID ` --type=CONTINUOUS
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ create MIGRATION_JOB_ID ^ --no-async ^ --region=REGION ^ --display-name=MIGRATION_JOB_NAME ^ --source=SOURCE_CONNECTION_PROFILE_ID ^ --destination=DESTINATION_CONNECTION_PROFILE_ID ^ --type=CONTINUOUS
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]