Hello,
I hope you are doing fine. I need your expertise on below case study.
My current production environment is 2 node streaming replication hosted on Ubuntu VM 's on Azure. I have performed below steps on primary database.
1- Take Base backup
1- Take Base backup
2- Create a restore point using pg_create_restore_point()
3- executed some DDL statement (CREATE VIEW,ADD INDEX,DROP INDEX)
4- Perform rollback using restore point
3- executed some DDL statement (CREATE VIEW,ADD INDEX,DROP INDEX)
4- Perform rollback using restore point
To rollback, you must stop PostgreSQL, restore the last full backup, and apply WAL files until the restore point:
1. Stop PostgreSQL Service2. Restore from Full Backup (Using pg_basebackup)
3. Modify recovery.conf (or postgresql.conf for newer versions)
o Set recovery target name:
recovery_target_name = 'before_ddl_changes'
recovery_target_action = 'pause'
o Set restore_command to replay WAL logs:
restore_command = 'cp /path/to/wal_archive/%f %p'
4. Start PostgreSQL
sudo systemctl start postgresql
5. Verify Recovery Status
SELECT pg_is_in_recovery();
After verification, finalize recovery:
touch /var/lib/postgresql/data/recovery.signal
or
rm /var/lib/postgresql/data/recovery.conf
Then restart PostgreSQL.
6. Reestablish replication
--
Could you please help if my steps are correct ? Can we achieve rollback from any other approach without restoring basebackup?
With warm regards
Chandan