主从切换操作:

1》主库宕机或者测试主备切换情况下停掉主库:systemctl stop postgres
从库会报日志错误信息:
[root@db02 /]# cd /var/postgresql/logfile/
[root@db02 logfile]# ll
total 4
-rw-rw-r--. 1 postgres postgres 3074 Sep 29 16:02 serverlog
[root@db02 logfile]# tail -f serverlog
TCP/IP connections on port 5432?
2018-09-29 08:02:11.873 GMT [10205] FATAL: could not connect to the primary server: could not connect to server: Connection refused
Is the server running on host "172.17.0.3" and accepting
TCP/IP connections on port 5432?

2》原从库操作(原主库宕机情况下将其作为主库操作):
在之前备机上的recovery.conf中配置trigger_file='/var/postgresql/logfile/trigger.unl'
touch /var/postgresql/logfile/trigger.unl
修改 pg_hba.conf:
增加
host replication replica 0.0.0.0/0 md5
重启从库: systemctl restart postgresql
查看是否切换成功:/usr/pgsql9.3.4/bin/pg_controldata -》Database cluster state: in production 表示是主库
recovery.conf文件名字变成了recovery.done

3》原主库操作(恢复原主库为从库):
cp /usr/local/src/postgresql-10.5/share/recovery.conf.sample /var/postgresql/data/recovery.conf
修改recovery.conf:
standby_mode = on
primary_conninfo = 'host=172.17.0.4 port=5432 user=replica password=replica'
recovery_target_timeline = 'latest'
修改postgresql.conf文件:
hot_standby = on
启动原主库(当前从库):systemctl restart postgresql
4》检查主从是否切换成功:
在新的主库上执行:
postgres=# select * from pg_stat_replication;
pid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | backend_xmin | state | sent_lsn | write_lsn | flush_lsn |
replay_lsn | write_lag | flush_lag | replay_lag | sync_priority | sync_state
-------+----------+---------+------------------+-------------+-----------------+-------------+-------------------------------+--------------+-----------+-----------+-----------+-----------+
------------+-----------+-----------+------------+---------------+------------
10361 | 16385 | replica | walreceiver | 172.17.0.3 | | 50896 | 2018-09-29 08:24:28.192643+00 | | streaming | 0/70181D8 | 0/70181D8 | 0/70181D8 |
0/70181D8 | | | | 0 | async
(1 row)

postgres=#

表明切换成功

PostgreSQL手动主从切换的更多相关文章

  1. mongodb主从备份 和 手动主从切换

    环境: 主机A:172.16.160.91 主机B:172.16.160.92 配置主机A [root@master zhxf]# cat docker-compose.yml version: '3 ...

  2. Ubuntu PostgreSql主从切换

    主机:192.168.100.70 从机:192.168.100.71 通用配置(即主从都要配置) 修改/etc/postgresql/10/main/pg_hba.conf host all all ...

  3. PostgreSQL高可用集群方案收集/主从切换/一主多从(待实践)

    对于业内来说,基本都在围绕主从切换的高可用方案: http://www.10tiao.com/html/175/201509/210974337/1.html https://www.jianshu. ...

  4. Mycat读写分离、主从切换、分库分表的操作记录

    系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等都是系统发展迟早会遇到的技术问题问题.Mycat是一 ...

  5. mycat(读写分离、负载均衡、主从切换)

    博主本人平和谦逊,热爱学习,读者阅读过程中发现错误的地方,请帮忙指出,感激不尽 1.环境准备 1.1新增两台虚拟机 mycat01:192.168.247.81 mycat02:192.168.247 ...

  6. Redis哨兵模式(sentinel)学习总结及部署记录(主从复制、读写分离、主从切换)

    Redis的集群方案大致有三种:1)redis cluster集群方案:2)master/slave主从方案:3)哨兵模式来进行主从替换以及故障恢复. 一.sentinel哨兵模式介绍Sentinel ...

  7. postgresql 主从复制并切换

    1 环境 192.168.19.145 Kylin 3.3 mysqlhq  9.5.2  psql_master192.168.19.227 Kylin 3.3 mysql3    9.5.2  p ...

  8. sentinel主从切换技术

    主从切换技术的方法是: 当主服务器宕机后,需要手动把一台从服务器切换为主服务器, 这就需要人工干预,费事费力,还会造成一段时间内服务不可用. 这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式. 一 ...

  9. linux下nginx结合keepalived实现主从切换的配置

    linux下nginx结合keepalived实现主从切换的配置   解决方法: 实现一个主nginx宕机,请求转到另一个nginx中. 1.确保两台nginx已启动,假如端口分别是192.168.0 ...

随机推荐

  1. pack 方便的npm 构建工具

      一般我们都是使用nodejs 自身的npm 或者yarn进行 npm 包的开发(包括构建),但是随着强类型的开发模式 在实际web 的开发中越来越重要,大家一般都会选择使用typescript 等 ...

  2. oracle参数文件与启动过程

    oracle随系统启动而启动 cs65-64桌面版orcle-11.2.0.4 启动监听器,后台进程,OEM. 注意: 如果只做一和三,只能启动后台进程,监听器不启动,如果只做二和三,只能启动监听器, ...

  3. Day 35数据库(Day1)

    创建表. create table student( id int not null auto_increment PRIMARY key, name archar(250) not null, ag ...

  4. openstack--2--控制节点安装mysql和rabbitmq

    生产中可以把mysql数据库单独安装到一台机器上,这里因为实验机器有限,就把mysql安装到了控制节点 其实openstack每个组件都可以安装到单独的机器上. RabbitMQ介绍 RabbitMQ ...

  5. Java基础语法 第2节 Java语言基本语法

    一.标识符和关键字 1.标识符 1)java中标识符用来为程序的白能量.常量.方法.类.接口和包名命名,标识符由字母.数字.下划线.美元符号组成,且第一个字符不能是数字: 2)标志符命名规则:见名知意 ...

  6. babel-loader和webpack UglifyJS一起使用时console的问题

    一起使用babel-loader和webpack UglifyJS时,babel会优先处理一遍代码,编译后的代码才进入webpack进行打包和优化操作. 出处:https://www.tangshua ...

  7. taro refs引用

    创建 Refs Taro 支持使用字符串和函数两种方式创建 Ref: 使用字符串创建 ref 通过函数创建 ref(推荐) 你也可以通过传递一个函数创建 ref, 在函数中被引用的组件会作为函数的第一 ...

  8. laravel中resource资源路由方法

    新增的 resource 方法将遵从 RESTful 架构为用户资源生成路由.该方法接收两个参数,第一个参数为资源名称,第二个参数为控制器名称. Route::resource('users', 'U ...

  9. Iris花逻辑回归与实现

    Iris花的分类是经典的逻辑回归的代表:但是其代码中包含了大量的python库的核心处理模式,这篇文章就是剖析python代码的文章. #取用下标为2,3的两个feture,分别是花的宽度和长度: # ...

  10. Jmeter录制脚本过程及Could not create script recorder报错、您的连接不是私密连接报错

    转载自    https://www.cnblogs.com/wwho/p/7173172.html Jmeter录制脚本过程及Could not create script recorder报错.您 ...