配置 `PostgreSQL` 与 `Keepalived` 以实现高可用性
配置 PostgreSQL 与 Keepalived 以实现高可用性通常包括以下步骤:
PostgreSQL 配置
-
安装 PostgreSQL:在两台服务器上安装相同版本的 PostgreSQL。
sudo yum install postgresql-server postgresql-contrib -
初始化数据库:在两台服务器上初始化 PGDATA 目录。
sudo postgresql-setup initdb -
配置主从复制:设置一台服务器为主节点,另一台为从节点。
-
在主服务器上:
- 修改
postgresql.conf文件以允许复制。wal_level = replica max_wal_senders = 3 wal_keep_segments = 64 archive_mode = on archive_command = 'cp %p /path_to_archive/%f' - 在
pg_hba.conf文件中允许从服务器的连接。host replication all 192.168.9.183/32 md5
- 修改
-
在从服务器上:
- 停止 PostgreSQL 服务。
sudo systemctl stop postgresql - 清空 PGDATA 目录。
- 从主服务器上使用
pg_basebackup进行基础备份。pg_basebackup -h 192.168.9.195 -D /var/lib/pgsql/data -U replicator -v -P --wal-method=stream - 创建
recovery.conf文件以连接到主服务器。standby_mode = 'on' primary_conninfo = 'host=192.168.9.195 port=5432 user=replicator password=yourpassword' trigger_file = '/tmp/postgresql.trigger.5432'
- 停止 PostgreSQL 服务。
-
-
启动 PostgreSQL 服务:在两台服务器上启动服务。
sudo systemctl start postgresql
Keepalived 配置
-
安装 Keepalived:如前所述,在两台服务器上安装
keepalived。
sudo yum install keepalived -y -
配置 Keepalived:编辑
/etc/keepalived/keepalived.conf文件,在两台服务器上配置主从。-
在主服务器上:
vrrp_instance VI_1 {state MASTERinterface ens160virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.9.200}track_script {chk_postgresql} }vrrp_script chk_postgresql {script "/usr/lib/keepalived/check_postgres.sh"interval 2weight 2 } -
在从服务器上:
vrrp_instance VI_1 {state BACKUPinterface ens160virtual_router_id 51priority 50advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.9.200}track_script {chk_postgresql} }vrrp_script chk_postgresql {script "/usr/lib/keepalived/check_postgres.sh"interval 2weight 2 }
-
-
创建 PostgreSQL 检查脚本:在两台服务器上创建脚本
/usr/lib/keepalived/check_postgres.sh,用于检查 PostgreSQL 服务状态。#!/bin/bash PSQL="/usr/bin/psql" PGUSER="postgres" PGDATABASE="yourdatabase"$PSQL -U $PGUSER -d $PGDATABASE -c "select 1;" >/dev/null 2>&1 if [ $? != 0 ]; thenexit 1 fi exit 0确保脚本可执行:
sudo chmod +x /usr/lib/keepalived/check_postgres.sh -
启动 Keepalived:在两台服务器上启动 Keepalived 服务。
sudo systemctl start keepalived sudo systemctl enable keepalived
测试和
验证
- 验证主从复制:确保主从复制正确设置且在运行。
- 测试 Failover:尝试停止主服务器上的 PostgreSQL 服务,确保 Keepalived 将虚拟 IP 地址转移到从服务器。
- 监控日志:查看 Keepalived 和 PostgreSQL 日志,确保没有错误。
配置 PostgreSQL 和 Keepalived 时,一定要考虑数据一致性和故障转移的机制。这通常涉及仔细的规划和测试,以确保在生产环境中可靠地运行。
相关文章:
配置 `PostgreSQL` 与 `Keepalived` 以实现高可用性
配置 PostgreSQL 与 Keepalived 以实现高可用性通常包括以下步骤: PostgreSQL 配置 安装 PostgreSQL:在两台服务器上安装相同版本的 PostgreSQL。 sudo yum install postgresql-server postgresql-contrib初始化数据库:在两台服务器上初始化…...
C++: int转换成LPCSTR
LPCSTR类型是指向字符常量的指针,因此需要将int类型转换为字符串类型,然后再将字符串类型转换为LPCSTR类型。 以下是一个示例代码: int num 123; char str[10]; sprintf(str, "%d", num); // 将int类型转换为字符串类型 LPCSTR …...
kettle官网和中文网地址
整理的kettle相关的网站地址: github 地址: https://github.com/pentaho/pentaho-kettle kettle下载目录: https://sourceforge/projects/pentaho/files/ kettle9.2下载地址: https://sourceforge/projects/pentaho/files/Penta…...
纽扣电池类产品上架亚马逊澳大利站认证标准要求AS/NZS 62368
纽扣电池一般来说常见的有充电的和不充电的两种, 充电的包括3.6V可充锂离子扣式电池(LIR系列),3V可充锂离子扣式电池(ML或VL系列);不充电的包括3V锂锰扣式电池(CR系列)及1.5V碱性锌锰扣式电池(LR及SR系列)。 澳大利亚*已经发布了经批准的《消…...
网站监控的重要性及实施策略
随着互联网的快速发展,网站已经成为企业和个人不可或缺的在线服务平台。然而,网站的安全性和稳定性一直是企业及个人非常关注的问题。一旦网站出现故障或者被攻击,将会给企业和个人带来严重的损失。因此,实施有效的网站监控策略对…...
亚马逊车灯外贸出口CE认证标准办理解析
车灯是车辆夜间行驶在道路照明的工具,也是发出各种车辆行驶信号的提示工具。车灯一般分为前照灯、尾灯、转向灯等。车灯出口欧盟需要办理CE认证。 CE认证是欧盟对进入欧洲市场的产品强制性的认证标志,是指符合欧盟安全、健康、环境保护等标准和要求的产…...
windows 查看防火墙设置命令使用方法
点击键盘上windows键,输入cmd,选择以管理员身份运行 输入下面命令查看使用说明 netsh advfirewall firewall add rule ? 发现显示不全,不方便看 可以输入下面命令,生成文件,方便查看 netsh advfirewall firewall ad…...
[Linux版本Debian系统]安装cuda 和对应的cudnn以cuda 12.0为例
写在前面 先检查自己有没有安装使用wget的命令,没有的话输入下面命令安装: apt-get install wget -y查看gcc的安装 sudo apt install gcc #安装gcc gcc --version #查看gcc是否安装成功 #若上述命令不成功使用下面的命令尝试之后再执行上面…...
NextJS开发:解决React Hook useEffect has a missing dependency
NextJS编译出现如下错误,原因是在使用useEffect时,当我们将函数的声明放在useEffect函数外面时 或者使用useState定义的历史变量,会报警告 Warning: React Hook useEffect has a missing dependency解决方法: 1、逐个添加注释忽略警告 useEffect(() &…...
交叉编译tcpdump
1、下载libpcap源码和tcpdump源码【最后有链接】 2、先编译libpcap 解压后,进入目录,执行以下命令: mkdir build cd build ../configure --hostarm-linux CCarm-gcc7.3-linux-musleabi-gcc --prefix$PWD/install make make install3、再编译…...
万字解析设计模式之 装饰者模式
一、装饰者模式 1.1概述 装饰者模式是一种结构型设计模式,它允许在运行时动态地为一个对象添加额外的职责。它以一种透明的方式来扩展对象的功能,而不需要通过子类来实现。在装饰者模式中,有一个基本对象,也称为组件,…...
生成对抗网络Generative Adversarial Network,GAN
Basic Idea of GAN Generation(生成器) Generation是一个neural network,它的输入是一个vector,它的输出是一个更高维的vector,以图片生成为例,输出就是一张图片,其中每个维度的值代表生…...
C++入门第八篇---STL模板---list的模拟实现
前言: 有了前面的string和vector两个模板的基础,我们接下来就来模拟实现一下list链表模板,我还是要强调的一点是,我们模拟实现模板的目的是熟练的去使用以及去学习一些对于我们本身学习C有用的知识和用法,而不是单纯的…...
论文导读 | 大语言模型与知识图谱复杂逻辑推理
前 言 大语言模型,尤其是基于思维链提示词(Chain-of Thought Prompting)[1]的方法,在多种自然语言推理任务上取得了出色的表现,但不擅长解决比示例问题更难的推理问题上。本文首先介绍复杂推理的两个分解提示词方法&a…...
数智竞技何以成为“科技+体育”新样本?
文 | 智能相对论 作者 | 青月 “欢迎来到,钢铁突袭。” 三人一组,头戴VR设备,中国香港队和泰国队在数实融合的空间里捉对厮杀,通过互相射击对方能量铠甲获取积分。 虽然双方都展现出了极强的机动性,但显然中国香港队…...
Vue项目Jenkins自动化部署
1. 需求描述 我们希望提交uat分支时,UAT项目能够自动发布,提交master分支时,无需自动发布,管理员手工发布 2. 效果展示 3. 采用技术 Jenkins + K8S + Docker + Nginx 4. 具体实现 4.1 编写default.conf 在Vue项目根目录新建default.conf文件,主要进行代理配置、首页…...
特效!视频里的特效在哪制作——Adobe After Effects
今天,我们来谈谈一款在Adobe系列中推出的一款图形视频处理软件,适用于从事设计和视频特技的机构,包括电视台、动画制作公司、个人后期制作工作室以及多媒体工作室的属于层类型后期软件——Adobe After Effects。 Adobe After Effects…...
2023年中国醇酸树脂涂料需求量、应用领域及市场规模前景分析[图]
醇酸树脂指多元醇和多元酸与脂肪酸经过酯化缩聚生成的高聚物,其由邻苯二甲酸酐、多元醇和脂肪酸或甘油三脂肪酸酯缩合聚合而成。醇酸树脂固化成膜后,具有耐磨性好、绝缘性佳等优势,在涂料领域应用广泛。2022年醇酸树脂产量约336.3万吨&#x…...
【Linux进阶之路】动静态库
文章目录 回顾一. 静态库1.代码传递的方式2.简易制作3.原理 二. 动态库1.简易制作2.基本原理 尾序 回顾 前面在gcc与g的使用中,我们简单的介绍了动态库与静态库的各自的优点与区别: 动态链接库,也就是所有的程序公用一份代码,虽然方便省空间&…...
Ubuntu磁盘扩展容量
gparted扩展...
从人眼到算法:TV Line分辨率检测的实践与演进
1. TV Line检测技术的本质与演进 第一次接触TV Line检测是在2013年,当时我负责一款行车记录仪的摄像头模组验收。供应商提供的测试报告显示"分辨率达到1000线",但实际拍摄效果却模糊不清。这个矛盾让我开始深入研究TV Line检测的本质。 TV L…...
多模态AI在病理诊断中的应用:从图像识别到跨模态协同决策
1. 项目概述:当AI“看见”并“理解”癌症在病理诊断领域,印戒细胞癌一直是一个让医生们倍感棘手的对手。这种癌细胞形态特殊,细胞质内充满黏液,将细胞核挤到一侧,形如一枚戒指,因而得名。它的狡猾之处在于&…...
2025网盘直链下载助手完整指南:八大平台高速下载解决方案
2025网盘直链下载助手完整指南:八大平台高速下载解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天…...
Origin绘图进阶:别再只用柱状图了,试试这个‘径向堆积条形图’让你的报告脱颖而出
Origin数据可视化革命:用径向堆积条形图打造高辨识度报告 科研工作者和商业分析师们是否已经厌倦了千篇一律的柱状图和折线图?在数据爆炸的时代,如何让您的报告在众多文档中脱颖而出?OriginPro中的径向堆积条形图可能是您一直在寻…...
nCode DesignLife信号处理实战:手把手教你分离振动与回弹载荷做精准疲劳分析
nCode DesignLife信号处理实战:振动与回弹载荷分离的精准疲劳分析方法 在汽车悬挂系统、航空航天结构等工程领域,非线性几何载荷下的疲劳分析一直是仿真工程师面临的挑战。传统方法往往将正负混合载荷视为单一信号处理,导致热点区域识别不准确…...
从硬接线到软报文:GOOSE通信如何重塑变电站的“神经网络”?
从硬接线到软报文:GOOSE通信如何重塑变电站的“神经网络”? 在电力系统自动化领域,变电站的通信架构正经历着一场静默却深刻的革命。十年前,走进一座110kV变电站的控制室,映入眼帘的是密密麻麻的电缆沟和纵横交错的二次…...
Linux磁盘告急:巧用ncdu定位并清理/dev/sda高占用
1. 当Linux服务器突然报警:磁盘爆满的紧急处理 "服务器磁盘空间不足"这个红色警告突然跳出来时,相信很多运维同学都会心头一紧。我上周就遇到了这个情况:凌晨三点收到报警短信,/dev/sda6分区显示100%占用,导…...
AI编码审计工具whatdiditdo:高效复盘与安全审查指南
1. 项目概述:当AI替你写代码后,如何快速复盘? 作为一名每天和代码打交道的开发者,我最近遇到了一个甜蜜的烦恼:AI编码助手(比如Cursor、GitHub Copilot、Claude Code)用得太顺手了,它…...
[具身智能-607]:树莓派 4B/5 或 RK3568/RK3588 开发板的电机电气接口与通信协议
一、树莓派 4B / 5(Raspberry Pi 4B/5)1. 核心电气接口(电机控制)GPIO 接口(40-pin)电平:3.3V(严禁直接 5V)数量:~28 个通用 GPIO,支持 PWM、UART…...
智能体任务编排实战:基于DAG的自动化流程与生产级部署指南
1. 项目概述:从“Agent-Task”看智能体任务编排的实战价值最近在开源社区里,KwokKwok/agent-task 这个项目引起了我的注意。乍一看名字,你可能会觉得它又是一个关于AI智能体(Agent)的通用框架,但深入探究后…...
