master:10.0.1.114

slaver:10.0.1.116

一、yum安装https://blog.csdn.net/weixin_41048363/article/details/80310285

二、主从配置

1、主数据配置(10.0.1.114)

1.1  初始化

/usr/pgsql-9.6/bin/postgresql96-setup initdb

  

1.2 启动postgresql

systemctl start postgresql-9.6

  

1.3 切换到postgres用户(安装好生成默认的用户)

[root@steven1 data]# su - postgres
上一次登录:三 5月 16 09:19:49 UTC 2018pts/0 上
-bash-4.2$
-bash-4.2$ psql 进入数据库 postgres=#

  

1.4 创建账号并授权

postgres=# create role 账户名 login replication encrypted password '密码';

  

1.5  修改/var/lib/pgsql/9.6/data/pg_hba.conf配置文件.

# IPv4 local connections:
host all all 127.0.0.1/32 ident
# 添加如下内容
host replication repl 10.0.1.0/24 md5
host all repl 10.0.1.1/24 trust

  

1.6 修改postgresql.conf

-bash-4.2$ vim postgresql.conf
listen_addresses = '10.0.1.114'
wal_level = hot_standby #热备模式
max_wal_senders= 6 #可以设置最多几个流复制链接,差不多有几个从,就设置多少
wal_keep_segments = 10240 #重要配置
wal_send_timeout = 60s
max_connections = 512 #从库的 max_connections要大于主库
archive_mode = on #允许归档
archive_command = 'cp %p /url/path%f' #根据实际情况设置

  

三、从数据库配置

1、切换到postgres

[root@localhost data]# su - postgres

  

2、拷贝master配置相关文件。

