云服务器 ECS 建站教程:PostgreSQL 本地Slave搭建步骤

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介:


PostgreSQL 本地Slave搭建步骤

PostgreSQL被业界誉为“最先进的开源数据库”,目前阿里云数据库PostgreSQL版具有NoSQL兼容,高效查询,插件化管理,安全稳定的特性。本文档介绍使用阿里云ECS搭建PostgreSQL主从架构的操作步骤。

适用对象

适用于熟悉ECS,熟悉Linux系统,熟悉PostgreSQL的阿里云用户。

基本流程

使用阿里云ECS搭建PostgreSQL主从架构的操作步骤如下:

  • 选购ECS 实例
  • 主节点安装配置
  • 从节点安装配置
  • 检测验证

步骤 1:选购ECS实例

搭建主从复制架构,需要选购2台专有网络类型的云服务器ECS实例,建议不分配公网IP,可按需购买弹性公网IP绑定至对应ECS实例,进行配置操作。后续使用您可以根据实际情况考虑配置升级或者架构调优变更。

步骤2:安装PostgreSQL

在阿里云服务器上安装PostgreSQL有2种方式

  • 镜像部署
  • 手动部署(源码编译安装/YUM安装)

本文档基于yum部署的方式,安装postgresql;您也可以在云市场基础环境中搜索筛选,使用镜像部署,更加快捷方便。

本文环境软件明细:CentOS 7.2 |PostgreSQL (9.5.6)

步骤3:PostgreSQL主节点配置

1、主节点上执行以下命令安装PostgreSQL。

# yum update -y 
# yum install https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm -y
# yum install postgresql95-server postgresql95-contrib -y
# /usr/pgsql-9.5/bin/postgresql95-setup initdb
# systemctl enable postgresql-9.5.service
# systemctl start postgresql-9.5.service

2、主节点上创建进行主从复制的数据库账号,并设置密码及登录和备份权限。

# su - postgres
# psql
postgres=# CREATE ROLE replica login replication encrypted password 'replica';
CREATE ROLE
postgres=# SELECT usename from pg_user ;
usename  
----------
postgres
replica
(2 rows)
postgres=# SELECT rolname from pg_roles ;
rolname  
----------
postgres
replica
(2 rows)

3、修改pg_hba.conf,设置replica用户白名单。

# vim /var/lib/pgsql/9.5/data/pg_hba.conf

在IPv4 local connections段添加下面两行内容

host    all             all             192.168.1.0/24         md5
允许VPC网段中md5密码认证连接
host    replication     replica         192.168.1.0/24         md5
允许用户从replication数据库进行数据同步

4、修改postgresql.conf

# vim /var/lib/pgsql/9.5/data/postgresql.conf

设置以下参数

wal_level = hot_standby  启用热备模式
synchronous_commit = on  开启同步复制
max_wal_senders = 32     同步最大的进程数量
wal_sender_timeout = 60s 流复制主机发送数据的超时时间
max_connections = 100    最大连接数,从库的max_connections必须要大于主库的

5、重启服务

# systemctl restart postgresql-9.5.service

步骤4:PostgreSQL从节点配置

1、安装postgres。

# yum update -y
# yum install https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm -y
# yum install postgresql95-server postgresql95-contrib -y

2、使用pg_basebackup基础备份的工具制定备份目录。

# pg_basebackup -D /var/lib/pgsql/9.5/data -h 主节点IP -p 5432 -U replica -X stream -P
Password: 
30075/30075 kB (100%), 1/1 tablespace

3、添加并修改recovery.conf。

# cp /usr/pgsql-9.5/share/recovery.conf.sample /var/lib/pgsql/9.5/data/recovery.conf
# vim /var/lib/pgsql/9.5/data/recovery.conf

设置以下参数。

standby_mode = on  
# 声明此节点为从库
primary_conninfo = 'host=主节点IP port=5432 user=replica password=replica'  
# 对应主库的连接信息
recovery_target_timeline = 'latest' 
# 流复制同步到最新的数据

4、修改postgresql.conf。

# vim /var/lib/pgsql/9.5/data/postgresql.conf

设置以下参数。

max_connections = 1000             # 最大连接数,从节点需设置比主节点大
hot_standby = on                   # 开启热备
max_standby_streaming_delay = 30s  # 数据流备份的最大延迟时间
wal_receiver_status_interval = 1s  # 从节点向主节点报告自身状态的最长间隔时间
hot_standby_feedback = on          # 如果有错误的数据复制向主进行反馈

5、修改数据目录属组属主。

# chown -R postgres.postgres /var/lib/pgsql/9.5/data

6、启动服务,设置开机自启。

# systemctl start postgresql-9.5.service
# systemctl enable postgresql-9.5.service

步骤5:检测验证

1、主节点中可查看到sender进程。

# ps aux |grep sender
postgres  2916  0.0  0.3 340388  3220 ?        Ss   15:38   0:00 postgres: wal sender process replica 192.168.1.222(49640) streaming 0/F01C1A8

2、从节点中可查看到receiver进程。

