一、安装要求
硬件环境要求:

KingbaseES支持通用X86_64、龙芯、飞腾、鲲鹏等国产CPU硬件体系架构
软件环境要求:
KingbaseES支持各种主流的Linux操作系统64位发行版本,包括CentOS、中标麒麟、银河麒麟、统信UOS、Deepin、凝思、中科方德等操作系统
二、环境准备
1、禁用selinux
getenforce
setenforce 0
sed -i 's/^SELINUX=/C\SELINUX=disabled' /etc/selinux/config
2、关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
3、调整确认系统时间及时区
date
timedatectl
4、内核参数参考:
semmsl | 250 | /proc/sys/kernel/sem |
semmns | 32000 |
|
semopm | 100 |
|
semmni | 128 |
|
shmall | 2097152 | /proc/sys/kernel/shmall |
shmmax | 最小: 536870912 最大: 物理内存值减去1字节 建议: 大于物理内存的一半 | /proc/sys/kernel/shmmax |
shmmni | 4096 | /proc/sys/kernel/shmmni |
file-max | 6815744 | /proc/sys/fs/file-max |
aio-max-nr | 1048576 注意: 本参数限制并发发出的请求数量。应该设置以避免IO子系统的失败。 | /proc/sys/fs/aio-max-nr |
ip_local_port_range | 最小: 9000 最大: 65500 | /proc/sys/net/ipv4/ip_local_port_range |
rmem_default | 262144 | /proc/sys/net/core/rmem_default |
rmem_max | 4194304 | /proc/sys/net/core/rmem_max |
wmem_default | 262144 | /proc/sys/net/core/wmem_default |
wmem_max | 1048576 | /proc/sys/net/core/wmem_max |
fs.aio-max-nr= 1048576
fs.file-max= 6815744
kernel.shmall= 2097152
kernel.shmmax= 10347008000
kernel.shmmni= 4096
kernel.sem= 250 32000 100 128 #kernel.sem= 500 64000 400 2560
net.ipv4.ip_local_port_range= 9000 65500
net.core.rmem_default= 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576
/sbin/sysctl -p
5、资源使用限制
vi /etc/security/limits.conf
# *表示所有用户,可只设置root和kingbase用户
kingbase soft nofile 65536
# 注意:设置nofile的hard limit不能大于/proc/sys/fs/nr_open,否则注销后将无法正常登陆
kingbase hard nofile 65535
kingbase soft nproc 65536
kingbase hard nproc 65535
# unlimited表示无限制
kingbase soft core unlimited
kingbase hard core unlimited
6、RemoveIPC参数
systemd-logind服务中引入的一个特性,是当一个用户退出系统后,会删除所有有关的IPC对象。该特性由/etc/systemd/logind.conf文件中的RemoveIPC参数控制。某些操作系统会默认打开,会造成程序信号丢失等问题(只有redhat7及以上和一些特殊的国产Linux的版本需要修改,改之前可先查看此项是否为默认yes)。设置RemoveIPC=no。设置后重启服务
vi /etc/systemd/logind.conf
systemctl daemon-reload
systemctl restart systemd-logind.service
7、I\O性能优化
cat /sys/block/sda/queue/scheduler
[mq-deadline] kyber bfq none #括号里是当前
vim /etc/rc.local
echo deadline > /sys/block/sda/queue/scheduler
echo deadline > /sys/block/sdb/queue/scheduler
bash /etc/rc.local
简单地说,对于磁盘I/O,Linux提供了cfq, deadline和noop三种调度策略:
cfq: 这个名字是Complete Fairness Queueing的缩写,它是一个复杂的调度策略,按进程创建多个队列,试图保持对多个进程的公平(这就没考虑读操作和写操作的不同耗时)
deadline: 这个策略比较简单,只分了读和写两个队列(这显然会加速读取量比较大的系统),叫这个名字是内核为每个I/O操作都给出了一个超时时间
noop: 这个策略最简单,只有单个队列,只有一些简单合并操作
根据多篇文章的说法,deadline和noop差异不是太大,但它们俩与cfq差异就比较大
MySQL这类数据存储系统不要使用cfq(时序数据库可能会有所不同。不过也有说从来没见过deadline比cfq差的情况)
对于虚拟机上面的磁盘,建议采用比较简单的noop,毕竟数据实际上怎么落盘取决于虚拟化那一层
手边几个vm的默认值是:centos6是cfq,ubuntu12.04是xxxx,centos7和ubuntu14.04是deadline (不过这只代表这几台,我不知道是否具有代表性)
三、预安装工作
1、用户创建
useradd -m kingbase
passwd kingbase
2、安装目录
mkdir -p /opt/Kingbase/ES/V8
chmod o+rwx /opt/Kingbase/ES/V8
四、开始安装
启动安装程序
挂载安装光盘iso
如果系统显示值包含“zh_CN”,则为中文语言,安装程序会使用中文界面。否则,您可以执行如下命令修改语言设置为中文:
export LANG=zh_CN.UTF-8
安装脚本
sh setup.sh -i swing #图形化
sh setup.sh -i console #命令行模式
sh setup.sh -i silent -f ${配置文件路径} #带配置文件的静默安装
静默安装参数:
参考下表修改。
序号 | 参数名 | 默认值 | 说明 |
1 | CHOSEN_INSTALL_SET | Full | 选择安装集,可选值包括: 1)Full,完全安装 2)Client,客户端安装 3)Custom,定制安装 |
2 | CHOSEN_FEATURE_LIST | SERVER,MANAGER,KDTS,DEPLOY,INTERFACE,KINGBASEHA | 选择安装特性,CHOSEN_INSTALL_SET=Custom起作用。可选值: 1)SERVER,服务器 2)KSTUDIO,数据库开发管理工具 3)KDTS,数据库迁移工具 4)DEPLOY,数据库部署工具 5)INTERFACE,接口 6)KINGBASEHA,高可用组件多值用逗号分隔。大小写不敏感。如果是错误的组件名称则忽略。 |
3 | KB_LICENSE_PATH |
| 授权文件的绝对路径,如果选择安装特性中有SERVER,则必须指定本参数,否则可以正常安装,但数据库服务无法正常启动。路径分隔符使用'/'。 |
4 | USER_INSTALL_DIR | /opt/Kingbase/ES/V8 | 安装目录绝对路径,必须指定,否则报错退出安装过程。路径分隔符使用'/'。 |
5 | USER_SELECTED_DATA_FOLDER |
| 数据目录绝对路径,必须为空目录,否则报错退出安装过程。如果不指定数据目录,默认为安装路径下data目录。 |
6 | DB_PORT | 54321 | 数据库服务端口,必填,端口取值范围为1-65535。否则报错退出安装过程。 |
7 | DB_USER | system | 数据库默认用户名,必填,长度不超过63字符。否则报错退出安装过程。 |
8 | DB_PASS |
| 数据库初始密码,必填,否则报错退出安装过程。无长度限制。 |
9 | DB_PASS2 |
| 确认数据库初始密码,需要和DB_PASS一致,否则报错退出安装过程。 |
10 | ENCODING_PARAM | UTF8 | 数据库字符集,必填,大小写敏感,否则报错退出安装过程。可选值1)UTF8 2)GBK 3)GB18030 |
11 | DATABASE_MODE_PARAM | ORACLE | 数据库兼容模式,必填,大小写敏感,否则报错退出安装过程。可选值1)ORACLE 2)PG |
12 | CASE_SENSITIVE_PARAM | YES | 数据库是否区分大小写,必填,大小写敏感,否则报错退出安装过程。可选值1)YES 2)NO |
13 | BLOCK_SIZE_PARAM | 8k | 存储块大小,必填,大小写敏感,否则报错退出安装过程。可选值1)8k 2)16k 3)32k |
注册数据库服务
su - root
运行${安装目录}/install/script/root.sh 。

