Postgresql Stream 配置

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介:

一、安装配置数据库(master\slave)
系统信息:

192.168.1.20 gserver20(master)
192.168.1.21 gserver21(slave)

1.建立目录

mkdir /opt/pgsql-9.3.1
mkdir /opt/pgdata/main
mkdir /opt/pgdata/archive


2.建立postgres用户

adduser postgres
chown -R postgres /opt/pgdata/

3.设置密码
# passwd postgres
Changing password for user postgres.
New password: 
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password: 
passwd: all authentication tokens updated successfully.
#

4.设置用户环境变量

su - postgres
vi .bash_profile 

# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
export PGHOME=/opt/pgsql-9.3.1
export PGDATA=/opt/pgdata/main
export PATH=$PGHOME/bin:$PATH:$HOME/bin
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH

[postgres@gserver21 ~]$

5.安装postgresql
./configure --prefix=/opt/pgsql-9.3.1
gmake
su
gmake install


二、配置stream replication
1.master
1)切换到postgres用户
  $su - postgres
2)初始化数据库
  $initdb
3)配置pg_hba.conf
在# IPv4 local connections下面添加一行,设置PostgreSQL的访问及其权限
  host    all             all             192.168.111.1/24        trust
在# replication privilege.下面添加一行,设置replication用户及权限
  host     replication     postgres        192.168.111.1/24 trust
4)配置postgresql.conf
配置监听,修改listen_addresses = 'localhost'
  listen_addresses = '*'# what IP address(es) to listen on;
配置Primary Replication参数
  wal_level = hot_standby
  max_wal_senders = 5
  wal_keep_segments = 32
  archive_mode = on
  archive_command = 'cp %p /opt/pgdata/archive/%f < /dev/null'
"/opt/pgdata/archive"是Replication的archive的存储路径。PostgreSQL会将Replication的WAL保存在 "/opt/pgdata/archive"路径下。
5) 启动Primary上的PostgreSQL数据库
  $pg_ctl start
6) 在primary上执行以下命令
  $psql -c "SELECT pg_start_backup('label', true)"
将Primary的PGDATA目录下的文件,除了postmaster.pid复制到Standby节点的“/opt/pgdata/main”目录下,该目录是 Standby节点上的

PostgreSQL数据库的PGDATA目录。
  $rsync -a ${PGDATA}/ postgres@192.168.1.21:/opt/pgdata/main --exclude postmaster.pid
  $psql -c "SELECT pg_stop_backup()"
2.standby
su - postgres
PGDATA=/opt/pgdata/main
Standby节点的PGDATA路径就是Primary节点的PGDATA的副本
1)配置postgresql.conf
设置hot_standby为
   hot_standby= on
2)编辑recovery.conf,文件路径为$(PGDATA)/recovery.conf,内容为
---------------------------------------------------------------------------------------------------------------------------
# Specifies whether to start the server as a standby. In streaming replication,
# this parameter must to be set to on.
   standby_mode='on'
# Specifies a connection string which is used for the standby server to connect
# with the primary.
   primary_conninfo= 'host=192.168.1.20 port=5432 user=postgres'
# Specifies a trigger file whose presence should cause streaming replication to
# end (i.e., failover).
   trigger_file = '/opt/pgdata/trigger'
# Specifies a command to load archive segments from the WAL archive. If
# wal_keep_segments is a high enough number to retain the WAL segments
# required for the standby server, this may not be necessary. But
# a large workload can cause segments to be recycled before the standby
# is fully synchronized, requiring you to start again from a new base backup.
   restore_command = 'cp /opt/pgdata/archive/%f %p' 

--------------------------------------------------------------------------------------------------------------------------
3)复制pg_xlog下的所有文件到/opt/pgdata/archive目录下
   cd /opt/pgdata/main/pg_xlog
   mv * ../../archive
4)启动standby节点,完成Replication
   pg_ctl start
3.完成Streaming Replication配置。

 


本文转自 pgmia 51CTO博客,原文链接:http://blog.51cto.com/heyiyi/1343875


相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
23小时前
|
DataWorks Java 关系型数据库
DataWorks常见问题之将预警信息发送至邮箱
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
45 1
|
7月前
|
存储 关系型数据库 数据库
用Patroni配置PostgreSQL高可用集群
Patroni是Zalando开发的数据库高可用管理软件,用于编排和自动化PostgreSQL集群的管理过程。Patroni 需要一系列其他组件的支持,通过利用第三方分布式一致性软件,组建并实现数据库高可用方案。
601 4
用Patroni配置PostgreSQL高可用集群
|
7月前
|
关系型数据库 MySQL Nacos
nacos数据库使用PostgreSQL及集群配置
从Nacos2.2版本开始,Nacos提供了数据源扩展插件,以便让需要进行其他数据库适配的用户自己编写插件来保存数据。
1068 2
|
7月前
|
安全 关系型数据库 Go
远程连接PostgreSQL:配置指南与安全建议
远程连接PostgreSQL:配置指南与安全建议
354 0
|
23小时前
|
关系型数据库 网络安全 数据安全/隐私保护
你会开启Postgresql 的SSL单向认证 配置?
你会开启Postgresql 的SSL单向认证 配置?
你会开启Postgresql 的SSL单向认证 配置?
|
23小时前
|
关系型数据库 Linux 数据安全/隐私保护
PostgreSQL【部署 02】在线安装PostgreSQL(Some psql features might not work 问题处理+角色密码设置+配置远程访问)
PostgreSQL【部署 02】在线安装PostgreSQL(Some psql features might not work 问题处理+角色密码设置+配置远程访问)
40 0
PostgreSQL【部署 02】在线安装PostgreSQL(Some psql features might not work 问题处理+角色密码设置+配置远程访问)
|
23小时前
|
监控 关系型数据库 Java
SpringBoot【集成 01】Druid+Dynamic+Greenplum(实际上用的是PostgreSQL的驱动)及 dbType not support 问题处理(附hikari相关配置)
SpringBoot【集成 01】Druid+Dynamic+Greenplum(实际上用的是PostgreSQL的驱动)及 dbType not support 问题处理(附hikari相关配置)
109 0
|
5月前
|
关系型数据库 数据库 PostgreSQL
flink postgresql cdc实时同步(含pg安装配置等)
flink postgresql cdc实时同步(含pg安装配置等)
192 0
|
6月前
|
关系型数据库 Java MySQL
springboot + mybatis-plus + com.alibaba.druid 配置postgresql数据库
配置mysql数据库正常,在执行postgresql查询数据库出现 [Druid-ConnectionPool-Create-1538095845] ERROR c.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:postgresql: errorCode 0, state 08P01 org.postgresql.util.PSQLException: 通讯协定错误,Session 初始化失败。
150 0
|
7月前
|
安全 关系型数据库 数据库
《确保安全:PostgreSQL安全配置与最佳实践》
《确保安全:PostgreSQL安全配置与最佳实践》
247 0