主备查询

主备不会自动切换(即需要实现线上环境主数据库宕掉之后,从数据库能够自动切换为主数据库,需要借用第三方软件,例如heartbeat等)

(1)如何查看是primary还是standby

  •   方法1:查看进程

  主机 sender

  [wln@localhost data]$ ps -ef | grep wal
  wln      10421 10416  0 07:52 ?        00:00:00 postgres: wal writer process             
  wln      10691 10416  0 08:04 ?        00:00:00 postgres: wal sender process repluser 127.0.0.1(59226) streaming 0/6011BAC
  wln      10702  8927  0 08:05 pts/2    00:00:00 grep wal

  备机 receiver

  [wln@localhost data]$ ps -ef | grep wal
  wln      10421 10416  0 07:52 ?        00:00:00 postgres: wal writer process             
  wln      10690 10685  3 08:04 ?        00:00:03 postgres: wal receiver process   streaming 0/6011BAC
  wln      10702  8927  0 08:05 pts/2    00:00:00 grep wal

  •   方法2:

  主机:

  [wln@localhost data]$ pg_controldata | grep Database  
  Database system identifier:           6032728846531166188
  Database cluster state:               in production
  Database block size:                  8192

  备机:

  [wln@localhost standby]$ pg_controldata | grep Database
  Database system identifier:           6032728846531166188
  Database cluster state:               in archive recovery
  Database block size:                  8192

主备切换(方式1)

(1)备机切换为主机

  •   将主机停掉

  [wln@localhost data]$ pg_ctl stop
  waiting for server to shut down.... done
  server stopped

  •   在备机PGDATA对应目录下生成recovery.conf文件中指定的文件trigger_file = '/pgdata/9.1/data2/trigger_activestb'  (此时备机正常运行状态)

  touch  /pgdata/9.1/data2/trigger_activestb

  会看到 recovery.conf 文件变为 recovery.done

  •   查看原来备机日志:

  LOG:  trigger file found: /home/wln/standby/trigger_activestb
  LOG:  redo done at 0/6011C40
  LOG:  last completed transaction was at log time 2014-07-06 08:05:40.152147+08
  LOG:  selected new timeline ID: 2
  LOG:  archive recovery complete
  LOG:  database system is ready to accept connections
  LOG:  autovacuum launcher started

  •   登录原来的备机

  [postgres@postgres ~]$ psql  
  psql (9.1.0)
  Type "help" for help.

  You are now connected to database "postgres" as user "postgres".
  postgres=# SHOW transaction_read_only
  postgres-# ;
  transaction_read_only
  -----------------------
  off
  (1 row)

  可以看出现在原备机具有读写功能。即主备切换成功

  postgres=# \d
       List of relations
   Schema | Name | Type  | Owner 
  --------+------+-------+-------
   public | t1   | table | wln
  (1 row)

  postgres=# create table t2(id int);
  CREATE TABLE

4、主备切换(方式2:实践过程中采用的方式)

  备机中recovery.conf中设置为:

  standby_mode = on

  recovery_target_timeline = 'latest'

  primary_conninfo = 'host=localhost port=5433 user=repluser password=password'

  #trigger_file = '/home/wln/standby/trigger_activestb'  #这个注释掉

  备机升为主机方式为:pg_ctl promote -D standbyPath

  会看到recovery.conf过几秒后变为recovery.done 表示升级为主机成功。

