Ringkasan
Halaman ini menyertakan skrip yang membantu proses debug dan penggunaan AlloyDB.
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 tidak ada antara sumber dan cluster tujuan AlloyDB
- 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:
Di mana: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');
n_tup_ins
: jumlah baris yang disisipkann_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 dari sumber ke instance tujuan AlloyDB secara manual
Jika mendeteksi ada beberapa perbedaan antara sumber dan instance tujuan AlloyDB, Anda dapat memigrasikan data menggunakan salah satu opsi berikut:
Opsi 1: Bandingkan data secara manual antara sumber dan tujuan AlloyDB, lalu jalankan kueri SQL yang sesuai untuk hanya memperbarui data yang berbeda antara sumber dan replika.
Opsi 2: Jalankan
pg_dump
danpg_restore
untuk tabel tanpa kunci utama. Lihat Mengekspor data dari server PostgreSQL lokal menggunakan pg_dump untuk mengetahui informasi selengkapnya.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.