POSTGRESQL10.3源码如何安装主从搭建

技术POSTGRESQL10.3源码如何安装主从搭建这篇文章将为大家详细讲解有关POSTGRESQL10.3源码如何安装主从搭建,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、下载P

这篇文章将为大家详细讲解有关POSTGRESQL10.3源码如何安装主从搭建,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一、下载一种数据库系统源码安装包及主机配置

https://www.postgresql.org/ftp/source/v10.3/

postgresql-10.3.tar.gz

虚拟机环境

节点1 192.168.159.151

节点2 192.168.159.152

操作系统为redhat6.5

数据库为postgresql10.3

两个节点均配置/etc/hosts

虚拟仪器/etc/主机

节点1 192.168.159.151

节点2 192 .168 .159 .152二、编译安装

(1)创建postgres用户

用户添加-m-r-s/bin/bash-u 5432 postgres

(2)安装相关依赖包

妙的安装gettext gcc制作perl python perl-Tills-Embed readline-开发zlib-开发libxml 2-开发cmake gcc-c libxslt-开发OpenLDAP-开发PAM-开发python-开发Cyrus-sasl-开发libgcrypt-dev libgpg-错误-开发libstdc-dev

(3)配置POSTGRES。/configure-prefix=/opt/PostgreSQL-10.3-with-seg size=8-with-wal-seg size=64-with-wal-block size=16-with-libedit-preferred-with-perl-with-python-open-SSL-with-libxml-with-libxslt-enable-profiling-enable-thread-safety-enable-nls=zh _ CN

最后几行出现以下黄色输出即配置正确,否则根据报错提示继续安装依赖包

使用CPPFLAGS=-D _ GNU _ SOURCE-I/usr/include/libxml 2配置:

使用LDFLAGS=-Wl,-按需配置:

配置:正在创建。/配置。状态

config.status:创建GNUmakefile

config.status:正在创建src/Makefile.global

config.status:创建src/include/pg_config.h

config.status:创建src/include/pg_config_ext.h

config.status:创建src/interfaces/ecpg/include/ecpg _ config。h

config.status:将src/后端/端口/tas/dummy.s链接到src/后端/端口/tas.s

config.status:将src/后端/端口/dynloader/linux.c链接到src/后端/端口/dynloader.c

config.status:将src/后端/端口/posix_sema.c链接到src/后端/端口/pg_sema.c

config.status:将src/后端/端口/sysv_shmem.c链接到src/后端/端口/pg_shmem.c

config.status:将src/后端/端口/dynloader/linux.h链接到src/include/dynloader.h

config.status:将src/include/port/linux.h链接到src/include/pg_config_os.h

config.status:将src/makefiles/Makefile.linux链接到src/Makefile.port

(4)编译

马克

e && make install

