VastbaseG100集群部署实操

news/2024/9/20 2:44:55/文章来源:https://www.cnblogs.com/gaoyanbing/p/18419095

背景

近日的工作涉及到数据库的集群部署,为了熟悉过程,参考VastgbaseG100官方文档进行部署。

参考文档

https://docs.vastdata.com.cn/zh/docs/VastbaseG100Ver2.2.15/do...

实操

这里采用HAS+DCS+Vastbase的解决方案,详情可参考
海量智库第8期|Vastbase G100核心技术介绍之高可用软件实现原理

概述

总体包含dcs、vastbase、has的部署,并按照顺序依次部署。细节性的东西参考文档就行,不会描述,更多的是展示部署过程个各个步骤的截图

信息

IP信息
172.16.19.151~153
172.16.19.154 作为VIP
平台信息
系统:中科方德4.0
处理器:Intel x86

dcs

dcs节点

节点ip默认端口hostname
dcs节点1 172.16.19.151 2379、2380 vb1
dcs节点2 172.16.19.152 2379、2380 vb2
dcs节点2 172.16.19.153 2379、2380 dcs

配置

/etc/hosts

image.png

防火墙

直接关闭
image.png

安装

为了易于后续删除,二进制文件放在一个单独创建的目录。这里用/opt/vastdata/dcs存放相关文件

mkdir -p /opt/vastdata/dcs
获取安装程序

解压后将二进制文件放到/opt/vastdata/dcs/bin目录,并赋予执行权限
image.png

tree -L 2 .

image.png

添加配置文件

添加目录/opt/vastdata/dcs/etc存放配置文件,创建配置文件dcs.conf;添加目录data用于存放dcs的数据。
image.png
配置文件

  • 172.16.19.151
    image.png
  • 172.16.19.152
  • 172.16.19.153

其他节点修改ip和节点序号即可。

配置DCS服务

作为系统服务
在dcs目录创建dcs.service,并建立从系统目录到这里的软链接
image.png

创建软链接

ln -sf /opt/vastdata/dcs/dcs.service /usr/lib/systemd/system/dcs.service
配置其他节点

将本机上的配置文件复制到另外两台机器,并简单修改。

  • 要改ip和节点编号
  • 软链接别忘了创建
启动服务
systemctl daemon-reload
systemctl start dcs# 查看状态
systemctl status dcs

image.png

image.png

vastbase

第二步部署数据库(一主一备)172.16.19.151部署主库,172.16.19.152部署备库
数据库版本采用2.2.15

数据库节点

节点名称IP默认端口
数据库主节点 172.16.19.151 5432,5433,26001,26002,26003
数据库备节点 172.16.19.152 5432,5433,26001,26002,26003

安装数据库

和dcs放在同级目录,新建目录
/opt/vastdata/vastbase
image.png

将目录权限给数据库用户(这里使用vastbase)
chown -R vastbase:vastbase /opt/vastdata/vastbase
安装

获取安装包,按照单机安装的操作安装
安装路径选择上述目录
image.png

查看安装后目录
image.png

删掉omTmp并且取消软链接
image.png

主库配置
  • postgresql.conf
    在/opt/vastdata/vastbase/data/vastbase/postgresql.conf
    添加以下配置项

    #For Replication
    replication_type = 1
    application_name = 'vb1'
    recovery_max_workers = 1
    password_encryption_type=0
    replconninfo1 = 'localhost=172.16.19.151 localport=26001 localheartbeatport=26002 localservice=26003 remotehost=172.16.19.152 remoteport=26001 remoteheartbeatport=26002 remoteservice=26003'
    wal_level=hot_standby
    hot_standby=on
    vastbase_login_info=false 
    synchronous_commit=off
    synchronous_standby_names = '*'   # * for sync, empty for async
    remote_read_mode='non_authentication'
  • pg_hba.conf
    /opt/vastdata/vastbase/data/vastbase/pg_hba.conf
    添加
    image.png

    启动主库
    vb_ctl -M primary start

    创建用户
    image.png

    备库配置

  • 参考主库安装
  • 拷贝主库配置文件略作修改
  • postgresql.conf

    #For Replication
    replication_type = 1
    application_name = 'vb2'
    recovery_max_workers = 1
    password_encryption_type=0
    replconninfo1 = 'localhost=172.16.19.152 localport=26001 localheartbeatport=26002 localservice=26003 remotehost=172.16.19.151 remoteport=26001 remoteheartbeatport=26002 remoteservice=26003'
    wal_level=hot_standby
    hot_standby=on
    vastbase_login_info=false 
    synchronous_commit=off
    synchronous_standby_names = '*'   # * for sync, empty for async
    remote_read_mode='non_authentication'

    启动备库

    vb_ctl build

    使用vb_ctl query查看状态

    主库
    image.png
    备库
    image.png

has

HAS节点

节点名称IP默认端口
HAS1(数据库主节点) 172.16.19.151 8008
HAS2(数据库备节点) 172.16.19.152 8008

安装

和dcs、vastbase放在同一级目录
/opt/vastdata/has
获取压缩包并调整目录结构
image.png

image.png

配置HAS

