暂无图片
pg主备切换
我来答
分享
Asky
2022-10-24
pg主备切换

pg版本是13.8的,部署了主从流复制的,每次做主从切换,把原来的主库充当为新主库的备库,都需要使用pg_rewind进行拉新,是不是这个步骤是必须的?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
刘贵宾

pg_rewind是pg提供的工具,当2个pg实例时间线(timeline)出现分叉时,pg_rewind可以做实例间的同步。(比如主库运行的情况下,备库failover后运行了一段时间,此时主备的时间线就出现了分叉)
pg_rewind会对比两者的大小,然后把大小不一样的文件从源拷贝到目标,包括配置文件。但是它不会对比没有发生改变的文件,所以pg_rewind在比较大的库,更改少量数据时,运行效率较高。
pg_rewind可以运用在备库failover后,备库即时运行一段时间,也可以把备库拉到和主库一样的状态,重新成为standby。
pg_rewind运行过程中,会对比主(源)备(目标)的差异点,并把主库的差异点后的WAL日志传递给备库。所以,如果主库在差异点之后的WAL也丢失了,那么rewind是不会拷贝不存在的WAL日志的,所以此时备库仍然不会被成功做成standby。解决该问题需要用restore。

暂无图片 评论
暂无图片 有用 2
打赏 0
Asky

步骤如下:

1.停掉主库

pg_ctl -D /opt/pg13/data -m fast stop


2.将从库提升为主库

pg_ctl promote -D /opt/pg13/data


3.将原来的主库启动 作为新主库的备库


我测试的情况是 直接切换的,整个操作期间没有对数据库有任何的dml操作,但是每次都需要使用pg_rewind拉新


暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
pg中,怎么清理xlog呢?越来越大
回答 2
已采纳
可以用pgarchivecleanupd$PGDATA/pgxlog来清理,但是,能留着就留一留,这个有用
pg线上环境下,一般需要调整那些参数或者开关??
回答 3
针对postgresql安全配置方面,可以看看这个https://www.modb.pro/doc/5172
pg_dump备份时候wal日志也会备份吗?
回答 2
pgdump是逻辑备份,备份数据或结构,物理备份pgbasebackup才会备份wal日志文件。
postgresql 有没有des的加密函数?
回答 1
使用pgcrypto模块提供的encrypt函数:
postgresql 有动态数据源,主库挂了,java项目连接自动切换到从库,至少可以读数据吗? 等主库恢复了,又会自动切换到主库吗?
回答 3
使用JDBC连接PostgreSQL数据库targetServerType(String) 默认值 any允许仅打开与具有所需状态的服务器的连接,允许的值为any、primary、
postgresql给某个用户所有模式的查询权限 有这种语法吗?
回答 1
没有。只能单独对某个用户授予查询某个模式下的表/视图/序列的权限,语法如下:GRANT{{SELECT|INSERT|UPDATE|DELETE|TRUNCATE|REFERENCES|TRIGGER
postgreSQL的with语句作为表和子查询作为表再关联性能相差很大吗?
回答 1
已采纳
如果子查询查一次,用子查询和with的性能相差不大。如果子查询多次,用with可以明显提高性能
pg中为什么大量的逻辑读不好?怎么理解
回答 1
大量的全表扫描,全表扫描会带来大量的逻辑读的请求逻辑读更多引起latchlock,消耗CPU资源、性能损耗IO消耗负载较高。逻辑读buffer读物理读,无论大量的buffer读还是物理读,都会影响性能
pg中的checkpoint和oracle的不同?
回答 1
看看这个,能否解惑https://blog.51cto.com/u15127599/2887857
pg中的sysid,在wal中如何查看?
回答 1
看看这个