1、Vastbase G100数据库基础环境准备:
1.1、关闭防火墙:
systemctl stop firewalld.service
systemctl disable firewalld.service
1.2、修改/etc/selinux/config 文件中的“SELINUX”值为“disabled”:
[root@vastbase1 ~]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
1.3、IPC参数设置:
1) 修改 /etc/systemd/logind.conf 文件,修改RemoveIPC=no
2)添加RemoveIPC=no到/usr/lib/systemd/system/systemd-logind.service
systemctl daemon-reload
systemctl stop systemd-logind
systemctl start systemd-logind
1.4、内核参数调整,修改/etc/sysctl.conf文件。其他参数默认即可,只需要按照实际内存大小配置kernel.shmall和kernel.shmmax两个参数。:
检查操作系统块大小:
getconf PAGE_SIZE
备注:在配置下面的kernel.shmall参数时候需要用到。
vim /etc/sysctl.conf
kernel.sem = 4096 2147483647 2147483646 512000
kernel.shmall = 419430
kernel.shmmax = 1200572800
net.core.netdev_max_backlog = 629145
net.core.rmem_default = 21299200
net.core.rmem_max = 21299200
net.core.somaxconn = 65535
net.core.wmem_default = 21299200
net.core.wmem_max = 21299200
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_time = 30
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_max_tw_buckets = 10000
net.ipv4.tcp_mem = 362715 483620 725430
net.ipv4.tcp_retries1 = 5
net.ipv4.tcp_retries2 = 80
net.ipv4.tcp_rmem = 8192 250000 16777216
net.ipv4.tcp_syn_retries = 5
net.ipv4.tcp_tso_win_divisor = 30
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_wmem = 8192 250000 16777216
net.ipv4.udp_mem = 725430 967240 1450860
内含参数解释说明:
kernel.sem = 4096 2147483647 2147483646 512000 #信号集容纳最大信号数量,所有信号的最大数量,调用单个信号集中最大信号数量,信号集的最大值
kernel.shmall = 1079609302220 #需计算(所有共享内存段相加大小限制,单位page,配小了,库无法启动。建议内存的80%,查看page 大小getconf PAGE_SIZE)
kernel.shmall算法举例,以32GB内存为例:32GB*1000*1000*1000*0.8/65536=390630
所以kernel.shmall = 390630
kernel.shmmax = 1079609302220 #需计算(最大单个共享内存段大小,单位bytes,需大于shared_buffers 值)
kernel.shmmax算法举例,以32GB内存为例:32GB*1000*1000*1000=32000000000
所以kernel.shmmax = 32000000000
net.core.netdev_max_backlog = 65535 #内核从网卡收到数据包后,交由协议栈(如IP、TCP)处理之前的缓冲队列。
net.core.rmem_default = 21299200 #接收套接字(socket)缓冲区大小的默认值(以字节为单位)。
net.core.rmem_max = 21299200 #接收套接字缓冲区大小的最大值(以字节为单位)。
net.core.somaxconn = 65535 #用来限制监听(LISTEN)队列最大数据包的数量,超过这个数量就会导致链接超时或者触发重传机制。
net.core.wmem_default = 21299200 #发送套接字缓冲区大小的默认值(以字节为单位)。
net.core.wmem_max = 21299200 #发送套接字缓冲区大小的最大值(以字节为单位)。
net.ipv4.tcp_keepalive_intvl = 30 #探测消息未获得响应时,重发该消息的间隔时间(秒)。
net.ipv4.tcp_keepalive_time = 30 #这个参数表示当keepalive启用时,TCP发送keepalive消息的频度。
net.ipv4.tcp_max_syn_backlog = 65535 #表示那些尚未收到客户端确认信息的连接(SYN消息)队列的长度,加大队列长度为可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_max_tw_buckets = 10000 #表示系统同时保持TIME_WAIT套接字的最大数量。
net.ipv4.tcp_mem = 362715 483620 725430 #确定TCP栈应该如何反映内存使用,每个值的单位都是内存页(通常是4KB)
net.ipv4.tcp_retries1 = 5 #一个TCP连接请求,重传的N次不成功后放弃请求
net.ipv4.tcp_retries2 = 80 #在已经建立通讯状态下的一个TCP数据包,重传的N次不成功后放弃请求。
net.ipv4.tcp_rmem = 8192 250000 16777216 #tcp协议定义的每个socket链路接收窗口大小,单位字节,有三个值:min、default、max。
net.ipv4.tcp_syn_retries = 5 #控制内核向某个输入的SYN/ACK段重新发送相应的次数
net.ipv4.tcp_tso_win_divisor = 30 #单个TSO段可消耗拥塞窗口的比例
net.ipv4.tcp_tw_reuse = 1 #是否允许将处于TIME-WAIT状态的socket(TIME-WAIT的端口)用于新的TCP连接
net.ipv4.tcp_wmem = 8192 250000 16777216 #tcp协议定义的每个socket链路发送窗口大小,单位字节,有三个值:min、default、max。
net.ipv4.udp_mem = 725430 967240 1450860 #设置UDP缓存,避免UDP缓存溢出,出现丢包、无法连接等现象。
1.5、修改资源限制:
vim /etc/security/limits.conf
vastbase soft nproc unlimited
vastbase hard nproc unlimited
vastbase soft nofile 102400
vastbase hard nofile 102400
vastbase soft stack unlimited
vastbase hard stack unlimited
vastbase soft core unlimited
vastbase hard core unlimited
vastbase soft memlock unlimited
vastbase hard memlock unlimited
1.6、检查依赖包:
yum -y install zlib
yum -y install libuuid
yum -y install readline
yum -y install python
yum -y install krb5-libs
yum -y install libicu
yum -y install cracklib
yum -y install tcl
yum -y install perl
yum -y install openldap
yum -y install pam
yum -y install systemd-libs
yum -y install bzip2
yum -y install gettext
yum -y install openssl
yum -y install libxml2
yum -y install libaio
yum -y install ncurses-libs
1.7、创建vastbase用户:
groupadd -g 1005 vastbase
useradd -g 1005 -u 1005 vastbase
passwd vastbase
2、数据库安装:
2.1、root 用户,使用 tar 命令解压安装包,此处以 kylin sp1 系统为例,不同操 作系统包名有所区别(数据库安装包放在tmp目录下)。
tar -zxvf Vastbase-G100-installer-2.2_Build_5.120-kylin_v10sp2-x86_64-20220615.tar
给解压的安装目录授权vastbase用户权限:
chown -R vastbase:vastbase vastbase-installer/
把安装目录,移动到/home/vastbase/目录下:
mv vastbase-installer/ /home/vastbase/
2.2、在 vastbase 用户下,进入 vastbase-installer 目录,执行脚本安装数据库。第一步是检查安装包 是否完整(防篡改)。检查无误则输入<回车>继续。

