添加RPM

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

安装PostgreSQL 9.5

yum install postgresql95-server postgresql95-contrib

初始化数据库

/usr/pgsql-9.5/bin/postgresql95-setup initdb

开机启动

systemctl enable postgresql-9.5.service

启动数据库服务

systemctl start postgresql-9.5.service

查询版本

psql --version

修改用户密码

su - postgres
psql -U postgres
ALTER USER postgres WITH PASSWORD '123456'
\q

 

postgresql9.5主从复制

系统版本

主机名

IP地址

postgresql版本

角色

centos7.6

postgresql-master

192.168.216.130

9.5.18

主库

centos7.6

postgresql-slave

192.168.216.129

9.5.18

从库

说明:两台服务器都已经提前用yum方式安装好了postgresql 9.5,注意这里从库不需要进行初始化及启动服务,本文档配置的是主从复制,主库可以读写,从库只能读取不能写入数据。

主库配置:

cat >>/var/lib/pgsql/9.5/data/postgresql.conf <<EOF

wal_level = hot_standby     #(默认是minimal)

max_wal_senders=2           #(默认是0)

wal_keep_segments=64        #(默认是0)

EOF

说明

wal_level表示启动搭建Hot Standby,max_wal_senders则需要设置为一个大于0的数,它表示主库最多可以有多少个并发的standby数据库,而最后一个wal_keep_segments也应当设置为一个尽量大的值,以防止主库生成WAL日志太快,日志还没有来得及传送到standby就被覆盖,但是需要考虑磁盘空间允许,一个WAL日志文件的大小是16M

如上图,一个WAL日志文件是16M,如果wal_keep_segments设置为64,也就是说将为standby库保留64个WAL日志文件,那么就会占用16*64=1GB的磁盘空间,所以需要综合考虑,在磁盘空间允许的情况下设置大一些,就会减少standby重新搭建的风险。接下来还需要在主库创建一个超级用户来专门负责让standby连接去拖WAL日志

创建同步用户

postgres=# create user rep1 superuser password '123456';

修改配置文件,允许从库服务器连接主库去拖WAL日志数据

vim /var/lib/pgsql/9.5/data/pg_hba.conf

host     replication     rep1            192.168.216.0/24        md5

  

这里需要配置监听地址,因为默认监听本地

vi /var/lib/pgsql/9.5/data/postgresql.conf
listen_addresses = '192.168.216.130'

  

重启服务

systemctl restart postgresql-9.5.service

 从库配置:

执行以下命令,从主库备份数据

/usr/pgsql-9.5/bin/pg_basebackup -h 192.168.216.130 -U rep1 -F p -x -P -R -D /var/lib/pgsql/9.5/data/ -l rep_backup

备份过程实际上就是从主库的data目录里物理拷贝数据的过程。

参数说明

-F 指定了输出的格式,支持p(原样输出)或者t(tar格式输出)。

-x 表示备份开始后,启动另一个流复制连接从主库接收WAL日志。

-p 表示允许在备份的过程中实时的打印备份的进度。

-R 表示会在备份结束后自动生成recovery.conf文件,这样就避免了手动创建。

-D 指定把备份写到哪个目录,注意:在做基础备份之前从库的数据目录需要手动清空。

-l 表示指定一个备份的标识。

由于拷贝过来的文件属主是root这里需要更改属主和组

chown -R postgres.postgres /var/lib/pgsql/9.5/data/

 修改从库的配置文件

vim /var/lib/pgsql/9.5/data/postgresql.conf

247 #hot_standby = off          # "on" allows queries during recovery

248 hot_standby = on    #添加此行

 注意这里59行监听地址需要进行注释,由于拷贝主库的/data下的所有文件,因此这里需要修改

启动从库

systemctl start postgresql-9.5.service

测试:

从库写入测试:

在主库上创建一个test表,同时在从库上进行查询

在从库上进行查询:如下图所示

安装可参考:https://blog.51cto.com/wn2100/2239518

Centos7 yum安装postgresql 9.5的更多相关文章

  1. Centos7下安装postgresql(tar包形式安装)

    Centos7下安装postgresql(tar包形式安装) 1.官网下载地址: https://www.postgresql.org/ftp/source/ 2.将下载来tar包上传到linux服务 ...

  2. CentOS7 yum 安装git

    1.查看系统是否已经安装git git --version 2.CentOS7 yum 安装git yum install -y git 3.安装成功 4.卸载git yum remove git

  3. [转帖]Centos7 yum安装Chrome浏览器

    Centos7 yum安装Chrome浏览器 https://www.cnblogs.com/ianduin/p/8727333.html以及https://blog.csdn.net/libaine ...

  4. centos7 yum安装配置redis 并设置密码

    原文:https://www.cnblogs.com/fanlinglong/p/6635828.html centos7 yum安装配置redis 并设置密码 1.设置Redis的仓库地址 yum ...

  5. centos7 yum安装遇到报错:Head V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEYer

    centos7 yum安装时遇到错误:Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY 无法安装时,可按如下方法解决: This mini ...

  6. centos7 yum安装MongoDB

    centos7 yum安装MongoDB   原文博客地址http://xgs888.top/post/view?id=64 centos7 yum安装mongodb: 1:创建仓库 vi /etc/ ...

  7. CentOS7 yum 安装 Nginx最新版本

    CentOS7 yum 安装 Nginx最新版本 下载对应当前系统版本的nginx包(package) # wget  http://nginx.org/packages/centos/7/noarc ...

  8. CentOS6 CentOS7 yum安装图形界面

    CentOS6 yum安装图形界面yum groupinstall -y "Desktop" "Desktop Platform" "Desktop ...

  9. centos7 yum 安装lnmp

    centos7 yum 安装lnmp   安装7.2把7.1改成7.2就行 使用第三方扩展epel源安装php7.2 #移除旧版php [root@web02 ~]# yum remove php-m ...

随机推荐

  1. 服务器端debug操作

    写好的代码打个包放在服务器上,发现与理想的情况下不一致.查看log日志又觉得很烦,毕竟debug调试才是王道. 下面来说说怎么debug调试服务器上的.最好服务器上的代码和本地的保存一致,这样误差会小 ...

  2. LRU缓存实现

    LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高” 在java中可以采用Linke ...

  3. my97整合fineui例子,开始和结束时间

      <f: Toolbar runat ="server">                             <Items>             ...

  4. Go 基本数据类型

    Go基础语法 package main import "fmt" func main(){ fmt.Println("Hello world") } 注意点: ...

  5. javascript应该嵌入到html中的什么位置

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性)

    原文:WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 本文介绍如何使用 Windows 的 AppBar 相关 API 实现固定停靠在桌面上的特殊窗 ...

  7. C# vb .net实现真实阴影特效滤镜

    在.net中,如何简单快捷地实现Photoshop滤镜组中的真实阴影效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第 ...

  8. virsh 添加虚拟交换机

    virsh 添加虚拟交换机 来源 https://blog.csdn.net/a1987463004/article/details/90905981 vim /etc/libvirt/qemu/ne ...

  9. 换个语言学一下 Golang (9)——结构体和接口

    基本上到这里的时候,就是上了一个台阶了.Go的精华特点即将展开. 结构体定义 上面我们说过Go的指针和C的不同,结构体也是一样的.Go是一门删繁就简的语言,一切令人困惑的特性都必须去掉. 简单来讲,G ...

  10. js基础闭包练习题

    题目描述 实现函数 makeClosures,调用之后满足如下条件:1.返回一个函数数组 result,长度与 arr 相同2.运行 result 中第 i 个函数,即 result[i](),结果与 ...