Postgres主备切换的更多相关文章

  1. 在Azure云上实现postgres主备切换

    以下是工作上实现postgres主备切换功能所用到的代码和步骤,中间走了不少弯路,在此记录下.所用到的操作系统为centos 7.5,安装了两台服务器,hostname为VM7的为Master,VM8 ...

  2. Spark系列(五)Master主备切换机制

    Spark Master主备切换主要有两种机制,之中是基于文件系统,一种是基于Zookeeper.基于文件系统的主备切换机制需要在Active Master挂掉后手动切换到Standby Master ...

  3. Nginx+Keepalived主备切换(包含nginx服务停止)

    原文地址:http://blog.sina.com.cn/s/blog_79ac6aa80101bmed.html Nginx+Keepalived主备切换(包含nginx服务停止) 环境: VM中4 ...

  4. 在Windows Azure上配置VM主备切换(1)——Linux篇

    对任何一个上线系统来说,高可用设计是不可或缺的一个环节,这样才可以确保应用可以持续.稳定的运行,而不是频繁的掉线.停机.高可用设计的核心思路很简单,就是消除一切单点故障,将单点链路或者节点升级为多点. ...

  5. (摘)DataGuard物理standby管理 - 主备切换

    DataGuard物理standby管理 - 主备切换 Dataguard的切换分为两种,switchover和failover. switchover一般用于数据库或硬件升级,这时只需要较短时间中断 ...

  6. 测试redis+keepalived实现简单的主备切换【转载】

    转自: 测试redis+keepalived实现简单的主备切换 - Try My Best 尽力而为 - ITeye技术网站http://raising.iteye.com/blog/2311757 ...

  7. Redis安装,主从,主备切换

    网络环境: 主:10.187.120.5 从:10.187.69.58 从:10.187.69.59 一.安装 mv redis-2.8.19.tar.gz /export/servers/ cd / ...

  8. MySQL 复制 - 性能与扩展性的基石 4:主备切换

    一旦使用 MySQL 的复制功能,就很大可能会碰到主备切换的情况.也许是为了迭代升级服务器,或者是主库出现问题时,将一台备库转换成主库,或者只是希望重新分配容量.不过出于什么原因,都需要将新主库的信息 ...

  9. Oracle 11.2.0.4.0 Dataguard部署和日常维护(5)-Datauard 主备切换和故障转移篇

    1. dataguard主备切换   1.1. 查看当前主备库是否具备切换条件 on slave select sequence#,first_time,next_time,archived,appl ...

随机推荐

  1. Redis数据类型之散列类型hash

    在redis中用的最多的就是hash和string类型. 问题 假设有User对象以JSON序列化的形式存储到redis中, User对象有id.username.password.age.name等 ...

  2. Git如何解决冲突

    解决冲突 现在我把gitTest中的东西全删了包括那个.git文件. 初始化仓库git init,新建一个a.txt,在里边写个master,执行git add a.txt,然后执行git commi ...

  3. react- 相关

    生命周期方法 组件的生命周期分成三个状态: Mounting:已插入真实 DOM Updating:正在被重新渲染 Unmounting:已移出真实 DOM React 为每个状态都提供了两种处理函数 ...

  4. ARM平台指令虚拟化初探

    0x00:什么是代码虚拟化? 虚拟机保护是这几年比较流行的软件保护技术.这个词源于俄罗斯的著名软件保护软件“VmProtect”,以此为开端引起了软件保护壳领域的革命,各大软件保护壳都将虚拟机保护这一 ...

  5. hibernate 模拟实现和What is and Why O/R Mapping

    What is and Why O/R Mapping What is : 用面向对象的方式调用api,类库帮我们翻译成面向关系的方式. Why: 1.JDBC操作数据库很繁琐2.Sql 语句编写并不 ...

  6. 【转】android四大组件--ContentProvider详解

    一.相关ContentProvider概念解析: 1.ContentProvider简介在Android官方指出的Android的数据存储方式总共有五种,分别是:Shared Preferences. ...

  7. 2018.9.3 CEP课程总结

    什么是CEP课程? 职业生涯规划课程 蓝桥介绍 立人达人 全人教育 人文 重视人 尊重人 关心人 爱护人 人才 人格 简历的制作 找工作的流程? 1.简历的准备------>投发简历(自己投.老 ...

  8. Python-三元运算符和lambda表达式

    一.三元运算符 #当满足条件1时,res=值1:否则res=值2 res = 值1 if 条件1 else 值2 举例说明: res=10 #简单的if else语句 if abs(res)>0 ...

  9. PowerDesigner 图表导出Excel格式

    快捷方式打开运行界面:ctrl+shift+X '*************************************************************************** ...

  10. java基础必备单词讲解 day two

    variable 变量 count 统计 sum 总数 salary 薪水 Scanner 接收 import 导入 eclipse 日食 control 控制 shift 改变 alt 替换键 ha ...