最后几行出现以下黄色输出即配置正确
make[1]: Leaving directory `/opt/postgresql-10.3/src'
make -C config install
make[1]: Entering directory `/opt/postgresql-10.3/config'
/bin/mkdir -p '/opt/postgresql-10.3/lib/pgxs/config'
/usr/bin/install -c -m 755 ./install-sh '/opt/postgresql-10.3/lib/pgxs/config/install-sh'
/usr/bin/install -c -m 755 ./missing '/opt/postgresql-10.3/lib/pgxs/config/missing'
make[1]: Leaving directory `/opt/postgresql-10.3/config'
PostgreSQL installation complete.

(5)安装
make world && make install -world

最后几行出现以下黄色输出即配置正确
make[1]: Leaving directory `/opt/postgresql-10.3/src'
make -C config install
make[1]: Entering directory `/opt/postgresql-10.3/config'
/bin/mkdir -p '/opt/postgresql-10.3/lib/pgxs/config'
/usr/bin/install -c -m 755 ./install-sh '/opt/postgresql-10.3/lib/pgxs/config/install-sh'
/usr/bin/install -c -m 755 ./missing '/opt/postgresql-10.3/lib/pgxs/config/missing'
make[1]: Leaving directory `/opt/postgresql-10.3/config'
PostgreSQL installation complete.
make: Leaving directory `/opt/postgresql-10.3'

(6)创建相关目录及配置环境变量
mkdir -p /data/pgdata/serverlog
mkdir /data/pg
su - postgres
vi .bash_profile  (删除原来的所有,以下黄色部分直接复制粘贴)
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH

# postgres
#PostgreSQL端口
PGPORT=5432

#PostgreSQL数据目录
PGDATA=/data/pgdata
export PGPORT PGDATA 

#所使用的语言
export LANG=zh_CN.utf8

#PostgreSQL 安装目录
export PGHOME=/data/pg

#PostgreSQL 连接库文件
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export DATE=`date +"%Y%m%d%H%M"`

#将PostgreSQL的命令行添加到 PATH 环境变量
export PATH=$PGHOME/bin:$PATH

#PostgreSQL的 man 手册
export MANPATH=$PGHOME/share/man:$MANPATH

#PostgreSQL的默认用户
export PGUSER=postgres

#PostgreSQL默认主机地址
export PGHOST=127.0.0.1

#默认的数据库名
export PGDATABASE=postgres

#定义日志存放目录
PGLOG="$PGDATA/serverlog"source .bash_profile

(7)初始化数据库
#执行数据库初始化脚本
root用户登录
chown -R postgres.postgres /data/
su - postgres
$/opt/postgresql-10.3/bin/initdb --encoding=utf8 -D /data/pg/data
警告:为本地连接启动了 "trust" 认证.
你可以通过编辑 pg_hba.conf 更改或你下次
行 initdb 时使用 -A或者--auth-local和--auth-host选项.
Success. You can now start the database server using:
启动数据库
su - postgres
/opt/postgresql-10.3/bin/pg_ctl -D /data/pg/data -l logfile start
(8)相关命令拷贝
root用户
mkdir /data/pg/bin
cp /opt/postgresql-10.3/bin/*  /data/pg/bin
chown -R postgres.postgres /data/pg/bin

三、postgresql主从搭建

1、主库配置

(1)创建一个用户复制的用户replica
su - postgres

psql

CREATE ROLE replica login replication encrypted password 'replica';

(2)修改pg_hba.conf文件,指定replica登录网络(最后一添加)

vi /data/pg/data/pg_hba.conf

host    replication     replica            192.168.159.0/24         md5
host    all          replica           192.168.159.0/24         trust

 
(3)主库配置文件修改以下几项,其他不变
vi
/data/pg/data/postgresql.conf
listen_addresses = '*'
wal_level = hot_standby  #热备模式
max_wal_senders= 6 #可以设置最多几个流复制链接,差不多有几个从,就设置多少
wal_keep_segments = 20  #重要配置(这里的设置会影响到pg_wal目录下文件的数量,建议不要设置太大,20就够了)
wal_send_timeout = 60s
max_connections = 512 #从库的 max_connections要大于主库
archive_mode = on #允许归档
#archive_command = 'cp %p /url/path%f'   #根据实际情况设置

2、从库环境

(1)把备库的数据文件夹目录清空

rm -rf /var/lib/pgsql/10/data/*

(2)在备库上运行

pg_basebackup -F p --progress -D /data/pg/data/ -h 192.168.159.151 -p 5432 -U replica --password

输入密码replica 

!!!注意,复制完成后,在备库一定要将数据目录下的所有文件重新授权

chown -R postgres.postgres
/data/pg/data/

(3)创建recovery.conf 文件

cp  /opt/postgresql-10.3/share/recovery.conf.sample
/data/pg/data/recovery.conf

vi
/data/pg/data/recovery.conf

standby_mode = on

primary_conninfo = 'host=192.168.159.151 port=5432 user=replica password=replica'

recovery_target_timeline = 'latest'

trigger_file = '/data/pg/data/trigger.kenyon'

(4)配置postgresql.conf文件
vi
/data/pg/data/postgresql.conf
listen_addresses ='*'

wal_level = hot_standby

max_connections =1000 #一般从的最大链接要大于主的

hot_standby =on  #说明这台机器不仅仅用于数据归档,也用于查询

max_standby_streaming_delay =30s

wal_receiver_status_interval = 10s  #多久向主报告一次从的状态

hot_standby_feedback = on   #如果有错误的数据复制,是否向主进行范例

(5)启动备库

su - postgres
/opt/postgresql-10.3/bin/pg_ctl -D /data/pg/data/ -l logfile start

如果无法启动,到主库复制文件postmaster.opts到备库如下操作:

scp
/data/pg/data/postmaster.opts 192.168.159.152:/data/pg/data/

chown -R postgres.postgres
/data/pg/data/
cd /data/pg/

chmod 700 data/

3、验证主从功能

主库查询

su - postgres

psql

postgres=# select client_addr,sync_state from pg_stat_replication;

   client_addr   | sync_state

-----------------+------------

 192.168.159.152 | async

(1 row)

发现登陆postgres时出现以下问题
-bash-4.1$ 
root用户执行
cp /etc/skel/.bash* /var/lib/pgsql/
再次登陆即可变成
[postgres@node1 ~]$

关于“POSTGRESQL10.3源码如何安装主从搭建”这篇文章就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/79828.html

(0)

相关推荐

  • sharepoint server 2016 解决升级补丁kb3141515后提示错误怎么办

    技术sharepoint server 2016 解决升级补丁kb3141515后提示错误怎么办这篇文章主要介绍了sharepoint server 2016 解决升级补丁kb3141515后提示错误怎么办,具有一定借鉴

    攻略 2021年11月24日
  • 字母顺序,bpmf拼音26个字母顺序

    技术字母顺序,bpmf拼音26个字母顺序声母 b p m f d t n l g k h j q x zh ch sh r z c s y w 韵母 a o

    生活 2021年10月23日
  • node.js有什么指令

    技术node.js有什么指令小编给大家分享一下node.js有什么指令,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

    攻略 2021年12月13日
  • Python中的小知识总结,1)

    技术Python中的小知识总结,1) Python中的小知识总结(1)学习Python过程中,整理得到小知识(1),如果有误,真心希望指出,相互学习,相互进步~~
    1.同步赋值:
    python中从键盘输

    礼包 2021年11月20日
  • python安装wxgl库的教程(playwright python 实战)

    技术Python的Playwright怎么安装使用这篇文章主要介绍“Python的Playwright怎么安装使用”,在日常操作中,相信很多人在Python的Playwright怎么安装使用问题上存在疑惑,小编查阅了各式

    攻略 2021年12月17日
  • lua 动态sql解析(lua语言系统防入侵源码)

    技术监控Agent集成Lua引擎怎么实现多维度日志采集监控Agent集成Lua引擎怎么实现多维度日志采集,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在

    攻略 2021年12月18日