postgresql搭建从库
master  10.40.196.27
slave   10.40.55.69
需求:master和slave作为主从流复制,当master宕机后,slave切换为新主继续服务;然而当master恢复故障后,作为从重新加入主从流复制。
 
master
1.创建复制用户
create user rep replication password 'rep';
2.设置pg_hba.conf
-bash-4.1$ cat pg_hba.conf|grep repli|grep -v '#'
host    replication     rep             10.40.55.69/32            md5
3.设置主库postgresql.conf
#add by b
wal_level='hot_standby'
archive_mode = on
archive_command = 'ssh 10.40.55.201 test ! -f /backup2/pgdata/digoal/19627/data04/pg93archdir/%f && scp %p
10.40.55.201:/backup2/pgdata/digoal/19627/data04/pg93archdir/%f'
#archive_command = 'archive.sh %p %f'
max_worker_processes = 16
max_wal_senders = 8
wal_keep_segments = 32

4.重启数据库
pg_ctl restart -D /data/pgsql/data
 
slave配置
1.创建数据目录
[postgres@db-hx-55-69 ~]$ echo $PGDATA
/opt/niu/postgresql/data
mkdir -p /opt/niu/postgresql/data;cd /opt/niu/postgresql
chown -R postgres.postgres data
chmod 700 data
cd $PGDATA   (/opt/niu/postgresql/data)
rm -rf *
master 196.27
-bash-4.1$ cd $PGDATA/pg_tblspc/
-bash-4.1$ ll
total 0
lrwxrwxrwx 1 postgres postgres 25 Jan 12 13:34 1031792 -> /opt/pgsql/bi_erp_itf_tbs
lrwxrwxrwx 1 postgres postgres 14 May 20  2016 16385 -> /opt/pgsql/tbs
[root@db-hx-55-69 pgsql]# pwd
/opt/pgsql
[root@db-hx-55-69 pgsql]# rm -rf *

2.使用pg_basebackup生成基础备份,放到slave上数据目录下
[postgres@db-hx-55-69 ~]$ pg_basebackup -D /opt/niu/postgresql/data -Fp -Xs -v -P -h 10.40.196.27 -p 5432 -U rep
Password: rep
3.配置recovery.conf
vi $PGDATA/recovery.conf
standby_mode = on
trigger_file = '/opt/niu/postgresql/pg.trigger'
primary_conninfo = 'host=10.40.196.27 port=5432 user=rep password=rep'

4.启动pgsql
$ pg_ctl start -D /opt/niu/postgresql/data

测试流复制
1.查看主库
主库$ ps -ef |grep postgres|grep sender |grep -v grep
postgres  89707  65237  0 00:15 ?        00:00:00 postgres: wal sender process rep 10.40.55.69(26717) streaming 9F1/51EE4FB0
确认主库中进程有“postgres: wal sender process”

2.查看从库
$ ps -ef |grep postgres |grep -v grep |grep receiver
postgres 14055 14013  1 00:15 ?        00:00:02 postgres: wal receiver process   streaming 9F1/5423E000  
确定备库进程中有”postgres: wal receiver process”

4.查看主备同步状态
postgres=# select * from pg_stat_replication;
  pid  |
usesysid | usename | application_name | client_addr | client_hostname |
client_port |         backend_start         | backend_xmin |   
state   | sent_location
| write_location | flush_location | replay_location | sync_priority | sync_state
-------+----------+---------+------------------+-------------+-----------------+-------------+-------------------------------+--------------
+-----------+---------------
+----------------+----------------+-----------------+---------------+------------
89707
|   988512 | rep     | walreceiver      | 10.40.55.69
|                 |       26717 | 2018-03-10 00:15:14.610005+08
|              |
streaming | 9F1/6073C458  
| 9F1/6073C458   | 9F1/6073C458   | 9F1/6073BFE0    |             0 | async
(1 row)
字段state显示的同步状态有:startup(连接中)、catchup(同步中)、streaming(同步);
字段sync_state显示的模式有:async(异步)、sync(同步)、potential(虽然现在是异步模式,但是有可能升级到同步模式)
 
[postgres@db-hx-55-69 pgsql]$ psql
psql: FATAL:  the database system is starting up

