我的编程空间,编程开发者的网络收藏夹
学习永远不晚

PostgreSQL如何搭建主备环境

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

PostgreSQL如何搭建主备环境

这篇文章给大家分享的是有关PostgreSQL如何搭建主备环境的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

安装部署数据库软件

安装部署还是得啰嗦几句,使用的是9.5版本的源码安装,源码包很小,就几十兆。

1)解压

tar -zxvf  postgresql-9.5.0.tar.gz

2)切换到解压目录,尝试编译准备

cd postgresql-9.5.0

./configure -prefix /usr/local/pgsql

这个过程很可能有问题,比如下面的错误。

configure: error: zlib library not found

If you have zlib already installed, see config.log for details on the

failure.  It is possible the compiler isn't looking in the proper directory.

Use --without-zlib to disable zlib support.

类似的错误还有readline,实际的情况zlib包和readline包都是有的。

这里需要注意一点:

redhat 系列下这个软件包叫  readline-devel     ubuntu 下叫readline-dev    细分又分为libreadline5-dev   和 libreadline6-dev

所以我们需要安装的是readline-devel和zlib-devel的包即可搞定,而不要只是怀疑,然后把--without-zlib选项给启用了。

接下来的步骤就简单了。

3)开始编译安装

这两个过程耗时相对会多一些,大概几分钟吧,比MySQL的源码编译要快很多。

make

make install

4)创建用户和组

useradd postgres

mkdir -p /data/pgsql9.5

chown -R postgres:postgres /data/pgsql9.5

su - postgres

5)初始化部署

/usr/local/pgsql/bin/initdb -D  /data/pgsql9.5

至此,数据库软件部署就搞定了,在这里我们只做了功能,还没有涉及性能层面的调整和优化。

2

3

配置主库

使用的环境是两台服务器

192.168.179.128  主库

192.168.253.134  备库

1)创建一个复制角色

CREATE ROLE replica login replication encrypted password 'replica';

2)配置访问权限文件gp_hba.conf

添加一条记录,使得备库可以访问,修改后需要重启

host   replication  replica   192.168.253.134/24   trust

因为是跨网段,我额外补充了一条网关的记录

host   replication  replica   192.168.179.1/24   trust

3)修改参数配置文件postgresql.conf

修改如下的几个参数设置,端口还是保留默认的5432

listen_addresses = '*"

port = 5432

wal_level = hot_standby

max_wal_senders = 2

wal_keep_segments = 32

wal_sender_timeout =60s

max_connections =100

这些步骤完成后,切记要重启一下PG使得配置生效

4)重启PG

$ /usr/local/pgsql/bin/pg_ctl -D /data/pgsql9.5 -l logfile restart

3

3

配置备库

备库需要同样的步骤来部署数据库软件,参考第一部分即可。

这个时候备库上还没有初始化数据,我们模拟客户端的方式来访问,可能会有如下的错误。

$ psql -Ureplica -h292.168.179.128 -p5432 --password

Password for user replica: 

psql: FATAL:  no pg_hba.conf entry for host "192.168.179.1", user "replica", database "replica"

1)使用pg_basebackup还原数据

先不必担心,我们可以使用pg_basebackup或者命令行的方式来做备份恢复

$ pg_basebackup -F p --progress -D /data/pgsql9.5 -h 192.168.179.128 -p 5432 -U replica --password

Password: 

22484/22484 kB (100%), 1/1 tablespace

NOTICE:  WAL archiving is not enabled; you must ensure that all required WAL segments are copied through other means to complete the backup

2)配置恢复配置recovery.conf

这个步骤是关键,和Oracle里面的归档参数或者和MySQL里的change master的设置类似。

recovery.conf文件可以从模板里拿到:

cp /usr/local/pgsql/share/recovery.conf.sample  /data/pgsql9.5/recovery.conf

recovery.conf文件的内容改动参考如下:

standby_mode = on

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

recovery_target_timeline = 'latest'