配置文件放在/opt/vastdata/has/etc目录下
这里命名为vastbase.yml

scope: vastbase_ha_inst                                      # 集群实例名称
namespace: /vastbase/                                        # 集群实例所在的命名空间,默认是/service
name: 'vb1'                                       # 节点在集群内的名称,每个节点都必须不一样,通过hasctl list命令查看高可用集群状态时,在Member显示该名称restapi:listen: 172.16.19.151:8008                               # has服务监听的套接字,192.168.100.1为本节点的IP地址,下面的配置信息涉及192.168.100.1均表示本节点IP地址connect_address: 172.16.19.152:8008                       # 高可用集群内,其他节点通过本参数的地址访问本节点的has服务etcd:hosts: 172.16.19.151:2379,172.16.19.152:2379,172.16.19.153:2379    # dcs地址集bootstrap:dcs:ttl: 30                                                     # 持有单个DCS key的最长时间,单位秒,例如主节点持有leader key,如果不能再该时间内更新leader key,那么可以认为发生failoverloop_wait: 10                                               # has两次执行工作之间的时间间隔,单位秒retry_timeout: 10                                           # 重试次数maximum_lag_on_failover: 1048576                            # 从库允许被参与选举主库,最大的延迟字节数synchronous_mode: 'true'                                    # 是否开启同步模式,开启后,has会决定哪个节点是同步备库并覆盖数据库配置文件内的synchronous_standby_names参数postgresql:use_pg_rewind: true                                       # 是否使用rewind,必须开启use_slots: true                                           # 是否使用复制槽,必须开启parameters:                                               # 实验目的这次不配置该部分port: 5432                                              # 非必须initdb:- encoding: UTF8pg_hba:- host all vastbase 172.16.19.151/32 trust           # 配置集群内所有节点的${initdb_user}用户远程访问为trust,否则增量build失败,${initdb_user}为初始化实例的用户,一般与操作系统用户同名;如果是IPV6地址,需要替换IP为IPV6,例如:- host all ${initdb_user} 2001:0:3238:e1:63::133/24 trust   - host all vastbase 172.16.19.151/32 trust- host all vastbase 172.16.19.152/32 trust- host all all 0.0.0.0/0 md5                                # 此行配置必须在最后;如果是IPV6地址,需要替换IP为IPV6,例如:- host all all ::0/0 md5 postgresql:callbacks:on_start: /opt/vastdata/has/etc/has_vip.sh     # 回调脚本路径,一般用于管理VIPon_stop: /opt/vastdata/has/etc/has_vip.sh on_role_change: /opt/vastdata/has/etc/has_vip.sh listen: 0.0.0.0:5432connect_address: 172.16.19.151:5432use_unix_socket: trueuse_extreme_rto: false                                      # 如果开启极致RTO,该参数必须设置为true,开启极致RTO后,备机不可读pg_ctl_timeout: 600                                         # 数据库启动超时时间,根据实际情况设置data_dir: /opt/vastdata/vastbase/data/vastbase                      # 数据库实例路径config_dir: /opt/vastdata/vastbase/data/vastbase                    # 数据库实例配置文件路径bin_dir: /opt/vastdata/vastbase/bin                  # 数据库可执行文件路径vastbase_lib_dir: /opt/vastdata/vastbase/lib://opt/vastdata/vastbase/jre/lib/amd64:/opt/vastdata/vastbase/jre/lib/amd64/server         # 数据库共享库路径 amd64 for x86, aarch64 for armvastbase_home: /opt/vastdata/vastbase                # 数据库安装路径authentication:replication:username: tcpp                     #不能与初始化实例的用户同名password: tcpp@123                                     #需提前将用户的密码修改为本配置项的取值。即本样例中应在部署has前将vbadmin用户的密码修改为Vbase@admin。superuser:username: tcpp                     #不能与初始化实例的用户同名password: tcpp@123                                      #需提前将用户的密码修改为本配置项的取值。即本样例中应在部署has前将vbadmin用户的密码修改为Vbase@admin。parameters:                                                # 个性化配置部分,以下配置项建议写到该部分application_name: vb1                         # 数据库节点名称,建议与第3行的name参数保持一致,否则synchronous_mode开后后不生效,此外,此参数不要写在bootstrap部分archive_mode: on                                         # 是否开启归档,根据实际情况archive_command: 'cp %p /data/archive/%f'                # 根据实际情况配置archive_dest: '/opt/vastdata/vastbase/data/vastbase/archive'                            # 直接指定归档目录,效率比archive_command高,设置本参数后archive_command参数失效unix_socket_directory: '/tmp'replconninfo1: 'localhost=172.16.19.151 localport=55434 localheartbeatport=55435 localservice=55436 remotehost=172.16.19.152 remoteport=55434 remoteheartbeatport=55435 remoteservice=55436'

配置HAS服务

添加has.service
目录层级为
image.png

注意这里有一个has_env文件,在里面配置一些环境变量,不然启动会报错。这些变量在/home/vastbase/.Vastbase配置了,仍然无法获取到只能添加这么个文件

  • has.service
    image.png
  • has.env
    image.png

创建软链接