如果想启动或停止数据库服务,进入${安装目录}/Server/bin目录执行如下命令:
#启动服务
$ sys_ctl -w start -D ${Data文件目录} -l "${Data文件目录}/sys_log/startup.log"
# systemctl start kingbase8d
#停止服务
$ sys_ctl stop -m fast -w -D ${Data文件目录} #fast相当于oracle immediate,smart相当于oracle normal,immediate相当于oracle abort。
# systemctl stop kingbase8d
#服务状态查询
# systemctl status kingbase8d
$ sys_ctl status -D /opt/Kingbase/ES/V8/data/
sys_ctl: 正在运行服务器进程(PID: 54533)
/opt/Kingbase/ES/V8/KESRealPro/V008R006C007B0024/Server/bin/kingbase "-D" "/opt/Kingbase/ES/V8/data"
登录数据库
[kingbase@kylinv10sp230 ~]$ ksql -USYSTEM -W test
口令:
ksql (V8.0)
输入 "help" 来获取帮助信息.
test=# show
优化:
修改最大连接数(默认10):
查询最大连接数
hldb=# show max_connections;
max_connections
-----------------
10
(1 row)
/opt/Kingbase/ES/V8/data/目录下的kingbase.conf中设置
max_connections = 1000
或者配置工具中配置:

另外,有优化脚本需要执行:
su - root
cd /opt/Kingbase/ES/V8/SupTools/kb_modify_syscfg
sh optimize_system_conf.sh
su - kingbase
cd /opt/Kingbase/ES/V8/SupTools/kb_modify_syscfg
sh optimize_database_conf.sh
五、卸载
删除数据库服务:
如果在安装后执行root.sh脚本在系统中注册了数据库服务,需要在卸载前执行rootuninstall.sh脚本删除已注册的数据库服务。
su - root
sh ${安装目录}/install/script/rootuninstall.sh
卸载脚本:
以kingbase用户登录系统后,进入${安装目录}/Uninstall目录,执行以下命令:
sh Uninstaller -i silent #静默模式
sh Uninstaller -i console #命令行模式
sh Uninstaller -i swing #图形化