一:安装环境

查看一下安装环境:cat /etc/centos-release

CentOS Linux release 7.7.1908 (Core)

二:软件下载

https://www.postgresql.org/download/

Select your operating system family:     选择   Linux

Select your Linux distribution:    选择  Red Hat/Rocky/CentOS

然后页面会跳转至: https://www.postgresql.org/download/linux/redhat/

再选择:

1. Select version:    15

2.Select platform:    Red Hat Enterprise, CentOS, Scientific or Oracle version 7

3. Select architecture:     x86_64

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql15-server
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
sudo systemctl enable postgresql-15
sudo systemctl start postgresql-15

在执行   sudo yum install -y postgresql15-server    过程中,有可能报错误   Requires: libzstd.so.1()(64bit)

可安装   yum install epel-release   命令进行解决。

在执行 初始化   sudo /usr/pgsql-15/bin/postgresql-15-setup initdb   执行完成后: Initializing database ... OK

执行  sudo systemctl enable postgresql-15   执行完成后:

Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-15.service to /usr/lib/systemd/system/postgresql-15.service.

执行  sudo systemctl start postgresql-15

安装完成。

三:配置

查看pgsql的安装目录:find /usr -wholename '*/bin/postgres'

查看PGSQL端口:netstat -a | grep PGSQL

查找pg_hba.conf文件:  find / -name "*pg_hba.conf*"

一般是如下路径:

/var/lib/pgsql/15/data/pg_hba.conf

然后编辑文件

vi   /var/lib/pgsql/15/data/pg_hba.conf

# IPv4 local connections:

host    all             all             127.0.0.1/32            scram-sha-256

修改为

host    all             all             0.0.0.0/0            scram-sha-256

用navicat连接pgsql时报错:

could not connect to server: Connection refused(0x0000274D/10061)

Is the server running on host "192.168.113.154" and accepting TCP/IP connections on 5432?

  

是pgsql 未监听所有的IP,解决方案:

vi  /var/lib/pgsql/15/data/postgresql.conf  找到60行左右

添加如下:listen_addresses = '*'

再得启一下pgsql :  sudo systemctl restart postgresql-15

如果是在开启防火墙的情况:

查看已打开端口:firewall-cmd --list-ports, 如没没有开通5432端口,则执行:

firewall-cmd --zone=public --port-port=5432/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports

查看已打开的服务:firewall-cmd --list-service ,如果没有开通则开通PostgreSQL服务:

firewall-cmd --permanent --add-service=postgresql --permanent
firewall-cmd --reload
firewall-cmd --list-service

进入到postgres 账户    su - postgres

进入到 psql命令行:

执行如下操作 :
ALTER USER postgres WITH PASSWORD 'Swd.1202evb#';
CREATE ROLE replica login replication encrypted password 'replica';

输入以下命令退出 PostgreSQL 提示符:   \q

Ctrl + D退出psql控制台

完成修改后,即可用navicat 16连接到pgsql

参考链接:https://www.cnblogs.com/yyl001/p/16469612.html

==================================主从配置=======================================================

一:

进入 su - postgres    或者   sudo -i -u postgres

进入 psql

create role replica login replication encrypted password 'replication123';

含义:

登录名为:replica

权限授予:login replication

密码为:replication123

最后一定要加一个  ;

二:vi  /var/lib/pgsql/15/data/postgresql.conf

listen_addresses = '*'    # 设置监听的ip,* 为允许所有
wal_level = replica # wal日志写入级别,要使用流复制,必须使用replica或更高级别
full_page_writes = on # 可以防止意外宕机后部分数据无法写入
wal_log_hints = on # 没太懂这个参数的具体含义,但可能会影响后续pg_rewind的使用,所以把它打开,官方描述:also do full page writes of non-critical updates
max_wal_senders = 10 # 设置流复制链接最大值
hot_standby = on # 打开热备
wal_keep_segments = 64 # 设置流复制保留的最log数目
unix_socket_directories = '.' # 指定服务器用于监听来自客户端应用的连接的 Unix 域套接字目录。
unix_socket_permissions = 0777 # 设置 Unix 域套接字的访问权限。
listen_addresses = '*'    在60行左右
wal_level = replica      在206行左右
full_page_writes = on    在220行左右
wal_log_hints = on       在221行左右  把off 改为 on
max_wal_senders = 10     在309行左右   
hot_standby = on         在336行左右