ln -sf /opt/vastdata/has/has.service /usr/lib/systemd/system/has.service

配置VIP

创建has_vip.sh按照模板修改就行。

启动HAS

因为用vastbase用户启动服务,需要将has目录的owner改为vastbase

systemctl daemon-reload
systemctl start has

查看最终结果

image.png

总结

目录总体结构

image.png

主要是为了熟悉集群搭建的步骤,遇到的问题没有详细描述了,还有一些细节的操作还是要阅读官网文档。遇到的问题主要在HAS配置上,(就是has.env那里面的环境变量读不到导致启动不了。。。)。至于为什么搞成这个目录格式呢?因为有个做rpm包的任务,可能安装之后就长成这个样,然后可以帮助自己明确最后做出来的rpm包的效果吧。一是目录效果,二是安装之后提供怎样的功能,三是搞完了知道怎么去验证做的对不对。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/799473.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络基础--UPnP基本原理-CSDN博客

网络基础--UPnP基本原理-CSDN博客网络基础--UPnP基本原理-CSDN博客 https://blog.csdn.net/jisuanji111111/article/details/122108226 文章浏览阅读1.4w次,点赞3次,收藏22次。介绍UPNP基本知识点,比较全面。转载自华三文档。_upnp 2024-09-03 13:57:361、简介 UPnP是通用即…

敏捷项目管理工具:团队高效协作的关键

敏捷项目管理:团队高效协作的关键​ 在当今快节奏的市场环境中,企业必须具备快速响应变化的能力。无论是产品研发、软件开发还是市场推广,灵活应对变化和高效管理项目已成为企业成功的关键。于是,敏捷开发这一理念越来越多地被各行业团队采纳,成为了他们高效协作、及时交付…

首个标准+首家通过!大模型媒体处理评估,阿里云智能媒体服务“卓越级”通过

中国信通院近期正式发布《大模型驱动的媒体生产与处理》标准,阿里云智能媒体服务,以“首批首家”通过卓越级评估,并在9大模块50余项测评中表现为“满分”。中国信通院近期正式发布《大模型驱动的媒体生产与处理》标准,阿里云智能媒体服务,以“首批首家”通过卓越级评估,并…

MAC地址+网络层

进制 二进制和十六进制之间 1个16进制可以用4个二进制表示,1:4关系1111是否取值8 4 2 1 取值所代表的数值 在一台交换机上每台设备间的物理链路:不是直连 -- 直接连接 逻辑状态:都处于互联状态,处于一条链路上 MAC地址 由两部分组成,前24位代表该供应商代码,由IEEE管理…

Kubernetes Service与服务发现

1. Service资源基础概念 1.1 Service资源 Service是Kubernetes标准的API资源类型之一为动态的Pod资源提供近似静态的流量入口服务发现:通过标签选择器筛选同一名称空间下的Pod资源的标签,完成Pod筛选实际上是由与Service同名的Endpoint或EndpointSlice资源及控制器完成流量调…

Qt::BlockingQueuedConnection 与 QMetaCallEvent

Qt 创建连接类型如果是 Qt::BlockingQueuedConnection,即sender thread 与 receiver thread 不同, 但是要求 sender signal 与 receiver slot 执行是 不同线程间的同步行为。也即:在sender signal 发出后 sender线程 要 等待 receiver 线程的 slot 执行完后才能继续 向后执行…

设备地址

设备地址 BLE的设备地址可以使用公共地址(Public Device Adress)或者随机地址(Random Device Address),一个BLE至少使用一种地址类型,当然也可以同时使用两种地址类型。 公共地址和随机地址一样,都是48位(6字节),BLE设备地址关系如下:公共地址:从IEEE申请(购买),I…

扫码详见阳子公众号

https://mp.weixin.qq.com/mp/qrcode?scene=10000004&size=102&__biz=MzkwNzc0MjQ1MA==&mid=2247484006&idx=1&sn=43425e98c08a3887b090c927d89cbe40&send_time= 或直接扫码:

使用Addressables+SpriteAtlas打包产生冗余

1)使用Addressables+SpriteAtlas打包产生冗余2)使用SBP打AssetBundle脚本引用丢失3)Unity构建后处理(IPostprocessBuildWithReport等接口)抛出异常后,构建不会停止4)Unity 2022.3.0版本使用Occlusion,PC运行良好但是安卓手机无效这是第400篇UWA技术知识分享的推送,精选…

如何编制一份数据分析报表?这篇文章告诉你重点

在当今数据驱动的时代,数据分析报表成为了企业决策中不可或缺的工具。它不仅可以帮助我们清晰地展现数据,还能揭示数据背后的趋势与问题,为管理者提供有力的支持。那么,如何编制一份高效、准确的数据分析报表呢?本文将从数据分析报表的分类、制作原则以及具体步骤来为你详…

centos7下安装Python3.7

centos7默认安装的是python2.7,然而python2基本上要淘汰了,所以有必要安装最新的python3 python,g++这些工具一般安装在/usr/bin目录里 通过指令ll python*可以看到python指向的是python2.7我们要安装python3,使python指向python3 下面开始具体步骤(参考其他大佬的方法,也…