postgresql搭建从库的更多相关文章

  1. 主库的wal日志已经被归档或异常丢失如何搭建从库

      关键字:wal日志归档  搭建从库 restore_command master 194.1 slave 194.4 wal归档目录 /backup/pgsql/pg_arch/ xlog目录 / ...

  2. nexus3.14.0版本linux环境安装、启动、搭建私库

    本文介绍的是nexus3.14.0版本在linux环境下安装.启动.搭建私库. nexus3以上的版本太新了,网上很少介绍安装细节的.据了解和2.X版本有所不同了. 1.前提 linux机器上需先安装 ...

  3. mysql快速搭建从库

    基于mysqldump快速搭建从库 https://blog.csdn.net/leshami/article/details/44994329 使用xtrbackup克隆从库 https://blo ...

  4. XtraBackup 搭建从库的一般步骤及 XtraBackup 8.0 的注意事项

    搭建从库,本质上需要的只是一个一致性备份集及这个备份集对应的位置点信息.之前介绍的几个备份工具(MySQL中如何选择合适的备份策略和备份工具)均可满足. 这里,我们重点看看如何基于 XtraBacku ...

  5. Vitepress搭建组件库文档(上)—— 基本配置

    在 vite 出现以前,vuepress 是搭建组件库文档不错的工具,支持以 Markdown 方式编写文档.伴随着 vite 的发展,vitepress 已经到了 1.0.0-alpha.22 版本 ...

  6. Vitepress搭建组件库文档(下)—— 组件 Demo

    上文 <Vitepress搭建组件库文档(上)-- 基本配置>已经讨论了 vitepress 搭建组件库文档的基本配置,包括站点 Logo.名称.首页 home 布局.顶部导航.左侧导航等 ...

  7. Vue3 企业级优雅实战 - 组件库框架 - 3 搭建组件库开发环境

    前文已经初始化了 workspace-root,从本文开始就需要依次搭建组件库.example.文档.cli.本文内容是搭建 组件库的开发环境. 1 packages 目录 前面在项目根目录下创建了 ...

  8. PostgreSQL数据库中跨库访问解决方案

    PostgreSQL跨库访问有3种方法:Schema,dblink,postgres_fdw. 方法A:在PG上建立不同SCHEMA,将数据和存储过程分别放到不同的schema上,经过权限管理后进行访 ...

  9. mysql MHA扩展haproxy搭建从库只读负载均衡

    [环境介绍] 系统环境:Red Hat Enterprise Linux 7 + 5.7.18 + MHA version 0.57 MHA架构中从库之间的负责均衡可选择mysql_route& ...

随机推荐

  1. XCode 安装 Alcatraz包管理器失败的处理

    按照官方的文档(https://github.com/supermarin/Alcatraz),先卸载再重新安装即可.步骤如下: 1. 退出Xcode 2. rm -rf ~/Library/Appl ...

  2. Kubernetes 概念整理

    注:以下大部分内容来自网上摘录,以便后期查阅. Kubernetes (通常称为 K8s) 是用于自动部署.扩展和管理容器化(containerized)应用程序的开源系统,是 Google 内部工具 ...

  3. JavaScript 一个进行枚举选择的jquery插件(仿easyui风格)

    某次做项目要实现一个功能: 按星期选择一个连续的时间范围 比如:周一到周五,周六到周日 或 周六到周三 聪明的朋友马上想出办法:用两个选项为周一到周日的下拉列表实现,对 那样可以,但是我觉得不够友好, ...

  4. java线程间通信1--简单实例

    线程通信 一.线程间通信的条件 1.两个以上的线程访问同一块内存 2.线程同步,关键字 synchronized 二.线程间通信主要涉及的方法 wait(); ----> 用于阻塞进程 noti ...

  5. nyoj137 取石子(三) 楼教主男人八题之一

    思路:一堆时,N态.两堆时,当两堆数量相同,P态,不同为N态.三堆时,先手可以变成两堆一样的,必胜N态. 此时可以总结规律:堆数为偶数可能且石子数都是两两相同的,为P态.分析四堆时,当四堆中两两数量一 ...

  6. MongoDB,子查询

    //1.从sub(订单明细)对订单号分组,查询最多子订单的单号一条数据,重命名orderNo字段为num//2.根据这个sub.num(从结果集里获取第一条结果),查询main(主档表) db.mai ...

  7. Frequent Pattern (FP Growth算法)

    FP树构造 FP Growth算法利用了巧妙的数据结构,大大降低了Aproir挖掘算法的代价,他不需要不断得生成候选项目队列和不断得扫描整个数据库进行比对.为了达 到这样的效果,它采用了一种简洁的数据 ...

  8. java 集合框架(十五)Deque

    一.概述 Deque是Queue的子接口,我们知道Queue是一种队列形式,而Deque则是双向队列,它支持从两个端点方向检索和插入元素,因此Deque既可以支持LIFO形式也可以支持LIFO形式.D ...

  9. for、for in和while以及do while

    for循环:一般用在已知判断条件的循环; for(变量初始化;循环条件判断;循环后的执行){ 代码块 } //变量初始化可以省略,但是分号不能省.有多个的话用逗号隔开 //循环条件判断是true还是f ...

  10. Android的OkHttp开源框架的使用方法

    前段时间研究了下Android里面非常火爆的网络请求库OkHttp,这篇文章主要来介绍下OkHttp的常用请求的使用方式,后面一篇文章会介绍本人基于OkHttp封装的一个操作更简单.更适用于项目的网络 ...