暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

海量 Vastbase G100 V2.2.15 安装部署手册

原创 Lucifer三思而后行 2025-06-09
882

大家好,这里是 DBA 学习之路,专注于提升数据库运维效率。

目录

前言

上周海量数据开展了一个《海量数据Vastbase数据公开课》,参与人数不少,我有幸获得了 VCA 的「免费认证考试资格」,课程培训大纲如下:

VCA 认证已考:

本文主要记录 Vastbase G100 V2.2.15 的安装步骤以及经验总结,让大家更容易安装 Vastbase,安装过程很丝滑。

介绍

Vastbase G100 是海量数据基于开源 openGauss 内核开发的企业级关系型数据库,旨在提供强竞争力的事务型、集中式高可用数据库。

  • 支持 SQL2003 标准语法。
  • 对 Oracle、MySQL、Postgres、SQL Server 做了大量的兼容性支持,同时,提供高效的异构数据库迁移工具exBase,实现应用平滑迁移。
  • 多种存储模式支持复合业务场景,新引入提供原地更新存储引擎。
  • Paxos 一致性日志复制协议,主备模式,CRC 校验支持高可用。
  • NUMA-AWARE、日志无锁并行写入、线程池、CSN 事务快照技术合力构筑高性能。
  • 支持全密态计算、账本数据库等安全特性,提供全方位端到端的数据安全保护。

Vastbase G100 是集中式数据库系统,在这样的系统架构中,业务数据存储在单个物理节点上,数据访问任务被推送到服务节点执行,通过服务器的高并发,实现对数据处理的快速响应。同时通过日志复制可以把数据复制到备机,提供数据的高可靠和读扩展。

Vastbase支持单机安装和高可用集群两种部署方式:

  • 单机部署时,可在一个主机部署多个数据库实例,但为了数据安全,不建议用户这样部署。
  • 集群部署支持一台主机和最少一台备机。

环境准备

本文演示环境配置如下:

项目 配置
主机名 vastbase
操作系统 openEuler 22.03 SP3
CPU架构 x86_64
内存 16GB
硬盘 100GB

安装前配置

检查操作系统版本

检查操作系统版本信息:

[root@vastbase ~]# cat /etc/os-release NAME="openEuler" VERSION="22.03 (LTS-SP3)" ID="openEuler" VERSION_ID="22.03" PRETTY_NAME="openEuler 22.03 (LTS-SP3)" ANSI_COLOR="0;31"

关闭防火墙

为确保 Vastbase 的正常使用,需禁用防火墙:

[root@vastbase ~]# systemctl stop firewalld.service [root@vastbase ~]# systemctl disable firewalld.service Removed /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

关闭 selinux

建议关闭 SELNUX,防止造成一些不必要的问题:

## 这里使用 setenforce 0 临时生效 [root@vastbase ~]# /usr/sbin/setenforce 0 [root@vastbase ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config [root@vastbase ~]# sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: permissive Mode from config file: disabled Policy MLS status: enabled Policy deny_unknown status: allowed Memory protection checking: actual (secure) Max kernel policy version: 33

可以看到 Mode from config file 是 disabled,代表已经禁用 selinux。

安装依赖

需要提前配置 YUM 源,可参考文章:DBA 必备:Linux 软件源配置全攻略

## 挂载本地 ISO 镜像 [root@vastbase ~]# mount /dev/sr0 /mnt/ mount: /mnt: WARNING: source write-protected, mounted read-only. ## 备份系统初始配置文件 [root@vastbase ~]# mkdir -p /etc/yum.repos.d/bak [root@vastbase ~]# mv /etc/yum.repos.d/* /etc/yum.repos.d/bak ## 一键配置软件源,默认 ISO 安装镜像挂载在 /mnt 目录下 [root@vastbase ~]# cat <<-EOF > /etc/yum.repos.d/local.repo [openEuler] name=openeuler baseurl=file:///mnt enabled=1 gpgcheck=1 gpgkey=file:///mnt/RPM-GPG-KEY-openEuler EOF

