首页 > 其他分享 >一套集群实时在线扩容为两套集群方案

一套集群实时在线扩容为两套集群方案

时间:2024-03-28 11:44:05浏览次数:25  
标签:gs 实时 GAUSSDATA 集群 pg conf 两套 replicator

一套集群实时在线扩容为两套集群方案
解决问题:当一套集群 A 承担不了业务压力,需要在 A 集群在线情况下,扩出来一套与 A 集群完全一样的 B 集群,之后从业务层面控制 A 和 B 各自承担原 A 承担的一半业务压力。

1、配置 A 集群
1.1 A 集群创建用户并赋权
select from pg_user where ; --确定用户是否已存在,如果用户已经存在只需要赋SYSADMIN权限
CREATE USER replicator WITH PASSWORD "
";
alter role replicator replication;
alter role replicator SYSADMIN;
1.2 A 配置白名单
gs_guc reload -N all -I all -h "host replication all ..
.
/0 md5"
2、配置 B 集群
2.1 B 集群搭建好
gs_om -t status --detail 查看集群状态正常
2.2 B 集群配置白名单
gs_guc reload -N all -I all -h "host replication all .../0 md5"
2.3 B 集群停库
gs_om -t stop
2.4 B 集群备份配置文件
​ B 集群主节点备份 postgresql.conf pg_hba.conf 之后清空 B 集群 dn 目录下所有内容,包括 pg_xlog 等软连接下的数据

cp $GAUSSDATA/postgresql.conf ~/
cp $GAUSSDATA/pg_hba.conf ~/
rm -rf B集群主节点$GAUSSDATA下所有内容
2.5 B 集群主节准备 recover.conf
vi ~/recovery.conf

standby_mode = 'on'
recovery_target_timeline = 'latest'
primary_conninfo='host=A集群监听ip port=A集群端口 user=replicator password=****'
2.6 B 集群主节点上做备份
gs_basebackup -D [B集群dn目录] -h [A集群ip] -p [A 集群port] -U replicator

需要两次输入replicator用户密码

