Halaman ini menyertakan skrip yang membantu proses debug dan penggunaan PostgreSQL.
Memigrasikan operasi UPDATE dan DELETE untuk tabel non-kunci utama
Untuk tabel yang tidak memiliki kunci utama, Database Migration Service mendukung migrasi snapshot awal dan pernyataan INSERT selama fase pengambilan data perubahan (CDC).
Untuk memperbarui proses UPDATE dan DELETE yang tidak ada, lihat bagian selanjutnya dalam dokumen ini.
Mendeteksi data yang hilang antara instance sumber dan tujuan Cloud SQL
Identifikasi tabel yang tidak memiliki kunci utama:
select tab.table_schema,
tab.table_name
from information_schema.tables tab
left join information_schema.table_constraints tco
on tab.table_schema = tco.table_schema
and tab.table_name = tco.table_name
and tco.constraint_type = 'PRIMARY KEY'
where tab.table_type = 'BASE TABLE'
and tab.table_schema not in ('pg_catalog', 'information_schema', 'pglogical')
and tco.constraint_name is null
order by table_schema,
table_name;
Sebelum memulai migrasi, untuk semua tabel tanpa kunci utama, periksa apakah ada pembaruan atau penghapusan menggunakan kueri ini:
SELECT schemaname,
relname,
n_tup_ins,
n_tup_upd,
n_tup_del
FROM pg_stat_user_tables
WHERE schemaname NOT IN
('pglogical', 'pg_catalog', 'information_schema');
Di mana:
n_tup_ins: jumlah baris yang disisipkan
n_tup_upd: jumlah baris yang diperbarui (termasuk baris HOT yang diperbarui)
n_tup_del: jumlah baris yang dihapus
Simpan hasil ini dalam tabel terpisah atau dalam file.
Setelah penyiapan migrasi selesai, jalankan kueri lagi.
Bandingkan hasilnya dengan hasil dari langkah 3.
Jika ada perbedaan nilai n_tup_upd atau n_tup_del di sumber selama migrasi, mungkin ada beberapa pembaruan atau penghapusan di sumber.
Memigrasikan data secara manual dari sumber ke instance tujuan Cloud SQL
Jika mendeteksi adanya beberapa perbedaan antara sumber dan instance tujuan Cloud SQL, Anda dapat memigrasikan data menggunakan salah satu opsi berikut:
Opsi 1: Bandingkan data secara manual antara sumber dan tujuan Cloud SQL, lalu jalankan kueri SQL yang sesuai untuk hanya memperbarui data yang berbeda antara sumber dan replika.
Opsi 3: Gunakan perintah COPY Postgres untuk memigrasikan data Anda. Lihat dokumentasi PostgreSQL untuk mengetahui informasi selengkapnya. Perhatikan bahwa langkah ini mengharuskan VM replika dapat terhubung ke VM sumber.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-08-18 UTC."],[[["\u003cp\u003eThis page provides debugging scripts and guidance for using PostgreSQL within the Database Migration Service.\u003c/p\u003e\n"],["\u003cp\u003eDatabase Migration Service supports the migration of initial snapshots and \u003ccode\u003eINSERT\u003c/code\u003e statements for tables without primary keys, but \u003ccode\u003eUPDATE\u003c/code\u003e and \u003ccode\u003eDELETE\u003c/code\u003e operations may need manual intervention.\u003c/p\u003e\n"],["\u003cp\u003eYou can identify tables lacking primary keys and check for any updates or deletes on the source during migration using the provided SQL queries against the \u003ccode\u003einformation_schema\u003c/code\u003e and \u003ccode\u003epg_stat_user_tables\u003c/code\u003e tables.\u003c/p\u003e\n"],["\u003cp\u003eIf data discrepancies are found between the source and the Cloud SQL destination instance, you can manually resolve them by comparing and updating data, or by utilizing \u003ccode\u003epg_dump\u003c/code\u003e/\u003ccode\u003epg_restore\u003c/code\u003e or the \u003ccode\u003eCOPY\u003c/code\u003e command for the affected tables.\u003c/p\u003e\n"],["\u003cp\u003eIt is important to potentially clean the replica before using \u003ccode\u003epg_restore\u003c/code\u003e or \u003ccode\u003eCOPY\u003c/code\u003e commands if there is data that was previously migrated.\u003c/p\u003e\n"]]],[],null,[]]