Yang Anda inginkan adalah decoding logis dari PostgreSQL 9.4 dukungan, yang memungkinkan Anda mengekstrak aliran perubahan dari server. Untuk menggunakannya, Anda memerlukan plugin decoding logis yang mengubah aliran perubahan di server menjadi sesuatu yang dapat digunakan oleh aplikasi Anda. Ada beberapa yang sedang dikembangkan, tapi ini masih cukup awal.
Karena Anda mencatat dalam komentar bahwa Anda menggunakan AWS RDS, saat ini Anda kurang beruntung, karena RDS pada saat penulisan tidak menawarkan plugin decoding apa pun dan Anda memerlukan hak pengguna super untuk menginstalnya.
Anda tidak dapat menggunakan xmin dan xmax untuk penyalinan inkremental lengkap, karena Anda tidak dapat melakukan pembacaan kotor di PostgreSQL, jadi Anda tidak dapat melihat apakah Tuple telah DELETE
d. Untuk menggunakan ID transaksi, Anda harus mencegah VACUUM
dari menghapus baris "mati", yaitu baris yang tidak perlu dilakukan transaksi saat ini dengan benar. Anda juga harus bisa melakukan pembacaan kotor. Tak satu pun dari mereka memiliki solusi mudah di PostgreSQL.
Jika Anda memiliki tabel hanya sisipkan (atau Anda menyisipkan dan memperbarui, tidak pernah menghapus, dan tidak pernah mengubah kunci utama suatu baris) maka Anda mungkin dapat menggunakan xmin transaksi. Anda harus berurusan dengan transaction-id wraparound
dengan mencentang pg_database.datfrozenxid
dan pg_class.relfrozenxid
untuk hubungan kepentingan. Lihat kode sumber dan komentar dalam kode untuk detailnya. VACUUM
dan kurangnya pembacaan kotor tidak menjadi masalah jika Anda tidak pernah menghapus entri, karena Anda tidak perlu melihat baris "hilang".
Gunakan decoding logis di 9.4+ jika memungkinkan. Untuk versi yang lebih lama, jika Anda memerlukan replikasi lengkap, Anda perlu mengakumulasi antrian perubahan dengan pemicu.
Jika Anda dapat melarang penghapusan dan perubahan kunci utama sepenuhnya, Anda dapat menggunakan xmin
untuk menemukan baris yang diubah, selama Anda berhati-hati untuk memastikan tidak ada delete
s dijalankan, atau update
s yang mengubah primary key
s.