安装 Vastbase G100 数据库的基础依赖包如下:

[root@vastbase ~]# yum install -y zlib-devel libaio libuuid readline-devel krb5-libs libicu libxslt tcl perl openldap pam openssl-devel libxml2 bzip2

openEuler x86 环境中需要安装 libnsl:

[root@vastbase ~]# yum install -y libnsl

检查是否安装成功:

[root@vastbase ~]# rpm -q zlib-devel libaio libuuid readline-devel krb5-libs libicu libxslt tcl perl openldap pam openssl-devel libxml2 bzip2 libnsl zlib-devel-1.2.11-24.oe2203sp3.x86_64 libaio-0.3.113-9.oe2203sp3.x86_64 libuuid-2.37.2-23.oe2203sp3.x86_64 readline-devel-8.1-3.oe2203sp3.x86_64 krb5-libs-1.19.2-11.oe2203sp3.x86_64 libicu-72.1-6.oe2203sp3.x86_64 libxslt-1.1.37-1.oe2203sp3.x86_64 tcl-8.6.12-4.oe2203sp3.x86_64 perl-5.34.0-13.oe2203sp3.x86_64 openldap-2.6.0-7.oe2203sp3.x86_64 pam-1.5.2-6.oe2203sp3.x86_64 openssl-devel-1.1.1wa-2.oe2203sp3.x86_64 libxml2-2.9.14-9.oe2203sp3.x86_64 bzip2-1.0.8-6.oe2203sp3.x86_64 libnsl-2.34-143.oe2203sp3.x86_64

时区配置

数据库默认时区为中国时区,如果操作系统时区和数据库默认时区不一致,会导致数据库日志显示时间和实际时间不一致。可通过以下命令查看操作系统当前的时区:

[root@vastbase ~]# timedatectl Local time: Mon 2025-06-09 13:46:36 CST Universal time: Mon 2025-06-09 05:46:36 UTC RTC time: Mon 2025-06-09 05:46:36 Time zone: Asia/Shanghai (CST, +0800) System clock synchronized: no NTP service: inactive RTC in local TZ: no

返回结果如上表示时区正常。

配置 RemoveIPC

systemd-logind 服务中引入的一个特性 RemoveIPC,会造成程序信号丢失等问题,只有Redhat7 及以上和一些特殊的国产Linux的版本需要修改,改之前可先查看此项是否为默认yes),需要设置 RemoveIPC=no:

[root@vastbase ~]# sed -i 's/#RemoveIPC=no/RemoveIPC=no/' /etc/systemd/logind.conf [root@vastbase ~]# grep RemoveIPC /etc/systemd/logind.conf RemoveIPC=no

这里有个坑,安装过程中是检测 /usr/lib/systemd/system/systemd-logind.service 文件中是否有 RemoveIPC=no 配置的:

所以还要配置 /usr/lib/systemd/system/systemd-logind.service 文件:

[root@vastbase ~]# vi /usr/lib/systemd/system/systemd-logind.service ## 在 [Service] 最后加上 RemoveIPC=no

重新加载 systemd 守护进程并重启 systemd-logind 服务生效:

[root@vastbase ~]# systemctl daemon-reload [root@vastbase ~]# systemctl restart systemd-logind

修改后检查是否生效:

[root@vastbase ~]# loginctl show-session | grep RemoveIPC RemoveIPC=no [root@vastbase ~]# systemctl show systemd-logind | grep RemoveIPC RemoveIPC=no

关闭透明大页

透明大页可能会对数据库性能产生负面影响,建议关闭透明大页:

[root@vastbase ~]# cat /sys/kernel/mm/transparent_hugepage/enabled [always] madvise never

显示结果:

  • [always] madvise never:透明大页已开启。
  • always [madvise] never:透明大页已开启。
  • always madvise [never]:透明大页已关闭。

修改 /etc/default/grub 文件,在 GRUB_CMDLINE_LINUX 中添加或修改参数 transparent_hugepage=never:

[root@vastbase ~]# sed -i 's/quiet/quiet transparent_hugepage=never/' /etc/default/grub

通过以下指令检查当前系统的引导类型:

[root@vastbase ~]# [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS BIOS

两种引导的启动文件路径分别为:

  • BIOS:/boot/grub2/grub.cfg
  • UEFI:/boot/efi/EFI/<distro_name>/grub.cfg,distro_name 为系统发行版本名称,例如 ubuntu、fedora、debian 等。

执行 grub2–mkconfig 指令重新配置 grub.cfg:

## BIOS 引导 # grub2-mkconfig -o /boot/grub2/grub.cfg ## UEFI 引导 # grub2-mkconfig -o /boot/efi/EFI/<distro_name>/grub.cfg [root@vastbase ~]# grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub configuration file ... Found linux image: /boot/vmlinuz-5.10.0-182.0.0.95.oe2203sp3.x86_64 Found initrd image: /boot/initramfs-5.10.0-182.0.0.95.oe2203sp3.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-39cd0fedff3b4d4ea197a52f0c9a6794 Found initrd image: /boot/initramfs-0-rescue-39cd0fedff3b4d4ea197a52f0c9a6794.img Adding boot menu entry for UEFI Firmware Settings ... done

重启操作系统,使配置永久生效:

[root@vastbase ~]# reboot

验证透明大页已关闭:

[root@vastbase ~]# cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never]

结果应显示 always madvise [never]。

系统参数配置

编译内核参数配置文件/etc/sysctl.conf,将内核信息写入文件末尾:

# 物理内存(KB) os_memory_total=$(awk '/MemTotal/{print $2}' /proc/meminfo) # 获取系统页面大小,用于计算内存总量 pagesize=$(getconf PAGE_SIZE) ((shmall = (os_memory_total - 1) * 1024 / pagesize)) ((shmmax = os_memory_total * 1024 - 10)) # 如果 shmall 小于 2097152,则将其设为 2097152 ((shmall < 2097152)) && shmall=2097152 # 如果 shmmax 小于 4294967295,则将其设为 4294967295 ((shmmax < 4294967295)) && shmmax=4294967295

复制以上命令,直接执行即可计算得出这两个参数值:

[root@vastbase ~]# echo $shmall 3964411 [root@vastbase ~]# echo $shmmax 16238231542

根据官方建议值,配置系统参数文件:

[root@vastbase ~]# cat<<-EOF>>/etc/sysctl.conf fs.aio-max-nr=1048576 fs.file-max= 76724600 kernel.sem = 4096 2097152000 4096 512000 kernel.shmall = 3964411 kernel.shmmax = 16238231542 kernel.shmmni = 819200 net.core.netdev_max_backlog = 10000 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 4194304 net.core.somaxconn = 4096 net.ipv4.tcp_fin_timeout = 5 vm.dirty_background_bytes = 409600000 vm.dirty_expire_centisecs = 3000 vm.dirty_ratio = 80 vm.dirty_writeback_centisecs = 50 vm.overcommit_memory = 0 vm.swappiness = 0 net.ipv4.ip_local_port_range = 40000 65535 fs.nr_open = 20480000 EOF ## 生效配置 [root@vastbase ~]# sysctl -p

修改资源限制

将部分资源限制值(使用 ulimit -a 可查看所有的资源限制值)调整为推荐值或以上。

cat<<-EOF>>/etc/security/limits.conf vastbase soft nproc unlimited vastbase hard nproc unlimited vastbase soft stack unlimited vastbase hard stack unlimited vastbase soft core unlimited vastbase hard core unlimited vastbase soft memlock unlimited vastbase hard memlock unlimited vastbase soft nofile 1024000 vastbase hard nofile 1024000 EOF

创建用户

如果有密码复杂性要求,不想设置密码太复杂的话,可以取消密码复杂度:

[root@vastbase ~]# sed -i 's/^password\+[[:space:]]\+requisite[[:space:]]\+pam_pwquality.so/#&/g' /etc/pam.d/system-auth [root@vastbase ~]# sed -i 's/use_authtok$//' /etc/pam.d/system-auth

创建 vastbase 用户:

[root@vastbase ~]# useradd -d /home/vastbase -m vastbase [root@vastbase ~]# echo "vastbase:vastbase" | chpasswd [root@vastbase ~]# id vastbase uid=1001(vastbase) gid=1001(vastbase) groups=1001(vastbase)

创建目录

创建安装所需目录并且授权:

[root@vastbase ~]# mkdir -p /vastdata/app/vastbase/2.2.15 /vastdata/data/vastbase [root@vastbase ~]# chown -R vastbase:vastbase /vastdata [root@vastbase ~]# chmod -R 775 /vastdata

解压安装包

创建 /soft 目录存放安装包:

[root@vastbase ~]# mkdir /soft

授予 vastbase 用户权限,解压安装包:

[root@vastbase soft]# chown -R vastbase:vastbase /soft [root@vastbase soft]# chmod -R 775 /soft/ [root@vastbase soft]# su - vastbase [vastbase@vastbase:/home/vastbase]$ cd /soft/ [vastbase@vastbase:/soft]$ tar -xf Vastbase-installer-2.2_Build15-openEuler_22.03sp3-x86_64.tar.gz

VastBase 安装

installer 安装(推荐)

installer 安装是使用标准安装包进行部署的推荐方式。对于首次安装 Vastbase,建议使用交互式安装,该方式通过脚本引导用户完成各种配置选择,操作简洁直观。

运行安装程序

切换到数据库安装用户vastbase 执行安装:

[vastbase@vastbase:/soft]$ cd vastbase-installer/ [vastbase@vastbase:/soft/vastbase-installer]$ ./vastbase_installer

以下为安装过程:

=============================================================================== Welcome to the installation tool (V1.0) and start installing Vastbase. =============================================================================== Check whether the installation package is complete --------------- ok =============================================================================== Type <Enter> to continue: =============================================================================== System configuration information --------------- Operation System : openEuler 22.03 (LTS-SP3) CPU cores: 8 Memory size : 15485 MB Current user name: vastbase Type <Enter> to continue: =============================================================================== Dependency check --------------- readline : 8.1 libicu : 72.1 cracklib : 2.9.8 libxslt : 1.1.37 tcl : 8.6.12 perl : 5.34.0 openldap : 2.6.0 pam : 1.5.2 systemd-libs : 249 bzip2 : 1.0.8 gettext : 0.21.1 libaio : 0.3.113 ncurses-libs : 6.3 python2 : 3.9.9 Type <Enter> to continue: ------------------ Preparing the installation environment... Finish to prepare the installation environment =============================================================================== IPC parameter check --------------- The IPC parameter check is complete =============================================================================== Install database --------------- Whether to instantiate the database (Y/N): Y Select installation type Typical installation : Use default parameters to init database Custom installation : Configure installation parameters and functions manually -> 1- Typical installation 2- Custom installation Select the installation type, or type <Enter> to select the default (1): 2 =============================================================================== Database Initialization User Password (Press the backspace key to go back) --------------- Enter the password of database initialization user (vastbase): *********** Please enter your password again: *********** =============================================================================== Database encryption key(PGENCRYPTIONKEY) --------------- Set database encryption key(PGENCRYPTIONKEY): -> 1- Use the database initialization password (default) 2- Enter the encryption key manually Select the database encryption key setting, or type <Enter> to select the default(1): =============================================================================== Vastbase installation directory --------------- Vastbase installation directory Default location: /home/vastbase/local/vastbase Type the absolute path (ctrl+ backspace to backspace), or type <Enter> to use the default path : /vastdata/app/vastbase/2.2.15 =============================================================================== Database initialization directory --------------- Select the database initialization directory Default location: /home/vastbase/data/vastbase Type the absolute path (ctrl+ backspace to backspace), or type <Enter> to use the default path : /vastdata/data/vastbase =============================================================================== listener port --------------- Enter the listening port, or type <Enter> to select the default (5432): =============================================================================== Max Connections --------------- Enter the maximum number of client connections, or type <Enter> to select the default (500): 1500 =============================================================================== Shared buffers --------------- Enter the shared memory size in MB, or enter <Enter> to select the default (3871): =============================================================================== Database compatibility mode --------------- Specify the database compatibility mode (A|B|PG|MSSQL) Default compatibility:A Type compatibility above or <Enter> to use the default value =============================================================================== Check disk IO scheduling algorithm --------------- The disk IO scheduling algorithm to which directory /vastdata/data/vastbase belongs is being checked The scheduling algorithm of disk IO is checked =============================================================================== Installation summary --------------- Vastbase installation directory: /vastdata/app/vastbase/2.2.15 Vastbase directory: /vastdata/data/vastbase Database initialization user : vastbase Database initialization parameter : listen_addresses='*' port=5432 max_connections=1500 shared_buffers=3871MB max_process_memory=10297MB work_mem=4MB Type <Enter> to continue: Installation underway, please wait... Initialize database successfully, data directory :/vastdata/data/vastbase The default passwords of the three default database administrators vbaudit, vbsso, and vbadmin are: system admin[vbadmin] initial password: C58d6(6f security admin[vbsso] initial password: Cf4f4(89 audit admin[vbaudit] initial password: X2b15!5c Generate the encryption key file The encryption key file is generated successfully The configuration file /vastdata/data/vastbase/postgresql.conf was successfully updated Writing configuration file Writing cluster_config.xml file Writing environment variables The configuration file:'/home/vastbase/.bashrc' is successfully updated =============================================================================== Installation complete --------------- Specify the license path first (if the license path is incorrect, the database fails to start): Write the license path to file /vastdata/data/vastbase/postgresql.conf in the form of license_path='license path' To initialize the database running environment: source ~/.bashrc To start, stop, and restart the database: vb_ctl <start/stop/restart> If the installation is complete, Enter <Enter> to exit:

安装过程中的三个默认管理员账户密码请妥善保管:

  • 系统管理员 [vbadmin]:C58d6(6f
  • 安全管理员 [vbsso]:Cf4f4(89
  • 审计管理员 [vbaudit]:X2b15!5c

数据库安装完成后,会自动配置环境变量:

根据提示,先后执行 source ~/.bashrcvb_ctl start 即可启动数据库:

[vastbase@vastbase:/home/vastbase]$ source ~/.bashrc [vastbase@vastbase:/home/vastbase]$ vb_ctl status [2025-06-09 14:49:10.434][8567][][vb_ctl]: vb_ctl status,datadir is /vastdata/data/vastbase no server running

启动数据库报错:

[vastbase@vastbase:/home/vastbase]$ vb_ctl start [2025-06-09 14:55:36.611][9962][][vb_ctl]: vb_ctl started,datadir is /vastdata/data/vastbase [2025-06-09 14:55:36.664][9962][][vb_ctl]: waiting for server to start... ... ... ... 2025-06-09 14:55:36.781 [unknown] [unknown] localhost 139661589746176 0[0:0#0] 0 [BACKEND] LOG: reserved memory for backend threads is: 220 MB 2025-06-09 14:55:36.781 [unknown] [unknown] localhost 139661589746176 0[0:0#0] 0 [BACKEND] LOG: reserved memory for WAL buffers is: 128 MB 2025-06-09 14:55:36.781 [unknown] [unknown] localhost 139661589746176 0[0:0#0] 0 [BACKEND] LOG: Set max backend reserve memory is: 348 MB, max dynamic memory is: 1917 MB 2025-06-09 14:55:36.781 [unknown] [unknown] localhost 139661589746176 0[0:0#0] 0 [BACKEND] LOG: shared memory 7519 Mbytes, memory context 2265 Mbytes, max process memory 10297 Mbytes 2025-06-09 14:55:36.781 [unknown] [unknown] localhost 139661589746176 0[0:0#0] 0 [BACKEND] FATAL: the values of memory out of limit, the database failed to be started, max_process_memory (10297MB) must greater than 2GB + cstore_buffers(512MB) + (udf_memory_limit(200MB) - UDF_DEFAULT_MEMORY(200MB)) + shared_buffers(3871MB) + preserved memory(3996MB) = 10427MB, reduce the value of shared_buffers, max_pred_locks_per_transaction, max_connection, wal_buffers, max_wal_senders, wal_receiver_buffer_size..etc will help reduce the size of preserved memory 2025-06-09 14:55:36.784 [unknown] [unknown] localhost 139661589746176 0[0:0#0] 0 [BACKEND] LOG: FiniNuma allocIndex: 0. [2025-06-09 14:55:37.666][9962][][vb_ctl]: waitpid 9965 failed, exitstatus is 256, ret is 2 [2025-06-09 14:55:37.666][9962][][vb_ctl]: stopped waiting [2025-06-09 14:55:37.666][9962][][vb_ctl]: could not start server Examine the log output.

分析报错是因为内存参数设置过大,需要修改配置文件 /vastdata/data/vastbase/postgresql.conf 中以下几个参数值:

wal_buffers = 32MB shared_buffers=512MB max_connections=100 max_process_memory=6144MB cstore_buffers = 32MB

修改后再次启动数据库:

[vastbase@vastbase:/home/vastbase]$ vb_ctl start [2025-06-09 15:01:37.346][10751][][vb_ctl]: vb_ctl started,datadir is /vastdata/data/vastbase [2025-06-09 15:01:37.403][10751][][vb_ctl]: waiting for server to start... ... ... ... 0 LOG: License info: Customer:'temporary license', Begins On:'2025-06-09 14:41:51', Expires On:'2025-09-07 14:41:51', MAC:'' ... ... ... [2025-06-09 15:01:38.416][10751][][vb_ctl]: done [2025-06-09 15:01:38.416][10751][][vb_ctl]: server started (/vastdata/data/vastbase)

启动成功,查看数据库状态:

[vastbase@vastbase:/home/vastbase]$ vb_ctl status [2025-06-09 15:01:54.074][10919][][vb_ctl]: vb_ctl status,datadir is /vastdata/data/vastbase vb_ctl: server is running (PID: 10754) /vastdata/app/vastbase/2.2.15/bin/vastbase

配置 License 授权文件

在最新版本的 Vastbase 数据库安装软件种已经预置了免费试用功能、默认无 license 场景下也可以免费使用 Vastbase 数据库一段时间。但是如果试用到期、仍未添加有效 license 则数据库实例无法启动。

替换 License 许可:

[vastbase@vastbase:/home/vastbase]$ cat<<-EOF>>/vastdata/data/vastbase/postgresql.conf license_path='/soft/Vastbase_G100_license_20250731' EOF

重新启动数据库:

[vastbase@vastbase:/home/vastbase]$ vb_ctl restart [2025-06-09 15:06:32.159][11502][][vb_ctl]: vb_ctl restarted ,datadir is /vastdata/data/vastbase waiting for server to shut down... done server stopped ... ... ... 0 LOG: License info: Customer:'Vastbase', Begins On:'2025-02-06 09:39:51', Expires On:'2025-07-31 09:42:46', MAC:'' ... ... ... [2025-06-09 15:06:35.622][11502][][vb_ctl]: done [2025-06-09 15:06:35.622][11502][][vb_ctl]: server started (/vastdata/data/vastbase)

替换完 license 之后还比免费的时间还短,哈哈。

连接数据库

数据库启动后使用 vastbase 用户,使用下面的命令登录数据库:

[vastbase@vastbase:/home/vastbase]$ vsql -r -d vastbase

至此,Vastbase 数据库安装完成 ✅。

最后修改时间:2025-06-10 10:59:03
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论