主库配置

pg_hba.conf

host replication all 10.2.0.0/0 trust

postgresql.conf

listen_addresses = '*'
max_wal_senders =
wal_level = hot_standby
wal_keep_segments =

重启主库

从库配置

安装
使用yum安装 (找源 http://yum.postgresql.org/)

yum install https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
yum install postgresql95-server postgresql95-contrib

生成基础备份(主数据库IP 10.2.0.14)

pg_basebackup -h 10.2.0.14 -U postgres -F p -P -x -R -D /var/lib/pgsql/9.5/data/ -l postgresbackup20160506
postgres 不在有参数 -x
说明 pg_log, pg_xlog, pg_clog目录分别重命名为log, pg_wal, pg_xact。

pg_basebackup支持两种全量备份的方式,

1.以fetch的方式,先备份数据在备份日志

2.以stream的方式,并行的备份数据和日志

pg_basebackup对于全量备份的数据和日志,提供了串行备份和并行备份的方式。fetch模式也就是串行备份需要保证在备份数据的过程中,备份开始时刻的日志需要一直保存下来, 也就说pg的wal_keep_segments需要足够大去保存日志文件,如果备份数据期间,日志开始时刻的日志已经被移除,那么备份就会失败。而stream模式,也就是并行备份过程中wal_max_sender必须保证不小于2。 而stream模式不支持,将数据和日志以流的方式输出到标准输出。

查看生成文件(注意文件的权限,用户组)

chown postgres:postgres /var/lib/pgsql/9.5/data/ -R
chmod 700 /var/lib/pgsql/9.5/data/
ls -l /var/lib/pgsql/9.5/data -rw-------. 1 postgres postgres 197 5月 6 13:11 backup_label.old
drwx------. 6 postgres postgres 50 5月 6 13:11 base
drwx------. 2 postgres postgres 4096 5月 6 13:38 global
drwx------. 2 postgres postgres 17 5月 6 13:11 pg_clog
drwx------. 2 postgres postgres 6 5月 6 13:11 pg_commit_ts
drwx------. 2 postgres postgres 6 5月 6 13:11 pg_dynshmem
-rw-------. 1 postgres postgres 4214 5月 6 13:11 pg_hba.conf
-rw-------. 1 postgres postgres 1636 5月 6 13:11 pg_ident.conf
drwx------. 2 postgres postgres 56 5月 6 13:11 pg_log
drwx------. 4 postgres postgres 37 5月 6 13:11 pg_logical
drwx------. 4 postgres postgres 34 5月 6 13:11 pg_multixact
drwx------. 2 postgres postgres 17 5月 6 13:38 pg_notify
drwx------. 2 postgres postgres 6 5月 6 13:11 pg_replslot
drwx------. 2 postgres postgres 6 5月 6 13:11 pg_serial
drwx------. 2 postgres postgres 6 5月 6 13:11 pg_snapshots
drwx------. 2 postgres postgres 6 5月 6 13:11 pg_stat
drwx------. 2 postgres postgres 6 5月 6 13:11 pg_stat_tmp
drwx------. 2 postgres postgres 17 5月 6 13:11 pg_subtrans
drwx------. 2 postgres postgres 6 5月 6 13:11 pg_tblspc
drwx------. 2 postgres postgres 6 5月 6 13:11 pg_twophase
-rw-------. 1 postgres postgres 4 5月 6 13:11 PG_VERSION
drwx------. 3 postgres postgres 89 5月 6 13:29 pg_xlog
-rw-------. 1 postgres postgres 88 5月 6 13:11 postgresql.auto.conf
-rw-------. 1 postgres postgres 21756 5月 6 13:38 postgresql.conf
-rw-------. 1 postgres postgres 59 5月 6 13:38 postmaster.opts
-rw-------. 1 postgres postgres 87 5月 6 13:38 postmaster.pid
-rw-r--r--. 1 postgres postgres 140 5月 6 13:35 recovery.conf
cat recovery.conf
standby_mode = 'on'
primary_conninfo = 'user=postgres host=10.2.0.14 port=5432 sslmode=disable sslcompression=1'

修改 postgresql.conf(否则启动失败 错误:postgresql-9.5.service start operation timed out. Terminating.)

hot_standby=on

启动从库

systemctl start postgresql-9.5.service
systemctl enable postgresql-9.5.service

测试

主库操作从库查看同步结果

psql -U postgres
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF- | en_US.UTF- |
template0 | postgres | UTF8 | en_US.UTF- | en_US.UTF- | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF- | en_US.UTF- | =c/postgres +
| | | | | postgres=CTc/postgres
test | postgres | UTF8 | en_US.UTF- | en_US.UTF- |
( rows) postgres=# \c test
est=# create table test01(id int primary key,note text);
CREATE TABLE
test=# \d
List of relations
Schema | Name | Type | Owner
--------+--------+-------+----------
public | test01 | table | postgres
( row) test=# insert into test01 values(,'');
INSERT
test=# insert into test01 values(,'');
INSERT
test=# insert into test01 values(,'');
INSERT
test=# insert into test01 values(,'');
INSERT
test=# \q select * from test01;
id | note
----+------
|
|
|
|

主从同步状况查看

主库
select * from pg_stat_replication ;
-[ RECORD ]----+------------------------------
pid |
usesysid |
usename | postgres
application_name | walreceiver
client_addr | 10.2.0.15
client_hostname |
client_port |
backend_start | -- ::49.191165+
backend_xmin |
state | streaming
sent_lsn | /BA000140
write_lsn | /BA000140
flush_lsn | /BA000140
replay_lsn | /BA000140
write_lag |
flush_lag |
replay_lag |
sync_priority |
sync_state | async

 

从库

select * from pg_stat_wal_receiver ;
-[ RECORD ]---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
pid |
status | streaming
receive_start_lsn | /BA000000
receive_start_tli |
received_lsn | /BA000140
received_tli |
last_msg_send_time | -- ::19.692318+
last_msg_receipt_time | -- ::19.724085+
latest_end_lsn | /BA000140
latest_end_time | -- ::49.194596+
slot_name |
conninfo | user=postgres passfile=/root/.pgpass dbname=replication host=10.2.0.14 port= fallback_application_name=walreceiver sslmode=prefer sslcompression= krbsrvname=postgres target_session_attrs=any

CentOS7 PostgreSQL 主从配置( 一)的更多相关文章

  1. CentOS7 PostgreSQL 主从配置( 二)

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

  2. CentOS7 PostgreSQL 主从配置( 三)

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

  3. Centos7 Openldap主从配置

    转载 https://blog.csdn.net/htvxjl02/article/details/80336788 Centos7 Openldap主从配置 2018年05月16日 15:09:57 ...

  4. postgresql 主从配置

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

  5. postgresql主从配置

    master:10.0.1.114 slaver:10.0.1.116 一.yum安装https://blog.csdn.net/weixin_41048363/article/details/803 ...

  6. centos7 postgresql安装配置

    2021-07-15 1.添加用户 # 添加用户 postgres useradd postgres # 给用户 postgres 设置密码 passwd postgres 2.切换到该用户,下载 p ...

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

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

  8. postgresql主从同步配置

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

  9. CentOS7系统DNS主从配置

    CentOS7系统DNS主从配置:一.DNS服务器正向解析:1.1 基础环境:主机IP          主机名      操作系统    用途192.168.0.110   master      ...

随机推荐

  1. EasyUI 日期选择插件封装成选择到月份的插件

    将普通的日期选择插件封装成选择到月份的插件:                     var nowMonth = new Date();                    var month = ...

  2. cuda8.0环境下安装py-faster-rcnn问题总结

    首先声明,由于之前安装的cuda8.0,在实践中出现各种问题,这里不是指安装环境问题,而是在训练模型是会阻止内核启动,因此让我不得不转战8.0,说出来都是泪啊,配个环境都配了一个礼拜了,所以,请不要轻 ...

  3. 23个mysql查询语句

    一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,<,<>,!=,!>,!<,=>,= ...

  4. 2016WHD.china世界云计算日·北京站即将召开

    WHD.china自进驻中国以来,已在上海.北京成功举办多届,2015年于北京举办的会议更是盛况空前,注册参会者逾800人次,汇聚了国内外众多知名云服务商.IDC商.电子商务企业.电信运营商.ISP等 ...

  5. vim 替换

    摘自: vim替换命令 替換(substitute) :[range]s/pattern/string/[c,e,g,i] range 指的是範圍,1,7 指從第一行至第七行,1,$ 指從第一行至最後 ...

  6. qt 汉化 国际化

    两种方法. 1. 使用 QTextCodec  setcodeforname 设置编码, 然后在程序中对于需要处理的字符使用 fromLocal8Bit . 2. 使用 Linguist. 首先把文件 ...

  7. WildMagic 简单图元(一)

    #include <Wm5WindowApplication3.h> #include <Wm5VisualEffectInstance.h> using namespace ...

  8. 多线程---静态同步函数的锁是class(转载)

    /** 如果同步函数被静态修饰,那么他的锁就是该方法所在类的字节码文件对象 类名.class 静态进内存时,内存中没有本类对象,但是一定有该类对应的字节码文件对象. 该对象就是:类名.class   ...

  9. Openjudge-计算概论(A)-简单算术表达式求值

    描述: 两位正整数的简单算术运算(只考虑整数运算),算术运算为: +,加法运算:-,减法运算:*,乘法运算:/,整除运算:%,取余运算. 算术表达式的格式为(运算符前后可能有空格):运算数 运算符 运 ...

  10. HDtune(硬盘检测) V5.5 中文绿色版

    软件名称:HDtune(硬盘检测) V5.5 中文绿色版软件语言: 简体中文授权方式: 免费软件运行环境: Win 32位/64位软件大小: 565KB 图片预览: 软件简介:HD Tune Pro一 ...