在CentOS系统中,使用pg_rman
工具可以有效地恢复通过pgadmin
误删除的数据库数据。pg_rman
(PostgreSQL Recovery Manager)是一个开源的备份和恢复工具,支持在线和基于PITR(Point-In-Time Recovery)的备份恢复方式。以下是使用pg_rman
恢复误删除数据的详细步骤:
pg_rman
:cp pg_rman-<版本号>-pg<PostgreSQL版本号>.tar.gz /home/postgres/
chown -R postgres:postgres /home/postgres/pg_rman-<版本号>-pg<PostgreSQL版本号>.tar.gz
su - postgres
tar -zxvf /home/postgres/pg_rman-<版本号>-pg<PostgreSQL版本号>.tar.gz
cd pg_rman-<版本号>-pg<PostgreSQL版本号>/
make && make install
mkdir -p /home/postgres/archive_dir
chown -R postgres:postgres /home/postgres/archive_dir
postgresql.conf
文件,添加或修改以下配置:wal_level='replica'
archive_mode='on'
archive_command='test !-f /home/postgres/archive_dir/%f && cp %p /home/postgres/archive_dir/%f'
restore_command='cp /home/postgres/archive_dir/%f %p'
max_wal_senders=10
pg_ctl restart
psql -U postgres -h <主机地址> -p <端口号>
postgres
用户并检查配置:\c
SELECT name, setting FROM pg_settings WHERE name IN ('wal_level', 'archive_mode', 'archive_command');
SELECT pg_switch_wal();
pg_rman init -B /home/postgres/backup
pg_rman backup --backup-mode=full -B /home/postgres/backup
pg_rman backup --backup-mode=incremental -B /home/postgres/backup
pg_rman recover /home/postgres/backup
请注意,恢复操作可能会覆盖现有的数据,因此在执行恢复之前,请确保备份所有重要数据,并谨慎操作。