2.7 B 集群主节点恢复配置问题件
cp ~/postgresql.conf $GAUSSDATA/
cp ~/pg_hba.conf $GAUSSDATA/
cp ~/recovery.conf $GAUSSDATA/
2.8 B 集群主节点恢复原有的软连接形态
mv $GAUSSDATA/pg_xlog/* /app/ogxlog
ln -svf /app/ogxlog $GAUSSDATA/pg_xlog
2.9 B 集群主节点已 primary 方式拉起
gs_ctl start-D $GAUSSDATA -M primary
2.10 A 集群验证流复制效果
gs_ctl query -D $GAUSSDATA

A上只会显示B主节点的复制关系

select * from pg_replication_slots ;
select * from pg_stat_replication ;
SELECT pg_current_xlog_location() ;
2.11 删除 B 集群主节点 dn 目录下 recovery.conf 文件
mv $GAUSSDATA/dn1/recovery ../
2.12 B 集群备节点拉起
gs_ctl build -D $GAUSSDATA -M standby
2.13 AB 集群验证复制效果
gs_ctl query -D $GAUSSDATA

A上只会显示B主节点的复制关系

select * from pg_replication_slots ;
select * from pg_stat_replication ;
SELECT pg_current_xlog_location() ;
3 断开业务等数据集追齐

断开全量写业务之后,在lsn追齐后校验AB集群数据完整性校验?

AB集群全量表分别做checksum(回所有输入值的CHECKSUM值。使用该函数可以用来验证openGauss数据库(不支持openGauss之外的其他数据库)的备份恢复或者数据迁移操作前后表中的数据是否相同。在备份恢复或者数据迁移操作前后都需要用户通过手工执行SQL命令的方式获取执行结果,通过对比获取的执行结果判断操作前后表中的数据是否相同)
select checksum(A集群_表1::text) from A集群_表1;
select checksum(B集群_表1::text) from B集群_表1;
4 断开流复制关系
--A集群回收replicator sysadmin权限
revoke all privileges from replicator;
--B集群回收replicator sysadmin权限
revoke all privileges from replicator;
--核对replicator用户权限
select * from pg_roles where rolname = 'replicator';

重启B集群

gs_om -t restart
至此两套数据完全一致的库可交由业务层面做业务分离

标签:gs,实时,GAUSSDATA,集群,pg,conf,两套,replicator
From: https://www.cnblogs.com/helloopenGauss/p/18101255

相关文章

  • 最新AI创作系统/ChatGPT商业运营版网站程序源码,支持ai绘画(MJ),支持GPT4,实时语音识别输入
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录目录文章目录前言一、系统更新日志二、功能总结前言最新AI创作系统/ChatGPT商业运营版网站程序源码,支持ai绘画(MJ),支持GPT4,实时语音识别输入,免费更新版本一、系统更新日志最新更......
  • 如何实现Redis集群的高可用性
    在实际应用中,确保Redis集群的高可用性是至关重要的。以下是一些常见的实现高可用性的方法和相关代码示例。1、主从复制(Master-SlaveReplication):原理:主节点负责处理数据写入操作,而从节点则从主节点复制数据。这样,即使主节点发生故障,从节点可以升级为主节点,继续提供服务......
  • 暖心推荐:三螺杆泵 IMO中国ACE038L3NVBP 2024已更新(每日/实时)
    暖心推荐:三螺杆泵IMO中国ACE038L3NVBP2024已更新(每日/实时)暖心推荐:三螺杆泵IMO中国ACE038L3NVBP2024已更新(每日/实时)暖心推荐:三螺杆泵IMO中国ACE038L3NVBP2024已更新(每日/实时)ACG052N7NVBP进口三螺杆泵组瑞典IMO泵IMO双螺杆泵IMO三螺杆泵瑞典IMO工业公司,......
  • Centos7.9 部署mongodb高可用集群 3节点
    一、部署准备1.三台节点准备192.168.145.172192.168.145.173192.168.145.1742.官网地址:社区版传送门3.选择对应的版本并下载4.创建用于存放数据、日志文件和配置文件的文件夹mkdir-p/data/mongodbmkdir/var/log/mongodbmkdir/etc/mongodb5.解压安装包,配置环境......
  • 股票行情数据API | 实时行情数据接口websocket接入方法
    今天给大家带来一个技术干货分享,如何通过接口API订阅并接入实时行情数据源报价,它的方法与步骤一、API地址及传参说明支持以下产品品类:美股、港股、A股、外汇、贵金属、商品、数字币github:https://github.com/alltick/realtime-forex-crypto-stock-tick-finance-websocket-a......
  • 【Oracle】获取指定用户的所有表的行数(实时的)
    #!/bin/bash#ORACLE_USER="username"ORACLE_PASSWORD="password"ORACLE_HOST="hostname"ORACLE_PORT="port"ORACLE_SID="SID"#rowcountfunctionget_table_row_count(){localtable_name=$1sqlplu......
  • 二进制部署elasticsearch集群
    部署elasticsearch7.17.3版本背景:  业务有需求看evenet事件,由于etcd集群中的eventkey频繁打到200w+,对etcd集群压力非常大,每次都需要手动删除eventkey,非常耗时间,而且风险特别好,恢复时间慢等缺点。解决方案:  1,拆分etcd集群中的eventkey,在本机上创建一个新的etcd集群,......
  • 集群聊天服务器与客户端开发
    服务器服务技术特点如何使用依赖库客户端服务器服务器代码在https://gitee.com/ericling666/sponge,对应的客户端源代码在https://gitee.com/ericling666/spongeclient。对本项目的演示,请看视频【集群聊天服务器与仿微信客户端开发,服务器基于muduo,mysql,redis,客户端基......
  • Linux - 搭建一套Apache大数据集群
     一、服务器操作系统主机名操作系统node01Centos7.9node02Centos7.9node03Centot7.9 二、大数据服务版本服务版本下载Zookeeper3.5.7DownloadHadoop3.3.6DownloadHive3.xDownloadHbase2.xDownloadSpark3.xDownload......
  • 一套集群实时在线扩容为两套集群方案
    一套集群实时在线扩容为两套集群方案解决问题:当一套集群A承担不了业务压力,需要在A集群在线情况下,扩出来一套与A集群完全一样的B集群,之后从业务层面控制A和B各自承担原A承担的一半业务压力。1、配置A集群1.1A集群创建用户并赋权selectfrompg_userwhere;......