使用阿里云服务器搭建PostgreSQL主从架构图文流程
阿里云百科分享使用阿里云服务器搭建PostgreSQL主从架构图文流程,PostgreSQL被业界誉为最先进的开源数据库,支持NoSQL数据类型(JSON/XML/hstore)。本文档介绍在CentOS 7操作系统的ECS实例上搭建PostgreSQL主从架构的操作步骤。
目录
前提条件
步骤一:选购ECS实例
步骤二:配置PostgreSQL主节点
步骤三:配置PostgreSQL从节点
步骤四:检测验证
前提条件
- 已注册阿里云账号。如还未注册,请先完成账号注册。
- 已在安全组入方向中添加规则放行5432端口。具体步骤,请参见添加安全组规则。
- ECS云服务器:aliyunbaike.com/go/ecs
- 实例规格:ecs.g6.large
- 操作系统:CentOS 7.2
- PostgreSQL:11
本教程基于yum方式手动安装并搭建PostgreSQL主从复制架构。
步骤一:选购ECS实例
搭建PostgreSQL主从复制架构,需要选购2台专有网络类型的ECS实例,一台ECS实例作为主节点,另一台ECS实例作为从节点。 具体操作,请参见使用向导创建实例。
说明 建议您不为ECS实例分配公网IP,按需购买弹性公网IP绑定至ECS实例,后续您可以根据实际情况考虑升级配置或调优架构。详情请参见申请弹性公网IP。
步骤二:配置PostgreSQL主节点
- 远程连接PostgreSQL主节点。
具体操作,请参见连接方式概述。
- 依次运行以下命令,安装PostgreSQL。
yum update -ywget --no-check-certificate https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpmrpm -ivh pgdg-redhat-repo-latest.noarch.rpmyum install postgresql11-server postgresql11-contrib -y/usr/pgsql-11/bin/postgresql-11-setup initdb说明 本教程以PostgreSQL 11版本为例。实际安装时,请您使用最新版本。
- 依次运行以下命令,启动服务并设置服务开机自启动。
systemctl start postgresql-11.service #启动服务systemctl enable postgresql-11.service #设置服务开机自启动 - 在主节点上创建数据库账号replica(用于主从复制),并设置密码及登录权限和备份权限。可以在阿里云CLUB中心:aliyun.club 领取云服务器专用的满减券。
- 运行以下命令,登录postgres用户。
su - postgres - 当显示
-bash-4.2$时表示成功登录,然后输入以下命令进入PostgreSQL交互终端。psql - 当显示
postgres=#时表示成功进入交互终端,然后为用户postgres设置密码,增强安全性。ALTER USER postgres WITH PASSWORD 'YourPassWord'; - 输入以下SQL语句创建数据库账号replica,并设置密码及登录权限和备份权限。本示例中将密码设置为
replica。CREATE ROLE replica login replication encrypted password 'replica'; - 查询账号是否创建成功。
返回结果如下,表示已创建成功。SELECT usename from pg_user;usename ---------- postgres replica (2 rows) - 查询权限是否创建成功。
返回结果如下,表示已创建成功。SELECT rolname from pg_roles;rolname ---------- postgres replica (2 rows) - 输入以下命令,并按
Enter退出SQL终端。\q - 输入以下命令,并按
Enter退出PostgreSQL。exit
- 运行以下命令,登录postgres用户。
- 运行以下命令,打开pg_hba.conf文件,设置replica用户白名单。
在vim /var/lib/pgsql/11/data/pg_hba.confIPv4 local connections段添加下面两行内容。host all all <从节点的VPC IPv4网段> md5 #允许VPC网段中md5密码认证连接 host replication replica <从节点的VPC IPv4网段> md5 #允许用户从replication数据库进行数据同步添加完成后,按Esc键,输入
:wq并按下enter键,保存并退出。 - 运行以下命令,打开postgresql.conf文件。
分别找到以下参数,并将参数修改为以下内容:vim /var/lib/pgsql/11/data/postgresql.conflisten_addresses = '*' #监听的IP地址 wal_level = hot_standby #启用热备模式 synchronous_commit = on #开启同步复制 max_wal_senders = 32 #同步最大的进程数量 wal_sender_timeout = 60s #流复制主机发送数据的超时时间 max_connections = 100 #最大连接数,从库的max_connections必须要大于主库的修改完成后,按Esc键,输入
:wq并按下enter键,保存并退出。 - 运行以下命令,重启服务。
systemctl restart postgresql-11.service
步骤三:配置PostgreSQL从节点
- 远程连接PostgreSQL从节点。
具体操作,请参见连接方式概述。
- 依次运行以下命令,安装PostgreSQL。
yum update -ywget --no-check-certificate https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpmrpm -ivh pgdg-redhat-repo-latest.noarch.rpmyum install postgresql11-server postgresql11-contrib -y - 运行以下命令,使用pg_basebackup基础备份工具指定备份目录。
本示例中pg_basebackup -D /var/lib/pgsql/11/data -h <主节点IP> -p 5432 -U replica -X stream -PPassword为replica。Password: 30075/30075 kB (100%), 1/1 tablespace - 依次运行以下命令,新建并修改recovery.conf配置文件。
cp /usr/pgsql-11/share/recovery.conf.sample /var/lib/pgsql/11/data/recovery.conf
分别找到以下参数,并将参数修改为以下内容:vim /var/lib/pgsql/11/data/recovery.confstandby_mode = on #声明此节点为从库 primary_conninfo = 'host=<主节点IP> port=5432 user=replica password=replica' #对应主库的连接信息 recovery_target_timeline = 'latest' #流复制同步到最新的数据修改完成后,按Esc键,输入
:wq并按下enter键,保存并退出。 - 运行以下命令,打开postgresql.conf文件。
分别找到以下参数,并将参数修改为以下内容:vim /var/lib/pgsql/11/data/postgresql.confmax_connections = 1000 # 最大连接数,从节点需设置比主节点大 hot_standby = on # 开启热备 max_standby_streaming_delay = 30s # 数据流备份的最大延迟时间 wal_receiver_status_interval = 1s # 从节点向主节点报告自身状态的最长间隔时间 hot_standby_feedback = on # 如果有错误的数据复制向主进行反馈修改完成后,按Esc键,输入
:wq并按下enter键,保存并退出。 - 运行以下命令,修改数据目录的属组和属主。
chown -R postgres.postgres /var/lib/pgsql/11/data - 依次运行以下命令,启动服务并设置服务开机自启动。
systemctl start postgresql-11.service #启动服务systemctl enable postgresql-11.service #设置服务开机自启动
步骤四:检测验证
检测验证需要主从节点之间存在数据交互,例如,从节点备份目录时,进行检测能够得到预期的结果。
pg_basebackup -D /var/lib/pgsql/96/data -h <主节点IP> -p 5432 -U replica -X stream -P
- 在主节点中运行以下命令,查看sender进程。
返回结果如下,表示可成功查看到sender进程。ps aux |grep senderpostgres 2916 0.0 0.3 340388 3220 ? Ss 15:38 0:00 postgres: wal sender process replica 192.168.**.**(49640) streaming 0/F01C1A8 - 在从节点中运行以下命令,查看receiver进程。
返回结果如下,表示可成功查看到receiver进程。ps aux |grep receiverpostgres 23284 0.0 0.3 387100 3444 ? Ss 16:04 0:00 postgres: wal receiver process streaming 0/F01C1A8 - 在主节点中进入PostgreSQL交互终端,输入以下SQL语句,在主库中查看从库状态。
返回结果如下,表示可成功查看到从库状态。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.**.** | | 49640 | 2017-05-02 15:38:06.188988+08 | 1836 | streaming | 0/F01C0C8 | 0/F01C0C8 | 0/F01C0C8 | 0/F01C0C8 | 0 | async (1 rows)
原文来自阿里云官方文档。
相关文章:
使用阿里云服务器搭建PostgreSQL主从架构图文流程
阿里云百科分享使用阿里云服务器搭建PostgreSQL主从架构图文流程,PostgreSQL被业界誉为最先进的开源数据库,支持NoSQL数据类型(JSON/XML/hstore)。本文档介绍在CentOS 7操作系统的ECS实例上搭建PostgreSQL主从架构的操作步骤。 目…...
Linux的基本权限(文件,目录)
文章目录 前言一、Linux权限的概念二、Linux权限管理 1.文件访问者分类2.文件类型和访问类型3.文件访问权限的相关设置方法三、目录的权限四、权限的总结 前言 Linux下一切皆文件,指令的本质就是可执行文件,直接安装到了系统的某种路径下 一、Linux权限的…...
网络编程(12): TCP重传、滑动窗口、流量控制、拥塞控制
1、TCP重传机制 通过序列号和确认号确保可靠传输,当发送端发送数据给接收到,接收端会返回一个确认号,表示收到消息了 超时重传:没有在指定时间内收到ACK报文 超时重传的两种可能:数据包丢失、确认包丢失超时重传时间RT…...
Docker安装RabbitMQ服务端
使用docker安装RabbitMQ服务端 1、搜索镜像 docker search rabbitmq2、拉取镜像 默认拉取最后一个版本,可以在后面加版本号拉取指定版本 docker pull rabbitmq 3、运行镜像 docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 rabbitmq4、查看…...
vueuse常用方法
useDateFormat 时间格式化 <script setup lang"ts">import { useNow, useDateFormat } from vueuse/coreconst formatted useDateFormat(useNow(), YYYY-MM-DD HH:mm:ss)</script><template><div>{{ formatted }}</div> </templa…...
选择大型语言模型自定义技术
推荐:使用 NSDT场景编辑器 助你快速搭建可二次编辑器的3D应用场景 企业需要自定义模型来根据其特定用例和领域知识定制语言处理功能。自定义LLM使企业能够在特定的行业或组织环境中更高效,更准确地生成和理解文本。 自定义模型使企业能够创建符合其品牌…...
算法概述-Java常用算法
算法概述-Java常用算法 1、算法概念2、算法相关概念3、算法的性能评价4、算法应用归纳 1、算法概念 广泛算法定义:算法是模型分析的一组可行性的、确定的和有穷的规则。 经典算法特征:有穷性、确切性、输入、输出和可行性。 常用的算法包括递推、递归、穷…...
CCLINK转MODBUS-TCP网关cclink通讯接线图 终端电阻
大家好,今天我们要聊的是生产管理系统中的CCLINK和MODBUS-TCP协议,它们的不同使得数据互通比较困难,但捷米JM-CCLK-TCP网关的出现改变了这一切。 1捷米JM-CCLK-TCP是一款自主研发的CCLINK从站功能的通讯网关,它的主要功能是将各种…...
香蕉派 BPI-P2 Pro采用RK3308芯片,512M内存,8G存储,支持PoE供电
Banana Pi BPI-P2 pro(Armsom pro)是一款基于瑞芯瑞(Rockchip) RK3308B-S芯片的开发板。采用高性能4核ARM Cortex-A35处理器,512M RAM内存。和8G eMMC板载存储,支持PoE网线供电功能。芯片具有丰富的接口,如I2S、PCM、TDM、I2C、UART、SPDIF、…...
「隐语小课」拆分学习之“水平拆分学习”
一、引言 拆分学习是 2018 年由 MIT 最先提出的分布式算法。本文结合该领域的相关英文文献,介绍水平拆分学习的基本方法,同时还将对比拆分模型与中心化模型、联邦模型在不同条件下模型效率和准确性。拆分学习作为主流的隐私计算学习范式之一,…...
WPF--关于Action事件小结
WPF--关于Action事件小结 1.需要类实例去调用事件建立订阅关系 public event Action<int, object> MaintainEvent; new GP1().MaintainEvent NormalCmdAction; 2.static用处--在不便实例的时候,可以直接由类调用 public static event Action<int, objec…...
创建一个 React+Typescript 项目
接下来 我们来一起探索一下用TypeScript 来编写react 这也是一个非常好的趋势,目前也非常多人使用 那么 我们就先从创建项目开始 首先 我们先找一个 或者 之前创建一个目录 用来放我们的项目 然后 在这个目录下直接输入 例如 这里 我想创建一个叫 tsReApp 的项目…...
Java课题笔记~ 数据提交的方式
前四种数据注入的方式,会自动进行类型转换。但无法自动转换日期类型。 (1)单个数据(基本数据类型)注入 在方法中声明一个和表单提交的参数名称相同的参数,由框架按照名称直接注入。 (2&#x…...
VUE3给页面添加按钮事件
在Vue 3中,可以通过使用setup函数来添加事件和自定义逻辑。下面是一个示例代码,演示了如何添加页面上的altb事件 <template><div><p>Press Alt B to trigger the event!</p></div> </template><script setup&g…...
基于centos7.9通过nginx实现负载均衡以及反向代理
摘要:负载均衡: 负载均衡是一种技术,用于在多个服务器之间分发传入的网络流量,以平衡服务器的负载,提高系统的可用性和性能。当您有多台服务器时,您可以使用负载均衡将请求分发到这些服务器上,从…...
前端原生写自定义旋转变换轮播图
html部分: <div class"banner_box"><div class"swiperWrapper" v-show"bannerList.length>0"><div class"swiper-item" :id"swiperSlide${index}" :class"{active:index0,next:index1,pr…...
linux tomcat server.xml 项目访问路径变更不生效
如果想改成默认的127.0.0.1:8080 访问项目 先确定更改的作用文件 server.xml 的 host:appBase 标签 默认找到appBase webapps 下的war包,并解压,解压后的appname为访问路径 也就变成了 127.0.0.1:8080/appname host:Context:path 标签 appBase的 优先…...
介绍原型模式:快速构建和复制对象的设计模式
经过瀑布模式之后,我们不禁想要用模型解决更多的问题,最重要的就是不再单向行径。 由此,介绍 原型模式, 所谓原型,就是我们有一个框架或者初始角色。我们可以根据项目的不同,对它进行不同的修改࿰…...
Unity的TimeScale的影响范围分析
大家好,我是阿赵。 这期来说一下Unity的TimeScale。 一、前言 Unity提供了Time这个类,来控制时间。其实我自己倒是很少使用这个Time,因为做网络同步的游戏,一般是需要同步服务器时间,所以我比较多是在使用System.Date…...
爬虫逆向实战(五)--猿人学第三题
一、数据接口分析 主页地址:猿人学第三题 1、抓包 通过抓包可以发现数据接口是api/match/3 2、判断是否有加密参数 请求参数是否加密? 无请求头是否加密? 无响应是否加密? 无cookie是否加密? 无 二、发送请求 …...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
