zoukankan      html  css  js  c++  java
  • PostgreSQL 三节点集群故障模拟及恢复

    PostgreSQL 三节点集群故障模拟及恢复

    (postgreSQL9.5.1)

    正常状态:

    10.2.208.10:node1:master

    10.2.208.11:node2:standby1同步

    10.2.208.12:node3:standby2异步

    10.2.208.13:node4:备用机

    故障模拟及恢复

    1 主库故障

    1 停止主库(master)[M]服务[10.2.208.10]

    pg_ctl –D ../data stop –m fast

    2 更改S1的postgresql.conf[10.2.208.11]

    synchronous_standby_names = 'node3'

    3 更改S2 recovery.conf[10.2.208.12]

    primary_conninfo = 'host=node2IP[10.2.208.11] port=6432 user=replica password=replica application_name=node3'

    4 提升S1为新的主库Master

    pg_ctl –D ../data promote[10.2.208.11]

    5 重新启动S2[10.2.208.12] 使S2成为新的同步节点

    pg_ctl –D ../data restart

    6使node4[10.2.208.13]成为异步节点

    mkdir data

    chmod 0700 data

    pg_basebackup -h 10.2.208.11 -P -Fp -x -v -p 6432 -U replica -D /home/replica/data/

    7 node4[10.2.208.13]recovery文件处理

    mv recovery.done recovery.conf

    primary_conninfo = 'host=10.2.208.11 port=6432 user=replica password=replica'

    8 node4[10.2.208.13]postgresql.conf文件处理

    #synchronous_standby_names = ' '

    9 启动node4[10.2.208.13]

    pg_ctl -D ../data/ start

    2备库1故障

    1停止standby1服务

    pg_ctl -D ../data/ stop -m fast

    2更改node1[10.2.208.10]postgresql.conf

    synchronous_standby_names = 'node3'

    3更改S2[10.2.208.12]recovery.conf文件

    primary_conninfo = 'host=10.2.208.10 port=6432 user=replica password=replica application_name=node3'

    4重启主库Master

    pg_ctl –D ../data restart

    5重启S2成为同步节点

    6 node4[10.2.208.13]成为异步节点

    pg_basebackup -h 10.2.208.10 -P -Fp -x -v -p 6432 -U replica -D /home/replica/data/

    mv recovery.done recovery.conf

    primary_conninfo = 'host=10.2.208.10 port=6432 user=replica password=replica '

    postgresql.conf文件

    #synchronous_standby_names = ' '

    7启动node4

    pg_ctl –D ../data start

    3 备库2故障

    1 停止备库2 node3[10.2.208.12]的服务

    pg_ctl –D ../data stop –m fast

    2 node4[10.2.208.13]成为异步节点

    pg_basebackup -h 10.2.208.10 -P -Fp -x -v -p 6432 -U replica -D /home/replica/data/

    mv recovery.done recovery.conf

    primary_conninfo = 'host=10.2.208.10 port=6432 user=replica password=replica '

    postgresql.conf文件

    #synchronous_standby_names = ' '

    3启动node4

    pg_ctl –D ../data start

  • 相关阅读:
    Google I/O 官方应用中的动效设计
    浪院长 | spark streaming的使用心得
    Kubernetes 1.12公布:Kubelet TLS Bootstrap与Azure虚拟机规模集(VMSS)迎来通用版本号
    安卓自己定义View进阶-Path基本操作
    2014编程之美初赛第二场
    2015年,即将结束
    查看JVM运行时参数
    使用ThreadPoolExecutor线程池实现并发操作并返回结果
    mysql数据库将查询的多条结果的某些字段合并为一个字段处理
    mysql数据库使用mybatis新增操作返回自增主键的值
  • 原文地址:https://www.cnblogs.com/songyuejie/p/5258945.html
Copyright © 2011-2022 走看看