-bash-4.2$ rm -rf /var/lib/pgsql/9.6/data/*
-bash-4.2$ pg_basebackup -h 10.0.1.114 -U repl -D /var/lib/pgsql/9.6/data -X stream -P
-bash-4.2$ cp /usr/pgsql-9.6/share/recovery.conf.sample /var/lib/pgsql/9.6/data/recovery.conf

  

3、修改recovery.conf文件

standby_mode = on
primary_conninfo = 'host=10.0.1.114 port=5432 user=master创建的用户名 password='密码'
trigger_file = '/var/lib/pgsql/9.6/data/trigger.kenyon' #主从切换时后的触发文件
recovery_target_timeline = 'latest'

  

4、修改postgresql.conf文件

listen_addresses = 10.0.1.116
wal_level = hot_standby
max_connections = 1000 #一般从的最大链接要大于主的。
hot_standby = on #说明这台机器不仅仅用于数据归档,也用于查询
max_standby_streaming_delay = 30s
wal_receiver_status_interval = 10s #多久向主报告一次从的状态。
hot_standby_feedback = on #如果有错误的数据复制,是否向主进行范例

  

四、检测

1、在master数据库中测试

postgres=# select client_addr,sync_state from pg_stat_replication;
client_addr | sync_state
-------------+------------
10.0.1.116 | async
(1 row)

  

2、在master数据库中创建test数据库

postgres=# create database test;
CREATE DATABASE
postgres=# \l // 查看当前所有数据库
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
test | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
(4 rows) postgres=#

  

3、在从数据库中查看数据库是否同步。

postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
test | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
(4 rows)

  

参考:https://www.linuxidc.com/Linux/2017-03/142145.htm

postgresql主从配置的更多相关文章

  1. postgresql 主从配置

    安装postgresql 主从是否一定需要分两台机器,主从必须要同一个版本,不然启动会报错. 3. 配置Master数据库 su – postgres /usr/local/pgsql/bin/pg_ ...

  2. CentOS7 PostgreSQL 主从配置( 二)

    同步流复制配置PostgreSql的流复制是异步的,缺点是Standby上的数据落后于主库上的数据,如果使用Hot Standby做读写分离,就会存在数据一致性的问题.PostgreSql9.1版本后 ...

  3. CentOS7 PostgreSQL 主从配置( 一)

    主库配置 pg_hba.conf host replication all 10.2.0.0/0 trust postgresql.conf listen_addresses = '*' max_wa ...

  4. CentOS7 PostgreSQL 主从配置( 三)

    postgres 主备切换 主备查看 方法 ps -ef | grep wal (主库 sender)postgres 27873 27864 0 5月06 ? 00:00:10 postgres: ...

  5. postgresql pgsql最新版安装指南及数据存储路径更改及主从配置

    postgresql pgsql最新版安装指南及数据存储路径更改及主从配置 安装指南 首先在apt的list添加你当前系统版本对应的apt列表 目前官网有16.04,14.04,12.04 分别对应下 ...

  6. postgresql主从同步配置

    前言 不久前,公司的一台物理机器硬件坏了,导致运行在其上的虚拟机都挂了.很不凑巧的是,我负责的那台虚拟机的系统盘坏了(ps:感觉老天在玩我),导致里面的数据永远的离我而去(ps:当时我的内心是崩溃的) ...

  7. 再不了解PostgreSQL,你就晚了之PostgreSQL主从流复制部署

    前言 在MySQL被收购之后,虽然有其替代品为: MariaDB,但是总感觉心里有点膈应.大家发现了另一款开源的数据库: PostgreSQL. 虽然centos自带版本9.2也可以用,但是最近的几次 ...

  8. PostgreSQL9.6主从配置

    参考文档: 备机日志传送:https://www.postgresql.org/docs/9.6/static/warm-standby.html 英文文档:https://www.postgresq ...

  9. redis原理及集群主从配置

    一.简介 存储系统背景 存储系统有三类: RDBMS oracle,dh2,postgresql,mysql,sql server NoSQL: KV NoSQL:redis,memcached 列式 ...

随机推荐

  1. Html5与Css3知识点拾遗(二)

    页面title 选择能简要概括文档内容的文字作为title文字,title核心内容放在前60个字符 分级标题 1.创建分级标题时,避免跳过级别,如h3直接跳到h5,但允许从低级别跳到高级别. 2.不用 ...

  2. 【git】git简单使用教程

    git的简单使用教程: 1.安装git bash客户端 2.打开git bash,cd到需要存储代码的路径下, 执行:git clone -b deploy ssh://git@gitlab.xxxx ...

  3. struts2马士兵笔记

    Struts2 学习笔记 目录 01 Struts2-Action 一.         Struts作用: 二.         搭建Struts2的运行环境: 三.         Namespa ...

  4. Dinic算法——重述

        赛前赛后算是第三次接触Dinic算法了,每一次接触都能有种很好的感觉,直男的我没法描述~~ 已经比较懂得DInic的基本算法思想了 首先是bfs进行进行分层处理,然后dfs寻找分层后的最大流, ...

  5. js-选项卡套选项卡

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  6. [LISP] LISP Collections

    lispbox: https://common-lisp.net/project/lispbox/ SBCL: http://sbcl.org/ <Common Lisp in practica ...

  7. poj 2531 搜索剪枝

    Network Saboteur Time Limit: 2000 MS Memory Limit: 65536 KB 64-bit integer IO format: %I64d , %I64u ...

  8. mysql数据导入导出方法总结

    MySQL数据备份还原方式总结: 一.将数据导入到指定的数据库 第一种导入方式: (linux下和Windows 下语法是一样的,只是路径的书写方式不同而已) 1.创建一个空数据库 2.进入MySQL ...

  9. JS学习笔记2_面向对象

    1.对象的定义 ECMAScript中,对象是一个无序属性集,这里的“属性”可以是基本值.对象或者函数 2.数据属性与访问器属性 数据属性即有值的属性,可以设置属性只读.不可删除.不可枚举等等 访问器 ...

  10. mysql-5.7安装、配置

    1.进入到要存放安装包的位置 cd /home/lnmp 2.查看系统中是否已安装 MySQL 服务,以下提供两种方式: rpm -qa | grep mysql yum list installed ...