# ps aux |grep receiver
postgres 23284  0.0  0.3 387100  3444 ?        Ss   16:04   0:00 postgres: wal receiver process   streaming 0/F01C1A8

3、主库中可查看到从库状态。

replication=# select * from pg_stat_replication;
pid  | usesysid | usename | application_name |  client_addr  | client_hostname | client_port |         backend_start         | backend_xmin |   state   | sent_location | write_locati
on | flush_location | replay_location | sync_priority | sync_state 
------+----------+---------+------------------+---------------+-----------------+-------------     +-------------------------------+--------------+-----------+---------------+-------------
---+----------------+-----------------+---------------+------------
2916 |    16393 | replica | walreceiver      | 192.168.1.222 |                 |       49640 |    2017-05-02 15:38:06.188988+08 |         1836 | streaming | 0/F01C0C8     | 0/F01C0C8   
| 0/F01C0C8      | 0/F01C0C8       |             0 | async
(1 rows)

原文链接

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
20天前
|
Linux
linux下搭建tftp服务器教程
在Linux中搭建TFTP服务器,需安装`tftp-server`(如`tftpd-hpa`)。步骤包括:更新软件包列表,安装`tftpd-hpa`,启动并设置开机自启,配置服务器(编辑`/etc/default/tftpd-hpa`),添加选项,然后重启服务。完成后,可用`tftp`命令进行文件传输。例如,从IP`192.168.1.100`下载`file.txt`: ``` tftp 192.168.1.100 <<EOF binary put file.txt quit EOF ```
29 4
|
5天前
|
XML Java 数据格式
Servlet 教程 之 Servlet 服务器 HTTP 响应 3
`Servlet`教程示例展示了如何创建一个HTTP响应,使用`@WebServlet("/Refresh")`的`Refresh`类继承`HttpServlet`。在`doGet`方法中,设置了`Refresh`头以每5秒自动刷新,并用`setContentType("text/html;charset=UTF-8")`设定内容类型。还使用`Calendar`和`SimpleDateFormat`获取并格式化当前时间显示。相应的`web.xml`配置指定了Servlet路径。当访问此Servlet时,页面将每5秒更新一次显示的系统时间。
16 4
|
6天前
|
安全 Unix Linux
Windows如何远程连接服务器?服务器远程连接图文教程
服务器操作系统可以实现对计算机硬件与软件的直接控制和管理协调,任何计算机的运行离不开操作系统,服务器也一样,服务器操作系统主要分为四大流派:Windows Server、Netware、Unix和Linux。今天驰网飞飞将和你分享Windows server远程连接图文教程,希望可以帮助到你
21 4
Windows如何远程连接服务器?服务器远程连接图文教程
|
14天前
|
弹性计算 应用服务中间件 Linux
阿里云ECS服务器上从零开始搭建nginx服务器
阿里云ECS服务器上从零开始搭建nginx服务器
|
24天前
|
弹性计算 关系型数据库 MySQL
阿里云数据库服务器价格表,数据库创建、连接和使用教程
阿里云数据库使用流程包括购买和管理。选择所需数据库类型如MySQL,完成实名认证后购买,配置CPU、内存和存储。确保数据库地域与ECS相同以允许内网连接。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码连接。同一VPC内的ECS需添加至白名单以进行内网通信。参考官方文档进行详细操作。
125 3
|
1月前
|
Shell Linux Apache
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
162 1
|
1月前
|
负载均衡 监控 关系型数据库
PostgreSQL从小白到高手教程 - 第48讲:PG高可用实现keepalived
PostgreSQL技术大讲堂 - 第48讲:PG高可用实现keepalived
65 1
|
1月前
|
存储 固态存储 网络安全
云服务器注册教程
本文概述了云服务器的优势,如价格亲民、按小时计费、SSD存储和高性能,并介绍了云服务器的注册及创建虚拟专用服务器的步骤。注册过程包括邮箱验证、激活账号和绑定支付方式。创建云服务器时,选择操作系统、计划、数据中心等配置,然后通过SSH连接。云服务器因其易用性和经济性受到开发人员和小型企业青睐。文章还提及了使用WordPress搭建个人博客的教程。
162 0
云服务器注册教程
|
1月前
|
Ubuntu JavaScript 关系型数据库
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
在阿里云Ubuntu 20.04服务器上部署Ghost博客的步骤包括创建新用户、安装Nginx、MySQL和Node.js 18.x。首先,通过`adduser`命令创建非root用户,然后安装Nginx和MySQL。接着,设置Node.js环境,下载Nodesource GPG密钥并安装Node.js 18.x。之后,使用`npm`安装Ghost-CLI,创建Ghost安装目录并进行安装。配置过程中需提供博客URL、数据库连接信息等。最后,测试访问前台首页和后台管理页面。确保DNS设置正确,并根据提示完成Ghost博客的配置。
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
|
1月前
|
存储 弹性计算 数据可视化
要将ECS中的文件直接传输到阿里云网盘与相册(
【2月更文挑战第31天】要将ECS中的文件直接传输到阿里云网盘与相册(
420 4