image.png
2.3、系统配置信息。检查无误则输入<回车>继续:

image.png
2.4、依赖检查。检查无误则输入<回车>继续:

image.png
备注:若都已经安装,输入<回车>继续。
2.5、IPC 参数检查。检查无误则输入<回车>继续:

image.png
2.6、安装数据库选项:
是否需要实例化数据库(Y/N),选Y(实例化数据库)。
典型安装为默认值,并输入<回车>继续。
注意:这里我们选择默认安装即可。

image.png
2.7、输入数据库用户密码:

image.png
2.8、设置数据库安装路径:
我们把数据库软件安装路径采用默认路径、数据目录采用自定义方式举例。
备注:如果数据目录我们要用自定义位置,我们需要先去创建相关目录并授权,方法如下:
mkdir -p /data/vastbase
chown -R vastbase. /data/vastbase

image.png
安装方式:

image.png
2.9、选择兼容模式:

image.png
2.10、安装选项查看:

image.png
2.11、安装:
安装过程包括安装数据库、实例化数据库、配置数据库参数和配置用户环境变量。提示安装完成 后输入<回车>退出。

image.png

image.png
2.12、生效环境变量:
注意:必须在vastbase用户下执行
source ~/.bashrc

image.png
2.13、license放入/home/vastbase/中:
cd /home/vastbase/
mv Vastbase_license_20220401_20221001 license
chmod 600 /home/vastbase/license
chown vastbase.vastbase /home/vastbase/license
2.14、修改数据库参数文件:
备注:以32GB内存为例。
max_process_memory建议为总内存大小75%。
shared_buffers建议为物理内存的25%。可以根据实际需求调整为40%。这个参数直接决定了数据库能够承载的热数据量。
1、主要内存参数调整:
vi $PGDATA/postgresql.conf
license_path='/home/vastbase/license'
max_connections=500
max_process_memory=24GB
shared_buffers=12GB
work_mem=4MB
2、常规参数调整,和服务器内存大小无关:
vi $PGDATA/postgresql.conf
password_force_alter = off
cstore_buffers = 16MB
3、mysql兼容性需注意:如果需要调整表名和列名字段是否区分大小写,需要调整以下参数。
lower_case_column_names为0代表列字段区分大小写即支持字段驼峰名称,如为1代表不区分大小写即统一按照小写处理。
lower_case_table_names为0代表表名区分大小写即支持表名驼峰名称,如为1代表不区分大小写即统一按照小写表名处理。
lower_case_column_names = 0
lower_case_table_names = 1
2.15、启动数据库(在vastbase用户下进行):
vb_ctl start
2.16、创建用户、数据库:
登录数据库客户端,并创建用户和库。
su - vastbase
vsql -r
create user testuser identified by 'Hailiang@123' ;
create database mysqldb owner testuser;
alter user testuser sysadmin;