postgresql灾备切换
    		       		warning:
    		            这篇文章距离上次修改已过420天,其中的内容可能已经有所变动。
    		        
        		                
                在PostgreSQL中,实现数据库的故障转移和恢复可以通过使用流复制或者逻辑复制。以下是使用流复制进行故障转移的基本步骤:
在主服务器上配置复制:
编辑
postgresql.conf文件,设置wal_level为replica,max_wal_senders为足够大的值,wal_sender_timeout根据实际情况设置,并且配置primary_conninfo。创建复制用户:
CREATE ROLE replica LOGIN PASSWORD 'replica_password'; GRANT REPLICATION SLAVE ON DATABASE your_db TO replica;在备服务器上,配置复制并指向主服务器:
编辑
recovery.conf(或者在postgresql.conf中直接设置以下参数),设置primary_conninfo指向主服务器,primary_slot_name为一个唯一的名字,用于复制槽位。启动流复制:
在备服务器上,启动PostgreSQL服务。
如果主服务器出现故障,你需要手动将备服务器提升为主服务器:
在备服务器上,停止复制进程:
SELECT * FROM pg_stat_replication; SELECT pg_stop_backup();- 修改 
recovery.conf,移除或注释掉primary_conninfo和primary_slot_name。 - 重启PostgreSQL服务。
 - 确认服务器已经成为主服务器,并且可以接受写操作。
 - 配置原主服务器(现备服务器),指向新的主服务器进行复制。
 
这个过程是手动的故障转移,对于自动故障转移和恢复,可以使用如 Patroni、pg\_auto\_failover 等工具。
评论已关闭