postgresql集群编译安装
创始人
2024-11-30 13:05:03
0
  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;

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

 

相关内容

热门资讯

透视苹果版!pokerworl... 透视苹果版!pokerworld破解版下载,哈糖大菠萝破解器,举措教程(真的有挂)-哔哩哔哩poke...
透视ai代打!poker wo... 透视ai代打!poker world辅助器(透视)好像存在有挂,可靠教程(有挂插件挂)-哔哩哔哩一、...
八分钟揭露!wepoker怎么... 八分钟揭露!wepoker怎么挂飞机(透视)确实真的是有挂,AI教程(有挂实锤)-哔哩哔哩1、八分钟...
透视辅助!如何下载wepoke... 透视辅助!如何下载wepoker安装包,有没有人wepoker,举措教程(确实有挂)-哔哩哔哩如何下...
透视透视!拱趴大菠萝机器人(透... 透视透视!拱趴大菠萝机器人(透视)其实真的有挂,AI教程(有挂技巧)-哔哩哔哩1、拱趴大菠萝机器人透...
第5分钟详细!wepoker私... 第5分钟详细!wepoker私人定制透视(透视)竟然是有挂,必备教程(存在有挂)-哔哩哔哩1、点击下...
透视透视!wpk私人局辅助是真... 透视透视!wpk私人局辅助是真的吗,德普之星私人局辅助免费,方案教程(有人有挂)-哔哩哔哩1、德普之...
透视系统!werplan怎么辅... 透视系统!werplan怎么辅助(透视)切实是真的挂,详细教程(有挂脚本)-哔哩哔哩1、玩家可以在w...
一分钟普及!wepoker轻量... 一分钟普及!wepoker轻量版透视(透视)总是真的有挂,解密教程(真实有挂)-哔哩哔哩;1、游戏颠...
透视挂透视!we poker插... 透视挂透视!we poker插件,aapoker真的假的,策略教程(有挂助手)-哔哩哔哩1、aapo...