Pemulihan PITR PostgreSQL


9

Saya memiliki server PostgreSQL 9.1 yang berjalan pada OS CentOS 5.8 32bit dan saya telah mengaktifkan pengarsipan WAL. Di server ini, ada tiga database: databaseA, databaseB, dan databaseC. Seseorang menghapus tabel pada jam 12 siang di databaseB dan saya ingin mengembalikan databaseB sebelum waktu tabel itu dihapus. Sekarang pukul 3 sore.

Bagaimana saya bisa mengembalikan databaseB hingga jam 12 malam tanpa kehilangan data selama tiga jam di dua basis data lainnya?

postgresql.conf

wal_level = archive             
archive_mode = on               
archive_command = 'test ! -f /opt/pgsql/logs/%f && cp %p /opt/pgsql/logs/%f'
max_wal_senders = 100

recovery.conf

restore_command = 'cp /opt/pgsql/logs/%f %p'
recovery_target_time = '2012-06-29 11:59:59 CEST'

Saya menjalankan backup basis saya pada jam 9 pagi

pg_basebackup -h 127.0.0.1 -D /opt/pgsql/backup

Layanan PostgreSQL dimatikan pada jam 3 sore.

Jawaban:


6

Saya akan melakukan pemulihan titik waktu ke lokasi yang berbeda, mengembalikan ke waktu yang diinginkan, dan pg_dump database masalah. Saya akan menjatuhkan satu database di lokasi normal, membuatnya lagi, dan memuat output pg_dump.

Pastikan Anda membuat dan menyimpan salinan level sistem file dari pohon direktori data cluster sebelum Anda memulai hal seperti ini.


Terima kasih, +1 atas jawabannya. Bisakah Anda menambahkan langkah-langkah yang diperlukan untuk memulihkan ke lokasi yang berbeda dan kemudian memulihkan menggunakan pg_restore? Dengan jawaban Anda, saya berpikir untuk menggunakan lokasi cadangan dasar yang sebenarnya untuk melakukan PITR.
Craig Efrein

0

Untuk memperluas jawaban kgrittn, Anda juga dapat melakukan pg_dumphanya dari tabel yang dijatuhkan dan membangunnya kembali di database yang sudah adaB, jadi Anda tidak perlu kehilangan 6 jam data di tabel lain.


terima kasih atas jawaban Anda, tetapi semua berbagai kendala dan hubungan antara tabel akan mencegah saya memulihkan hanya satu.
Craig Efrein
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.