postgresql集群编译安装

news2024/11/28 6:50:19
  1. postgreSQL集群部署
  2. 1环境准备(三台服务器全部执行)

2.1.1 准备三台虚拟机

服务器名称

服务器IP

描述

Pgsql-0

xxx.xxx.xxx.xxx

master节点

Pgsql-1

xxx.xxx.xxx.xxx

slave1节点

Pgsql-2

xxx.xxx.xxx.xxx

slave2节点

2.1.2 安装编译需要的相关依赖(三台服务器全部执行)

yum install -y gcc readline-devel zlib-devel openssl-devel automake autoconf libtool make -y

yum install -y bison flex -y

yum install docbook-dtds docbook-style-xsl libxslt -y

2.1.3 创建用户(三台服务器全部执行)

创建组 groupadd postgres

创建用户 useradd -g postgres postgres

    1. 编译安装(三台服务器全部执行)

2.2.1 上传pgsql编译包

上传pgsql的编译包到/opt目录下,并解压

2.2.2 执行编译命令

进入到解压好的目录,执行如下命令:

./configure --prefix=/usr/local/pgsql/postgresql-12.2

 make

 

make install

执行完上面的三个命令后,可以看到在 /usr/local/pgsql 下已经安装好了 pgsql

 

执行如下命令:

chown -R postgres:postgres /usr/local/pgsql

 

 

    1. 初始化数据库(三台服务器全部执行)

2.3.1 初始化数据库

执行如下命令,创建数据库文件夹。

mkdir -p /usr/local/pgsql/postgresql-12.2/data

 

 执行命令,切换用户。

su postgres

执行命令,初始化数据库。

/usr/local/pgsql/postgresql-12.2/bin/initdb -D /usr/local/pgsql/postgresql-12.2/data/

 

 

2.3.2 修改配置文件

执行命令:

cd /usr/local/pgsql/postgresql-12.2/data/

cp postgresql.conf postgresql.conf_bak

vi postgresql.conf

 

 

修改 listen_addresses = '*' 前面的#号需要去掉。

增加最大连接数

max_connections = 1000

保存 postgresql.conf 文件。

vi /usr/local/pgsql/postgresql-12.2/data/pg_hba.conf

执行命令:

在文件底部,增加如下配置,并保存文件

host  all  all  0.0.0.0/0  password

 

 执行命令:

su root

修改环境变量,执行命令

vi /etc/profile

在文件末尾,添加如下配置

export PGHOME=/usr/local/pgsql/postgresql-12.2

export PGDATA=/usr/local/pgsql/postgresql-12.2/data

PATH=$PATH:$HOME/bin:$PGHOME/bin

执行命令,让新增的配置生效

source /etc/profile

    1. 数据库操作(master节点)

2.4.1 启动数据库

su postgres

/usr/local/pgsql/postgresql-12.2/bin/pg_ctl -D /usr/local/pgsql/postgresql-12.2/data/ -l logfile start

 

 

2.4.2 修改默认密码

psql -U postgres

ALTER USER postgres with encrypted password '你的密码';

2.4.3 停止数据库

/usr/local/pgsql/postgresql-12.2/bin/pg_ctl -D /usr/local/pgsql/postgresql-12.2/data/ stop

    1. 集群配置

2.5.1 创建同步用户(master节点)

执行如下命令:

su postgres

psql -U postgres

CREATE ROLE rep login replication encrypted password 'rep';

 

 

2.5.2 修改pg_hba.conf

vi /usr/local/pgsql/postgresql-12.2/data/pg_hba.conf

在末尾增加如下配置

host replication rep 0.0.0.0/0 password

 

 

2.5.3 修改 postgresql.conf文件

配置如下配置

archive_mode = on   #开启归档模式

archive_command = 'cp %p /usr/local/pgsql/postgresql-12.2/data/%f'   #归档命令

wal_level = replica    #热备模式

 

 

重启数据库,执行命令:

/usr/local/pgsql/postgresql-12.2/bin/pg_ctl -D /usr/local/pgsql/postgresql-12.2/data/ stop

/usr/local/pgsql/postgresql-12.2/bin/pg_ctl -D /usr/local/pgsql/postgresql-12.2/data/ -l logfile start

从节点测试连通性

psql -h 10.10.12.75 -U postgres

 

 

    1. Slave节点配置

2.6.1 删除从库

执行命令:

su postgres

