问题描述
我是Postgresql的新手。
我正在尝试设置流式复制(Postgresql 9.1)。
我想在本地测试备份和还原。
我也使用pg_basebackup
成功制作了备份文件(我认为是)
但是无法还原数据。
这是我设置数据库的方法。
-
server1(主服务器)上的Postgres
配置文件:/var/lib/pgsql/9.1/data/postgresql.conf
# WRITE AHEAD LOG wal_level = hot_standby # - Archiving - archive_mode = on archive_command = 'cp %p /var/lib/pgsql/9.1/wal-archive/%f' # - Master Server - max_wal_senders = 5 wal_keep_segments = 32 # - Standby Servers - hot_standby = on
-
启动母版并插入一些数据
-
服务器2上的Postgres(从服务器)
-
在从属服务器上创建recovery.conf文件
// vi /var/lib/pgsql/9.1/data/recovery.conf standby_mode = 'on' primary_conninfo = 'host={master_hostname} port=5432 user=repl_user password={my_password}'
-
启动从属=>,数据自动与主控同步
-
创建WAL备份
// slave service postgresql-9.1 stop rm -rf /var/lib/pgsql/9.1/data/* su - postgres pg_basebackup -h {master_hostname} -p 5432 -U repl_user -D /var/lib/pgsql/9.1/data --xlog --checkpoint=spread --progress
-
在从属服务器上执行
/var/lib/pgsql/9.1/wal-archive
后,将在主服务器上的pg_basebackup
中生成WAL文件// something like this 000000070000000000000013 000000070000000000000014 000000070000000000000015 000000070000000000000015.00000020.backup
-
丢一张桌子(主人)
DROP TABLE {table_name}
-
service postgresql-9.1 stop vi /var/lib/pgsql/9.1/data/recovery.conf // add this line to recovery.conf restore_command = 'cp /var/lib/pgsql/9.1/wal-archive/%f %p'
-
再次启动母版
service postgresql-9.1 start
但是该删除的表无法在主服务器上还原。我不知道为什么 我还尝试添加一些其他选项,但是一切都不起作用。
recovery_target_time = '2020-10-29 08:20:00 UTC'
recovery_target_inclusive = false
请帮助您如何使用WAL文件还原数据。
如果我不小心将表放到master上,如何使用WAL文件还原它?我应该在recovery.conf文件上设置哪种配置?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)