PostgreSQL手动主从切换
主从切换操作:
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手动主从切换的更多相关文章
- mongodb主从备份 和 手动主从切换
环境: 主机A:172.16.160.91 主机B:172.16.160.92 配置主机A [root@master zhxf]# cat docker-compose.yml version: '3 ...
- Ubuntu PostgreSql主从切换
主机:192.168.100.70 从机:192.168.100.71 通用配置(即主从都要配置) 修改/etc/postgresql/10/main/pg_hba.conf host all all ...
- PostgreSQL高可用集群方案收集/主从切换/一主多从(待实践)
对于业内来说,基本都在围绕主从切换的高可用方案: http://www.10tiao.com/html/175/201509/210974337/1.html https://www.jianshu. ...
- Mycat读写分离、主从切换、分库分表的操作记录
系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等都是系统发展迟早会遇到的技术问题问题.Mycat是一 ...
- mycat(读写分离、负载均衡、主从切换)
博主本人平和谦逊,热爱学习,读者阅读过程中发现错误的地方,请帮忙指出,感激不尽 1.环境准备 1.1新增两台虚拟机 mycat01:192.168.247.81 mycat02:192.168.247 ...
- Redis哨兵模式(sentinel)学习总结及部署记录(主从复制、读写分离、主从切换)
Redis的集群方案大致有三种:1)redis cluster集群方案:2)master/slave主从方案:3)哨兵模式来进行主从替换以及故障恢复. 一.sentinel哨兵模式介绍Sentinel ...
- 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 ...
- sentinel主从切换技术
主从切换技术的方法是: 当主服务器宕机后,需要手动把一台从服务器切换为主服务器, 这就需要人工干预,费事费力,还会造成一段时间内服务不可用. 这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式. 一 ...
- linux下nginx结合keepalived实现主从切换的配置
linux下nginx结合keepalived实现主从切换的配置 解决方法: 实现一个主nginx宕机,请求转到另一个nginx中. 1.确保两台nginx已启动,假如端口分别是192.168.0 ...
随机推荐
- Centos7使用yum安装程序软件时提示未找到安装包解决方法
查找程序软件源,以sshd为例,假设sshd安装包无法找到,那么可以通过以下方法解决 yum provides sshd 然后我们就可以安装*.X86_64的程序软件源 例如yum install o ...
- expect脚本实例
#!/usr/bin/expect //必须写这句,表明使用expect,有些系统可能没有自带,使用yum install expect -y 安装 spawn ssh 192.168.2.128 / ...
- Java中的权限学习笔记
1.Java中的权限有两个层次,一个是类这一层,另一个是类成员那一层. 类这一层: public class可以在本包内被访问,也可以在包外被访问.而没有被public修饰的class只能在本包内被调 ...
- gaia 开源多语言的pipeline 平台
gaia 是一个支持goalng.java.c++.python,nodejs (还在开发中)的pipeline 平台,我们可以方便的进行pipeline构建的 添加,同时也可以做为sdk 在我们的项 ...
- 常用gui软件使用技巧
xmind powerdesinger notepad++ firefox office ========================================= win10企业版安装 xm ...
- Debug outlook add-in (office.js) 小技巧
这几天在使用office.js 做outlook add-in的时候出现了一个问题: 不知道运行时去调试. 这里给大家介绍两个调试add-in 的方法. office365 其他软件 add-ins ...
- Java IO的一些列子
Write()方法写入文件 public static void main(String[] args){ try{ BufferedWriter out = new BufferedWriter(n ...
- 自动化部署--shell脚本--2
node1和node2都装apache [root@linux-node1 ~]# yum install httpd -y Loaded plugins: fastestmirror Loadi ...
- Java基础语法 第1节 Java语言发展和JDK安装
一.Java发展历程 1995年5月23日,Java语言诞生: 1996年1月,第一个JDK-JDK1.0诞生: 1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入Java技术: 199 ...
- Java NIO Reactor模式
一.NIO介绍: NIO模型: 1.Channel为连接通道,相当于一个客户端与服务器的一个连接,Selector为通道管理器,将Channel注册到Selector上,Selector管理着这些Ch ...