rm -rf /usr/local/pgsql/postgresql-12.2/data/*

2.6.2 主库同步数据到从库

su postgres

/usr/local/pgsql/postgresql-12.2/bin/pg_basebackup -h (master节点ip) -p 5432 -U rep -Fp -Xs -Pv -R -D /usr/local/pgsql/postgresql-12.2/data/

输入密码:rep

 

 

2.6.3 修改 standby.signal文件

执行命令:

vi /usr/local/pgsql/postgresql-12.2/data/standby.signal

增加配置:

standby_mode = on

2.6.4 修改 postgresql.conf 文件

执行命令:

vi /usr/local/pgsql/postgresql-12.2/data/postgresql.conf

修改如下配置:

primary_conninfo = 'host=10.10.12.75 port=5432 user=rep password=rep'

wal_level = replica #热备模式

hot_standby = on #说明这台机器不仅用于数据归档,还可以用于数据查询 hot_standby_feedback = on #r出现错误复制,向主机反馈

重启数据库,执行命令:

/usr/local/pgsql/postgresql-12.2/bin/pg_ctl -D /usr/local/pgsql/postgresql-12.2/data/ stop

/usr/local/pgsql/postgresql-12.2/bin/pg_ctl -D /usr/local/pgsql/postgresql-12.2/data/ -l logfile start

    1. 集群测试

2.7.1 检查集群(master节点)

执行如下命令:

su postgres

psql -U postgres

select client_addr,sync_state from pg_stat_replication;

 

 

创建测试数据库,执行命令:

create database test;

在slave节点查看已经创建的数据库,发现数据已经同步过来了。

 

2.7.2 从节点创建数据库

执行命令:

create database test;

可以看见从节点是个只读数据库

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/528736.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ANR实战案例 - 通用方法总结

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录 系列文章目录前言一、业务耗时1.登录Dialog优化2.子线程更新通知栏 二、频繁调用1.底部Tab资源初始…

【LLM系列之LLaMA】LLaMA: Open and Efficient Foundation Language Models

论文题目:《LLaMA: Open and Efficient Foundation Language Models》 论文链接:https://arxiv.org/pdf/2302.13971.pdf github链接:https://github.com/facebookresearch/llama/tree/main huggingface链接:https://huggingface.c…

[离散数学] 函数

文章目录 函数判断函数的条件复合函数复合函数的性质 逆函数 函数 判断函数的条件 dom F A ⇔ \Leftrightarrow ⇔所有x 都有 F&#xff08;x&#xff09;与之对应 有唯一的与其对应 < x , y > ∈ f ∧ < y , z > ∈ f ⇒ y z <x,y>\in f \land <y,z…

【C++】2. 进入面向对象 - 类和对象的初步认识

专栏导读 &#x1f341;作者简介&#xff1a;余悸&#xff0c;在读本科生一枚&#xff0c;致力于 C 方向学习。 &#x1f341;收录于 C专栏&#xff0c;本专栏主要内容为 C 初阶、C 进阶、STL 详解等&#xff0c;持续更新中&#xff01; &#x1f341;相关专栏推荐&#xff1a;…

TikTok新手做什么账号,Tiktok类目怎么选

有很多刚入驻TikTok的小白不知道要选择什么类目才比较容易起量。看完这篇后&#xff0c;相信你们的疑惑就会烟消云散。选择对了类目对以后的产品带货有很大的促进作用&#xff0c;今天我给你们分享6种适合TikTok小店运营的账号类型&#xff0c;以及一些比较推荐的类目。 TikTok…

测试和调试之Python高级篇

测试和调试 在软件开发过程中&#xff0c;测试和调试是非常重要的环节。测试用于验证代码的正确性和可靠性&#xff0c;而调试则是为了找到并解决代码中存在的问题。下面将会详细介绍单元测试、集成测试、断言、测试框架、调试工具和技巧。 单元测试 单元测试是指对软件中的…

linux环境安装使用redis详解

Redis 1. NoSQL的引言 NoSQL ( Not Only SQL )&#xff0c;意即 不仅仅是SQL , 泛指非关系型的数据库。Nosql这个技术门类,早期就有人提出,发展至2009年趋势越发高涨。 2. 为什么是NoSQL 随着互联网网站的兴起&#xff0c;传统的关系数据库在应付动态网站&#xff0c;特别是超大…

OpenPCDet系列 | 5.1 PointPillars算法——PillarVFE特征构建与编码模块

文章目录 PillarVFE模块1. PillarVFE初始化2. PillarVFE数据处理2.1 特征构造2.2 掩码构造2.3 特征编码 OpenPCDet的整个结构图&#xff1a; PillarVFE模块属于VFE结构的其中一种&#xff0c;所以可以在PCDet中的backbone_3d目录下&#xff0c;可以找到vfe目录结构。在OpenPCDe…

【JOSEF约瑟 JL-8GA/12端子排电流继电器 整定范围宽、功耗低】

JL-8GA/12端子排电流继电器名称:端子排电流继电器型号:JL-8GA/12品牌:JOSEF约瑟功率消耗:≤5W触点容量:250V5A额定电压:58,100,110,220V 系列型号&#xff1a; JL-8GA/11端子排电流继电器&#xff1b; JL-8GA/12端子排电流继电器&#xff1b; JL-8GA/13端子排电流继电器&am…

MySQL(1) ---- 数据库介绍与MySQL概述

介绍 1、什么是数据库&#xff1f; 数据库&#xff1a;DateBase&#xff08;DB&#xff09;&#xff0c;是存储和管理数据的仓库。数据库管理系统&#xff1a;DataBase Management System&#xff08;DBMS&#xff09;&#xff0c;操纵和管理数据库的大型软件。SQL&#xff1…

【C语言】手把手教你文件操作

文章目录 一、前言二、文件的打开和关闭1. fopen函数2. fclose函数 三、文件的顺序读写四、文件的随机读写1. fseek函数2. ftell函数3. fwind函数 一、前言 程序运行时&#xff0c;数据存放在内存中&#xff0c;而当程序退出后&#xff0c;数据也就不复存在。 想做到数据持久化…

数据库管理-第七十五期 手把手教你搭19c RAC(20230516)

数据库管理 2023-05-16 第七十五期 手把手教你搭19c RAC1 基础环境2 操作系统配置2.1 /etc/hosts2.2 配置系统挂载2.3 配置本地yum源2.4 操作系统配置2.5 安装预安装RPM包并配置&#xff1a;2.6 创建对应目录2.7 配置时间同步 3 存储挂载3.1 存储环境3.2 存储识别3.3 多路径聚合…

生成一个手绘图为底图的导游图

1 前言 上一篇演示了制作一个简版导游图。简版导游图的优点是制作简单、快速&#xff0c;不需要第三方软件&#xff0c;缺点是略显简陋、不够专业。 本编介绍制作专业导游图的步骤&#xff0c;用手绘图为地图&#xff0c;用图形展现景区信息&#xff0c;能表现出丰富的景区细…

ChatGPT:使用Edge浏览器获取ChatGPT以及如何使用ChatGPT帮你制作PPT

一&#xff1a;前言 ChatGPT&#xff1a;智能AI助你畅聊天地 在现代人日益忙碌的生活中&#xff0c;难免需要一些轻松愉快的聊天来放松身心。而现在&#xff0c;有了 ChatGPT&#xff0c;轻松愉快的聊天变得更加智能、有趣且不受时间、地点限制&#xff01; 什么是 ChatGPT&…

NSSCTF-[深育杯 2021]Press

下载链接&#xff1a;下载 载入IDA&#xff0c;查看内容 首先进入一个函数进行初始化&#xff0c;进入查看 unsigned __int64 sub_4007B6() {int v1; // [rsp8h] [rbp-48h]int i; // [rspCh] [rbp-44h]char src[56]; // [rsp10h] [rbp-40h] BYREFunsigned __int64 v4; // [r…

【可乐荐书】有趣的矩阵:看得懂又好看的线性代数

本栏目将推荐一些经典的、有趣的、有启发性的书籍&#xff0c;这些书籍涵盖了各个领域&#xff0c;包括文学、历史、哲学、科学、技术等等。相信这些书籍不仅可以让你获得知识&#xff0c;还可以让你感受到阅读的乐趣和魅力。 今天给大家推荐的书籍是&#xff1a;《有趣的矩阵…

【简单DP】CF1420 C1

昨天的CF心态又打崩了 好久没写DP了这道题一发过了 但是大家都会qwq 烦死 Problem - C1 - Codeforces 题意&#xff1a; 给定一个序列&#xff0c;让你找出一个子序列 使得 这个最大&#xff0c;a是子序列 思路&#xff1a; 首先子序列&#xff0c;自然就是DP 然后每个…

品牌活动如何策划,更利于传播?(吸引媒体报道)

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 之前做媒体的时候&#xff0c;参加过无数的媒体活动&#xff0c;现在做媒体传播也给了许多品牌一些建议&#xff0c;有的活动设计的很有趣&#xff0c;有的活动设计的很巧妙&#xff0c;…

响应式设计 MediaQuery和flex

一、MediaQuery(媒体查询)的概念 为不同尺寸的屏幕设定不同的css样式 示例 二、media常用参数 三、媒体查询代码示例 MediaQuery在浏览器中的显示示例 MediaQuery综合案例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8…

Go语言笔记:使用ssh包作为客户端与SSH服务器交互

文章目录 目的基础说明使用演示单次通讯连续通讯&#xff08;远程终端&#xff09; 总结 目的 Golang中可以使用 golang.org/x/crypto/ssh 包作为SSH客户端或者SSH服务使用。这篇文章将简单记录下作为客户端使用的一些内容。 Package ssh implements an SSH client and server…