trigger_file = '/data/pgsql9.5/trigger_activestb'

3)修改参数文件postgresql.conf的配置

postgresql.conf文件的内容修改如下,配置和主库差别较大,需要注意。

listen_addresses = '*'

port = 5432

wal_level = minimal

max_wal_senders = 0

wal_keep_segments = 0

max_connections = 1000

synchronous_commit = off

synchronous_standby_names = ''

hot_standby = on

max_standby_streaming_delay = 30

wal_receiver_status_interval = 1s

hot_standby_feedback = on

4)启动PG备库

$ /usr/local/pgsql/bin/pg_ctl -D /data/pgsql9.5 -l logfile start


5)查看复制状态

可以在主库端查看复制状态,参考pg_stat_replication视图,在查看的过程中,这个视图字段较大,看起来会有些乱,我们可以使用类似MySQL \G的方式来查看,即\x的扩展模式。

postgres=# \x

Expanded display is on.

postgres=# select * from pg_stat_replication; 

-[ RECORD 1 ]----+------------------------------

pid              | 20539

usesysid         | 16384

usename          | replica

application_name | walreceiver

client_addr      | 192.168.179.1

client_hostname  | 

client_port      | 49374

backend_start    | 2018-03-25 05:19:15.215181+08

backend_xmin     | 1756

state            | streaming

sent_location    | 0/302F600

write_location   | 0/302F600

flush_location   | 0/302F600

replay_location  | 0/302F600

sync_priority    | 0

sync_state       | async


感谢各位的阅读!关于“PostgreSQL如何搭建主备环境”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

PostgreSQL如何搭建主备环境

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何搭建虚拟主机环境

搭建虚拟主机环境可以分为以下几个步骤:1. 选择合适的虚拟化软件:常见的虚拟化软件有VMware、VirtualBox、KVM等,根据自己的需求选择合适的软件。2. 安装虚拟化软件:根据选择的虚拟化软件,下载并安装到主机操作系统上。3. 创
2023-08-29

如何搭建Kotlin环境

这篇文章主要介绍了如何搭建Kotlin环境,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。需要注意的是:这里的环境搭建并不会局限于Android的环境。Kotlin简介在开始搭
2023-05-30

wamp环境如何搭建

要搭建WAMP环境,您需要按照以下步骤进行操作:1. 下载WAMP软件包:您可以从WampServer官方网站(https://www.wampserver.com/)下载最新版本的WampServer软件包。2. 安装WAMP软件包:双击
2023-08-11

如何搭建java环境?

关于Java环境搭建这里做个解释,java开发式环境需要JDK(Java Development Kit),java运行式环境需要JRE(Java Runtime Environment)。由于JDK包含JRE,只需要安装JDK即可。JDK安装1. 在哪里下载
如何搭建java环境?
2015-01-21

如何搭建golang环境

这篇文章主要讲解了“如何搭建golang环境”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何搭建golang环境”吧!下载安装golang首先我们需要在官方网站或者镜像网站下载golang
2023-07-05

如何搭建Mybatis环境

这篇文章主要介绍如何搭建Mybatis环境,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Mybatis的简介:  MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache sof
2023-05-30

Vue3.0环境如何搭建

这篇“Vue3.0环境如何搭建”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue3.0环境如何搭建”文章吧。使用vite初
2023-06-27

如何搭建Node.js环境

本文小编为大家详细介绍“如何搭建Node.js环境”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何搭建Node.js环境”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。安装 Node.js 环境Node.js
2023-06-17

Java环境如何搭建

本篇内容介绍了“Java环境如何搭建”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java环境的搭建要运行Java程序,必须安装JDK。JD
2023-06-17

PHP环境如何搭建

要搭建PHP环境,需要以下步骤:1. 安装PHP解释器:你可以从PHP官方网站(https://www.php.net/downloads.php)下载PHP的压缩包,选择合适的版本并根据操作系统进行安装。另外,你也可以选择安装集成开发环境
2023-08-23

编程热搜

目录