胖头鱼的鱼缸

这个数据库这么小-XUGUDB

数据库管理-第292期 这个数据库这么小-XUGUDB(20250208)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database
PostgreSQL ACE Partner

10年数据库行业经验
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP,ITPUB认证专家
圈内拥有“总监”称号,非著名社恐(社交恐怖分子)

公众号:胖头鱼的鱼缸
CSDN:胖头鱼的鱼缸(尹海文)
墨天轮:胖头鱼的鱼缸
ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭

胖头鱼的鱼缸_01.png
这是一个诞生于成都的数据库,也是首批通过“国测”的数据库,其公司虚谷伟业成立于2002年,虚谷数据库(XUGUDB)也算是一个老牌国产数据库的,作为一个成都土著,还是得看看这个老乡数据库。

1 简单介绍

虚谷数据库是一款自主原创、安全可靠、功能强大、性能优越的关系型数据库管理系统,支持SQL(Structured Query Language)标准语法,支持标准化、双机高可用、分布式集群部署,提供国产化、面向多核的高性能和数据安全服务,融合成都虚谷伟业科技有限公司在数据库领域20多年的研发经验沉淀,结合各类关系型数据库的应用场景需求,持续构建竞争力特性。
虚谷数据库采用NEWSQL架构从0开始设计,即一个无状态的SQL引擎与一个通用(与逻辑解耦)的存储引擎加上管理引擎构建的产品。整个产品采用的是单进程多线程模型,所有的数据库任务(计算、存储、管理)可以独占或混合在单个进程中,所以具有从1到N无缝扩展的特性。
虚谷数据库的定位是通用型、透明化、高性能的单机分布式一体化数据库。
(以上节选自《技术白皮书》)
XUGUDB的部署场景主要覆盖数据中心部署、同城灾备部署、两地三中心部署以及同城双活部署,而部署模式则包含单机部署、主备双机部署以及分布式集群部署。本期进行演示的是单机部署。

2 大但是小

下载地址:

https://www.xugudb.com/%e4%b8%8b%e8%bd%bd%e4%b8%ad%e5%bf%83

image.png
这里使用的是个人版套装,关于各个版本的使用限制可以通过以下链接查看:

https://help.xugudb.com/documents/license-usage-guide/overview-01

这里为什么说XUGUDB大但是小呢,因为下载下来之后整个83.2MB,但是实际查看包内容则会发现数据库本身的压缩包很小:
image.png
解压完成后有12.2MB,几乎算是接触到的国产数据库中安装包容量最小的:
image.png

3 操作系统配置

这里使用2C8G的虚拟机进行安装,磁盘100GB,操作系统RHEL8.10,安装过程略。
这里在硬件层面XUGUDB要求关闭CPU的超线程并关闭节能模式。

3.1 关闭防火墙

systemctl stop firewalld.service 
systemctl disable firewalld.service

3.2 关闭SELinux

sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
setenforce 0

3.3 配置hosts

cat >> /etc/hosts <<EOF
10.10.10.61 xugudb
EOF

3.4 调整sysctl

cat >> /etc/sysctl.conf <<EOF
net.core.rmem_default = 2097152
net.core.wmem_default = 2097152
net.core.rmem_max = 8388608
net.core.wmem_max = 8388608
EOF

sysctl -p

3.5 调整资源限制

cat >> /etc/security/limits.conf <<EOF
* soft nofile 10240
* hard nofile 10240
* soft stack 20480
* hard stack 20480
EOF

3.6 配置yum源

mkdir /iso
mount -r /dev/sr0 /iso
#配置dnf源
cat >> /etc/yum.repos.d/redhat.repo <<EOF
[BaseOS]
name=BaseOS
baseurl=file:///iso/BaseOS
enabled=1
gpgcheck=0

[AppStream]
name=AppStream
baseurl=file:///iso/AppStream
enabled=1
gpgcheck=0
EOF


3.7 检查并安装依赖包

rpm -qa | grep libaio
#如未安装则安装libaio
dnf -y install libaio

dnf -y install net-snmp
systemctl enable snmpd

dnf -y install chrony
#根据实际情况配置时间同步
systemctl enable chronyd

dnf -y install gcc
dnf -y install gdb
dnf -y install iotop
dnf -y install perf
dnf -y install sysstat

dnf -y install java-11-openjdk*

image.png

4 安装数据库

这里略过安装包解压步骤,解压完成后:
image.png
将其移动到根目录下:

mv ./XuguDB /

4.1 配置映射路径

cd /XuguDB/SETUP/

image.png
mount.ini指定了一个用于存放数据库各文件的虚拟路径与实际路径的映射关系,其中mount.ini默认配置如下:
image.png
微信截图_20250208120345.png
修改路径配置并创建对应路径:

cat > mount.ini <<EOF
/XGLOG     /XuguDB/XGLOG
/CATA      /XuguDB/XHOME/CATA
/DATA      /XuguDB/XHOME/DATA
/TEMP      /XuguDB/XHOME/TEMP
/REDO      /XuguDB/XHOME/REDO
/BACKUP    /XuguDB/XHOME/BACKUP
/ARCH      /XuguDB/XHOME/ARCH
/UNDO      /XuguDB/XHOME/UNDO
/MODI      /XuguDB/XHOME/XMODI
EOF

mkdir /XuguDB/XGLOG
mkdir /XuguDB/XHOME/CATA -p
mkdir /XuguDB/XHOME/DATA
mkdir /XuguDB/XHOME/TEMP
mkdir /XuguDB/XHOME/REDO
mkdir /XuguDB/XHOME/BACKUP
mkdir /XuguDB/XHOME/ARCH
mkdir /XuguDB/XHOME/UNDO
mkdir /XuguDB/XHOME/XMODI

4.2 配置文件路径

需要创建datafile.ini文件:

cat > datafile.ini <<EOF
#DATA_FILES
/DATA/DATAFILE01.DBF
/DATA/DATAFILE02.DBF
/DATA/DATAFILE03.DBF
#TEMP_FILES
/TEMP/TEMPFILE01.DBF
/TEMP/TEMPFILE01.DBF
#UNDO_FILES
/UNDO/UNDOFILE01.DBF
EOF

这里的文件路径,以第一个数据文件/DATA/DATAFILE01.DBF为例,根据mount.ini映射关系,实际存储位置为/XuguDB/XHOME/DATA/DATAFILE01.DBF。

4.3 启动数据库

cd /XuguDB/BIN/
./xugu_linux_x64 -service|-child
or
./xugu_start.sh
  • “-child”是前端监控方式启动,“-service”是后台服务方式启动。
  • 您也可以通过执行“xugu_start.sh”脚本,启动数据库服务。

image.png
image.png
数据库启动成功。

5 访问数据库

ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5
ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5
./xgconsole-linux-x64

image.png
下面进行一些简单查询:
image.png
image.png
image.png

总结

首先XUGUDB小是小,但安装流程还是比较顺畅简单的,基本连接除了一些库文件版本问题和官方文档的密码问题以外也相对顺畅。
老规矩,知道写了些啥。