pgsql安装与主从配置搭建
一:安装环境
查看一下安装环境: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安装与主从配置搭建的更多相关文章
- Redis安装、主从配置及两种高可用集群搭建
Redis安装.主从配置及两种高可用集群搭建 一. 准备 Kali Linux虚拟机 三台:192.168.154.129.192.168.154.130.192.168.154 ...
- DNS服务器:主要介绍DNS的服务原理以及安装及其主从配置
DNS服务器:主要介绍DNS的服务原理以及安装及其主从配置 一.DNS简介 1.DNS DNS是域名系统(Domain Name System)的简称,它是一个将域名和IP相互映射的分布式数据库 ...
- 07.Linux系统-Fastdfs分布式文件系统-互为主从配置搭建部署
Fastdfs分布式文件系统-互为主从配置部署 1.安装基础依赖 yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl ...
- Redis 安装,主从配置及Sentinel配置自动Failover
1.安装redis 首页地址:http://redis.io/ 下载地址:http://download.redis.io/ 下载最新的源码包 tar -zxvf redis-stable.tar.g ...
- Redis安装及主从配置(转)
一.何为Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有 ...
- Redis安装及主从配置
一.何为Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有 ...
- Mysql5.7.6安装和主从配置手册
Mysql5.7.6+ 安装手册 linux server版本 1.下载 http://dev.mysql.com/downloads/mysql/#downloads 2. 检查库文件是否存在 ...
- MySQL安装及主从配置
系统环境:CentOS release 6.5 (Final)(最小化安装) MySQL版本:mysql-5.6.12 Cmake版本:cmake-2.8.4 说明:安装mysql先安装cmake(原 ...
- Mysql安装与主从配置
安装MySql 操作系统:Windows Server 2008 R2 Standard MySql版本:mysql-5.7.17-winx64 第一步:解压mysql-5.7.17-winx64.z ...
- 【PgSQL安装(含配置)】PostgreSQL简称PgSQL,是1980以加利福尼亚大学开发的DBMS,严格遵守标准SQL。
[下载地址]http://www.enterprisedb.com/products-services-training/pgdownload#windows …………………………………………………… ...
随机推荐
- 算法笔记-完全二叉树个数计算(时间复杂度小于O(n))
------------恢复内容开始------------ 首先科普一个事实,对于一个满二叉树来说,节点个数=(1<< (高度))-1. 接下来我们看这道题,管他三七二十一,前面那么多树 ...
- Blocks—单调栈
思路: 题目意思是求平均数>=k的最长序列先求出a[i]-k的前缀和就是求sum[i]-sum[j]>=0的最大i-j当j<=k<=isum[j]<=sum[k]j< ...
- Python-List内部实现
Python有很大实现的版本,像拿C语言实现的Cpython,以及在其基础上改进其解释执行变为即时编译(jit)的Pypy,还有一些其他的比如Jpython等.具体来说 其中使用c语言开发的叫做pyt ...
- mysql 重新整理——存储引擎[三]
前言 要知道存储引擎这个东西,不是存储的意思,而是io操作. MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛 ...
- 安装 php_mongodb.dll的坑
背景 php_mongodb.dll在这里介绍的是for php,php_mongodb.dll是这个坑,因为php_mongodb.dll前生是php_mongo.dll,而这个东西,它又不更新了, ...
- CSS:注册页面的编写练习
最终效果图: html文件: <!-- * @Qusetion: * @Author: 一届书生 * @Date: 2020-04-07 08:17:36 * @LastEditTime: 20 ...
- vue3 快速入门系列 —— 其他API
其他API 前面我们已经学习了 vue3 的一些基础知识,本篇将继续讲解一些常用的其他api,以及较完整的分析vue2 和 vue3 的改变. 浅层响应式数据 shallowRef shallow 中 ...
- 力扣438(Java)-找到字符串中所有字母异位词(中等)
题目: 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引.不考虑答案输出的顺序. 异位词 指由相同字母重排列形成的字符串(包括相同的字符串). 示例 1: ...
- 力扣240(java&python)-搜索二维矩阵 II(中等)
题目: 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target .该矩阵具有以下特性: 每行的元素从左到右升序排列.每列的元素从上到下升序排列. 示例 1: 输入:ma ...
- 如何在 ACK 中使用 MSE Ingress
简介: 本文将为大家分享一下 Ingress 标准 和 实现的趋势,介绍一下 MSE Ingress 在这个趋势下的优势和实践,为大家做关键入口选择多一些参考. 作者:彦林 随着云原生架构的普及,K8 ...