在使用PostgreSQL高可用集群过程中发现一个很难解决的问题,先记录在这里。

我们知道在PG流复制集群中,如果主库死掉了,备库要提升为主库有两种方法:

1)pg_ctl promote

2)创建对应的trigger文件:touch " " /var/lib/pgsql/10/data/.tfile

但是这两种方法会使得备库提升为主的同时,时间线会+1,在pg_wal中可以看到:

-bash-4.1$ ls -rlth pg_wal/
total 49M
drwx------ postgres postgres .0K May : archive_status
-rw------- postgres postgres 16M May :
-rw------- postgres postgres 16M May :
-rw------- postgres postgres May : .history
-rw------- postgres postgres 16M May :

但是如果我们不想让时间线+1,应该怎么提升为主节点呢?

为什么不想让时间线+1呢? 如果主库再起来时,需要作为备节点了,由于可能发生日志分支,需要使用pg_rewind找到相同日志的点,当做完rewind之后,发现无法启动主库。因为他们相同的点在时间线+1前的时间线中,而新的主库的时间线已经+1了。就无法创建同步,目前只能重做主库,但是如果数据量很大的时候,就很麻烦!

思路:

1)看看官方文档中有没有方法。

2)看看能不能提一个BUG。

PostgreSQL提升为主库 时间线加一的问题的更多相关文章

  1. postgreSQL 时间线

    “时间线”(Timeline)是PG一个很有特色的概念,在备份恢复方面的文档里面时有出现.但针对这个概念的详细解释却很少,也让人不太好理解,我们在此仔细解析一下. 时间线的引入 为了理解引入时间线的背 ...

  2. postgresql从库提升为主库

    一.停主库 1.查看当前连接 select pid,datname,usename,client_addr,client_port, application_name from pg_stat_act ...

  3. json,异步加载,时间线

    JSON是一种传输数据的格式 JSON.stringify(obj);  obj--string JSON.parse(str);   string-->obj      

  4. JS实现页面复制文字时自动加版权

    经亲自实践,尝试了各种方法,目前可行的方法主要有如下两种: 可以在任何运行使用js代码的网站中使用,比如本人在自己的博客园博客中实现了一下,读者您可亲自在本人博客上测试. 方法1: <scrip ...

  5. 如何解决Angular网页内嵌推特时间线无法正常显示

    我最近解决了一个折磨了我好久但是解决方法却只是添加两三行代码的问题.我没有在网上找到合适的解决方案,最后是我根据官方网站和很多的帖子里的部分代码得到的启发,尝试了很久之后得到的解决方法.因为过程实在是 ...

  6. Python图表数据可视化Seaborn:3. 线性关系数据| 时间线图表| 热图

    1. 线性关系数据可视化 lmplot( ) import numpy as np import pandas as pd import matplotlib.pyplot as plt import ...

  7. WPF性能调试系列 – 应用程序时间线

    WPF性能调试系列文章: WPF页面渲染优化:Application Timeline WPF页面业务加载优化:Ants Performance Profiler WPF内存优化:Ants Memor ...

  8. pg_rewind 源端时间线发生改变 同步失败

    master-standby情况下,发生如下行为: 1.master停掉后,standby做为新的master(可能存在部分事物没有同步到standby中). 2.新master运行过程中出错,进行恢 ...

  9. Layui选项卡、进度条、面板、徽章、时间线、辅助元素

    Layui选项卡.进度条.面板.徽章.时间线.辅助元素 Tab选项卡 - 页面元素    导航菜单可应用于头部和侧边,Tab选项卡提供多套风格,支持响应式,支持删除选项卡等功能.面包屑结构简单,支持自 ...

随机推荐

  1. OpenCV KNN 之 使用方法

    http://blog.csdn.net/WL2002200/article/details/43149229 OpenCV 中KNN构造函数如下. C++: CvKNearest::CvKNeare ...

  2. java压缩多个文件

    首先创建一个工具类,定义好接口,这里的参数1:fileList:多个文件的path+name2: zipFileName:压缩后的文件名 下面是代码,注释已经很详细了 public class ZIP ...

  3. 【转载】showModalDialog returnValue is undefined in Google Chrome

    showModalDialog returnValue is undefined in Google Chrome Posted on August 22, 2012by briancaos For ...

  4. spark SQL学习(spark连接 mysql)

    spark连接mysql(打jar包方式) package wujiadong_sparkSQL import java.util.Properties import org.apache.spark ...

  5. 无法读取服务器服务中的服务器队列性能数据。数据段的第一个四字节 (DWORD) 中包

    无法打开服务器服务性能对象.数据段的第一个四字节 (DWORD) 包含状态代码. 解决方法:修改注册表禁用PerfNet性能计数器. 具体方法:打开注册表,在HKEY_LOCAL_MACHINE\SY ...

  6. nagios监控3306端口

    1.修改 /usr/local/nagios/etc/objects/commands.cfg  添加一个服务名 # check port define command{ command_name c ...

  7. JavaScript对象、JSON对象、JSON字符串的区别

    一.首先看下什么是JSON JSON:JavaScript Object Natation,JavaScript对象的表现形式,已经发展成一种轻量级的数据交换格式. JavaScript对象的表现形式 ...

  8. 随笔分类 - java高级特性

    转自:http://www.cnblogs.com/linjiqin/category/282013.html

  9. Gtk基础学习总结(二)

    一.信号.事件 void g_signal_connect(instance,char* signalName,callback,gpointerobject); //instance:gtk控件 i ...

  10. Python操作Memcached使用Python-memcached模块

    安装Python的memcached驱动模块 pip install python-memcached 简单的操作示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #!/ ...