如三下个参数,新版本可能没有,可以不设置
wal_keep_segments = 64    # 设置流复制保留的最log数目
unix_socket_directories = '.' # 指定服务器用于监听来自客户端应用的连接的 Unix 域套接字目录。
unix_socket_permissions = 0777 # 设置 Unix 域套接字的访问权限。
 三:编辑  vi  /var/lib/pgsql/15/data/pg_hba.conf   ,在文件的最后增加如下内容:
 host    replication     replica         0.0.0.0/0               scram-sha-256 
 
 四: 重启一下主库:sudo systemctl restart postgresql-15


从库:
一:停止从库的pgsql服务
sudo systemctl stop postgresql-15
二:清空从库的数据(删除data下的所有文件)
rm -rf /var/lib/pgsql/15/data/* 

三:pg_basebackup -h 172.27.241.252 -p 5432 -U replica -Fp -Xs -Pv -R -D /var/lib/pgsql/15/data/

然后输入主库设置的密码:replication123

查看目录权限:

ls -la /var/lib/pgsql/15/data

给   data 目录授权

chmod -R 700 /var/lib/pgsql/15/data
chgrp -R postgres /var/lib/pgsql/15/data
chown -R postgres /var/lib/pgsql/15/data

参考资料:

chmod :更改文件的权限(change mode)
-R :当前目录及目录下所有文件
r=4 读,w=2 写,x=1 执行
u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。它是系统默认值。
rwxrwxrwx (777):每个用户都有读,写,执行权限
rw-rw-rw-(600):每个用户都有读,写权限
rwx------ (700): 属主有读,写,执行权限
rw-r--r-- (644):属主有读,写权限;群主,其他用户有读权限
rw-------(600):属主有读,写权限
例:chmod -R 777:对当前目录及目录下所有的文件赋予可读可写可执行权限 chgrp命令:改变文件或目录所属的组。
#chgrp -R guest /var/tmp/f.txt
#chgrp -R root /home/berry/file/a.txt
#chgrp -R book /opt/local /book 改变/opt/local /book/及其子目录下的所有文件的属组为book。
chown 命令:更改某个文件或目录的属主和属组。
#chown guest:guest a.txt 把文件a.tx属主改成guest,属组改成guest。
#chown -R guest /home/berry (把berry文件下的所有文件都改成guest这个组)
#chown -R yusi:users /demo 把目录/demo及其下的所有文件和子目录的属主改成yusi,属组改成users。
#chown -R linuxcool:linuxcoolgroup * 将当前目录下所有文件的拥有者都改为 linuxcool,用户组改为 linuxcoolgroup。 chmod -R 700 /var/lib/pgsql/15/data
chgrp -R postgres /var/lib/pgsql/15/data
chown -R postgres /var/lib/pgsql/15/data

四:此时data目录下会出现standby.signal   只有一个文件,里边什么内容都没有,加上如下一句话:

vi standby.signal

standby_mode = 'on'

修改  postgresql.conf,

vi  postgresql.conf

[root@localhost data]# vim postgresql.conf
#从机信息和连接用户
primary_conninfo = 'host=192.168.5.131 user=replica password=123456'
#说明恢复到最新状态
recovery_target_timeline = latest
#大于主节点,正式环境重新考虑此值的大小
max_connections = 120
#说明这台机器不仅可以用户数据归档,还可以用于数据查询
hot_standby = on
#流备份的最大延迟时间
max_standby_archive_delay = 30s
#向主机汇报本地状态的间隔时间
wal_receiver_status_interval = 10s
#出现错误复制,向主机反馈
hot_standby_feedback = on

重启数据库:sudo systemctl start postgresql-15

实现了主从的配置搭建

pgsql安装与主从配置搭建的更多相关文章

  1. Redis安装、主从配置及两种高可用集群搭建

    Redis安装.主从配置及两种高可用集群搭建 一.            准备 Kali Linux虚拟机 三台:192.168.154.129.192.168.154.130.192.168.154 ...

  2. DNS服务器:主要介绍DNS的服务原理以及安装及其主从配置

    DNS服务器:主要介绍DNS的服务原理以及安装及其主从配置 一.DNS简介 1.DNS    DNS是域名系统(Domain Name System)的简称,它是一个将域名和IP相互映射的分布式数据库 ...

  3. 07.Linux系统-Fastdfs分布式文件系统-互为主从配置搭建部署

    Fastdfs分布式文件系统-互为主从配置部署 1.安装基础依赖 yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl ...

  4. Redis 安装,主从配置及Sentinel配置自动Failover

    1.安装redis 首页地址:http://redis.io/ 下载地址:http://download.redis.io/ 下载最新的源码包 tar -zxvf redis-stable.tar.g ...

  5. Redis安装及主从配置(转)

    一.何为Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有 ...

  6. Redis安装及主从配置

    一.何为Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有 ...

  7. Mysql5.7.6安装和主从配置手册

    Mysql5.7.6+ 安装手册 linux server版本   1.下载 http://dev.mysql.com/downloads/mysql/#downloads  2. 检查库文件是否存在 ...

  8. MySQL安装及主从配置

    系统环境:CentOS release 6.5 (Final)(最小化安装) MySQL版本:mysql-5.6.12 Cmake版本:cmake-2.8.4 说明:安装mysql先安装cmake(原 ...

  9. Mysql安装与主从配置

    安装MySql 操作系统:Windows Server 2008 R2 Standard MySql版本:mysql-5.7.17-winx64 第一步:解压mysql-5.7.17-winx64.z ...

  10. 【PgSQL安装(含配置)】PostgreSQL简称PgSQL,是1980以加利福尼亚大学开发的DBMS,严格遵守标准SQL。

    [下载地址]http://www.enterprisedb.com/products-services-training/pgdownload#windows …………………………………………………… ...

随机推荐

  1. python3 引入requests报错ImportError的处理方案

    执行python3 import requests时抛出错误:ImportError: No module named requests 使用python3写爬虫时,有些小伙伴会遇到这种坑,使用发现导 ...

  2. 如何用vsftpd实现用户不同权限:只能下载,可上传,管理权限等 [仅供参考未亲测]

    如何用vsftpd实现用户不同权限:只能下载,可上传,管理权限等  2007-01-29 10:20:09 分类: LINUX 前提条件:       必须安装包:vsftpd-2.0.1-5     ...

  3. docker 应用篇————docker原理[三]

    前文 前面就已经介绍了docker的安装,在https://www.cnblogs.com/aoximin/p/12906218.html,这里面,这里作为重新整理. 那么这里就不介绍了,这里直接是进 ...

  4. Cache Aside Pattern缓存+数据库读写模式的分析

    1.Cache Aside Pattern(1)读的时候,先读缓存,缓存没有的话,那么就读数据库,然后取出数据后放入缓存,同时返回响应 (2)更新的时候,先删除缓存,然后再更新数据库 2.为什么是删除 ...

  5. ORA-01555:snapshot too old: rollback segment number X with name "XXXX" too small

    ORA-01555:snapshot too old: rollback segment number X with name "XXXX" too small 在查询快照的时候 ...

  6. 力扣682(java)-棒球比赛(简单)

    题目: 你现在是一场采用特殊赛制棒球比赛的记录员.这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分. 比赛开始时,记录是空白的.你会得到一个记录操作的字符串列表 ops,其中 ops ...

  7. 如何合理使用 CPU 管理策略,提升容器性能?

    ​简介:CPU Burst.拓扑感知调度是阿里云容器服务 ACK 提升应用性能的两大利器,它们解决了不同场景下的 CPU 资源管理,可以共同使用.点击下文,查看详情! 作者:张佐玮(佑祎) 前言 在云 ...

  8. 使用MQTT与函数计算做热力图的实践

    简介: 在各类场景中,关于上报数据的处理无处不在,而以上提到的场景都可以通过本方案的MQTT+FC+API Gateway的方式参考优化来实现. 前言 最近几年,我们在一些商场.图书馆.机场或港口环境 ...

  9. Java单元测试技巧之PowerMock

    简介: 高德的技术大佬向老师在谈论方法论时说到:"复杂的问题要简单化,简单的问题要深入化." 这句话让我感触颇深,这何尝不是一套编写代码的方法--把一个复杂逻辑拆分为许多简单逻辑, ...

  10. 阿里巴巴超大规模 Kubernetes 基础设施运维体系揭秘

    ​简介:ASI 作为阿里集团.阿里云基础设施底座,为越来越多的云产品提供更多专业服务,托管底层 K8s 集群,屏蔽复杂的 K8s 门槛.透明几乎所有的基础设施复杂度,并用专业的产品技术能力兜底稳定性, ...