人大金仓KingbaseES:银河麒麟V10安装
众所周知的原因,为了响应国家信创支持国产操作系统和数据库,现在我们公司的项目要从开源数据库PostgreSQL切换到人大金仓KingbaseES数据库(本质是早期版本的PostgreSQL)。使用的是国产操作系统银河麒麟V10版本,之前介绍过这里就不赘述了。
以下内容来自人大金仓官网
集成PostGIS的安装包下载地址在文章最下面,有需要的可直接跳过中间内容。
产品简介
金仓数据库管理系统[简称:KingbaseES]是北京人大金仓信息技术股份有限公司(简称人大金仓)自主研发的、具有自主知识产权的商用关系型数据库管理系统(DBMS)。该产品面向事务处理类应用,兼顾各类数据分析类应用,可用做信息管理系统、业务及生产系统、决策支持系统、全文检索、地理信息系统等的承载数据库。
安装前准备
硬件环境要求
KingbaseES支持通用X86_64、龙芯、飞腾、鲲鹏等国产CPU硬件体系架构。
版本 | 要求 |
---|---|
标准版/企业版/专业版/开发版 | CPU:X86、龙芯、飞腾、鲲鹏内存:512MB以上硬盘:10GB以上空闲空间 |
软件环境要求
KingbaseES支持各种主流的Linux操作系统64位发行版本,包括CentOS、中标麒麟、银河麒麟、统信UOS、Deepin、凝思、中科方德等操作系统。
检查和配置环境
检查操作系统信息
您可以通过以下命令查看操作系统信息:
cat /etc/*release
为避免安装失败,或安装结束后文件发生异常,请在安装前关闭操作系统的应用保护,或于安装时在操作系统界面手动点击允许程序执行。
检查系统内存与存储空间
您可以通过以下命令查看内存信息(以MB单位显示):
free -m
您可以通过以下命令查看磁盘存储信息(以GB单位显示):
df -hl
注意: /tmp目录需要至少10G空间。如果安装过程中出现存储空间不足的情况,请先释放足够的磁盘空间,再执行安装程序。如果硬件配置不满足要求,需要更换满足要求的硬件设备再进行安装。
配置内核参数
为了避免在KingbaseES安装和使用过程中出现问题,您需要检查和设置内核参数。
- 内核参数
您可以参考内核参数查看命令(最新的系统,需参考系统的用户手册)检查内核参数。
参数 | 查看命令 |
---|---|
semmsl, semmns, semopm, and semmni | # /sbin/sysctl -a | grep sem |
shmall, shmmax, and shmmni | # /sbin/sysctl -a | grep shm |
file-max | # /sbin/sysctl -a | grep file-max |
ip_local_port_range | # /sbin/sysctl -a | grep ip_local_port_range |
rmem_default | # /sbin/sysctl -a | grep rmem_default |
rmem_max | # /sbin/sysctl -a | grep rmem_max |
wmem_default | # /sbin/sysctl -a | grep wmem_default |
wmem_max | # /sbin/sysctl -a | grep wmem_max |
aio-max-nr | # /sbin/sysctl -a | grep aio-max-nr |
tcp_wmem | # /sbin/sysctl -a | grep tcp_wmem |
tcp_rmem | # /sbin/sysctl -a | grep tcp_rmem |
参数 | 参考值 | 所在文件 |
---|---|---|
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 |
若内核参数与参考值不一致,您可通过编辑/etc/sysctl.conf文件修改参数,如下所示:
fs.aio-max-nr= 1048576
fs.file-max= 6815744
kernel.shmall= 2097152
kernel.shmmax= 4294967295
kernel.shmmni= 4096
kernel.sem= 250 32000 100 128
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
内核参数修改完毕后,重启Linux系统,并输入如下命令查看内核参数的修改是否正确:
/sbin/sysctl -p
/sbin/sysctl -a
- 资源使用参数
Linux资源限制配置文件是/etc/security/limits.conf。限制用户可使用的资源数量对系统的稳定性非常重要。您可以通过调整资源限制数量改进系统性能。limits.conf文件如下所示:
其中soft是一个警告值,hard是真正意义的阈值,超过系统就会报错,一般情况下两者设为同一个值。一般保持系统安装时的默认值即可。可配置的资源有如下种类:
资源项 | 含义 |
---|---|
core | 内核文件大小(KB) |
data | 最大数据大小(KB) |
fsize | 最大文件大小(KB) |
memlock | 最大锁定内存地址空间(KB) |
nofile | 最大打开的文件描述符数量 |
rss | 最大持久设置大小(KB) |
stack | 最大堆栈大小(KB) |
cpu | 最大CPU时间(分钟) |
noproc | 最大进程数量 |
as | 地址空间限制(KB) |
maxlogins | 用户最大登录次数 |
maxsyslogins | 系统上登录的最大数量 |
priority | 运行用户进程的优先级 |
locks | 用户可持有的最大文件锁数量 |
sigpending | 最大挂起的信号数量 |
msgqueue | POSIX消息队列使用的最大内存(字节) |
nice | 最大可提升到的合适优先级 |
rtprio | 最大实时优先级 |
nofile、noproc、core参数可修改为如下值:
# *表示所有用户,可只设置root和kingbase用户
* soft nofile 65536
# 注意:设置nofile的hard limit不能大于/proc/sys/fs/nr_open,否则注销后将无法正常登陆
* hard nofile 65535
* soft nproc 65536
* hard nproc 65535
# unlimited表示无限制
* soft core unlimited
* hard core unlimited
- RemoveIPC参数
systemd-logind服务中引入的一个特性,是当一个用户退出系统后,会删除所有有关的IPC对象。该特性由/etc/systemd/logind.conf文件中的RemoveIPC参数控制。某些操作系统会默认打开,会造成程序信号丢失等问题(只有redhat7及以上和一些特殊的国产Linux的版本需要修改,改之前可先查看此项是否为默认yes)。设置RemoveIPC=no。 设置后重启服务:
systemctl daemon-reload
systemctl restart systemd-logind.service
预安装工作
在安装KingbaseES时,安装用户对于安装路径需有“读”、“写”、“执行”的权限。在Linux系统中,需要以非root用户执行安装程序,且该用户要有标准的home目录。
因此,建议在正式安装前,新建kingbase用户作为KingbaseES专用的系统用户,您可以先使用root用户运行如下命令创建kingbase用户:
useradd -m kingbase
注意
创建安装系统用户kingbase之后,如无特殊说明,本指南后续的操作默认使用kingbase用户进行操作。
该命令会同时创建同名用户组kingbase以及用户根目录/home/kingbase。继续运行如下命令设置kingbase用户的密码:
passwd kingbase
密码需要输入两次,保证两次输入的密码相同。
安装目录
KingbaseES默认的安装目录是 /opt/Kingbase/ES/V8 。如果不存在,您需要使用root用户先创建该目录,并赋予kingbase用户对该目录的读写权限。
mkdir -p /opt/Kingbase/ES/V8
chmod o+rwx /opt/Kingbase/ES/V8
chown -R kingbase:kingbase /opt/Kingbase/ES/V8
也可以自定义安装路径。如自定义安装路径为 /home/kingbase/kdb ,使用kingbase用户创建目录的命令如下:
su - kingbase
mkdir /home/kingbase/kdb
数据目录
数据目录是KingbaseES中存放数据文件的目录,默认是在安装目录下的data目录。也可以与安装目录分开单独设置。您可以根据业务系统数据量来单独设置数据目录路径,例如将数据目录初始化在本机硬盘或者挂载在盘阵上。 您可以运行如下命令创建数据目录:
mkdir /opt/Kingbase/ES/V8/data
数据目录不必事先创建。安装过程中会提示指定数据目录,如果目录不存在安装程序会自动创建。
安装包的挂载与取消
iso格式的安装程序包需要先挂载才能使用。挂载iso文件需要使用root用户。比如挂载的目录是iso文件同级目录KingbaseES,您可以运行如下命令进行挂载:
#cd KingbaseES_V008R006C005B0041_Lin64_install.iso所在目录
su
mount KingbaseES_V008R006C005B0041_Lin64_install.iso ./KingbaseESV8
KingbaseES目录下可以看到setup目录和setup.sh脚本。安装完成后您可以运行如下命令取消挂载iso文件:
su
umount ./KingbaseESV8
此时KingbaseES已经和iso文件解除挂载关系,您在KingbaseES目录下不会再看到安装相关文件。
开始安装
整体的安装流程如下图所示。
启动安装程序
命令行安装支持中文和英文的文字提示。根据操作系统的语言设置会显示对应语言的提示信息。您可以执行如下命令查看操作系统的语言设置:
echo $LAN
如果系统显示值包含“zh_CN”,则为中文语言,安装程序会显示中文内容。否则,您可以执行如下命令修改语言设置为中文:
export LANG=zh_CN.UTF-8
接下来开始进行命令行安装过程。您首先进入安装程序中setup.sh所在目录,以kingbase用户执行如下命令:
sh setup.sh -i console
命令执行后,将会启动安装程序。
您输入1,再按ENTER,选择“安装新的实例”;
您输入2,再按ENTER,选择“修改存在的实例”。
初次安装,输入1,按ENTER,进入“简介”界面。
简介
“简介”界面中提供了KingbaseES版本和安装程序版本等信息。
输入quit,按ENTER退出安装;
输入back,按ENTER返回前一屏幕;
直接按ENTER进行下一步操作。
若无特殊说明,以下各步骤皆与此相同。
许可协议
在此步骤您需要阅读完整的许可协议。连续按ENTER翻页阅读直到结束。
您输入Y(不分大小写)表示接受此许可协议条款。
您输入N(不分大小写)表示不接受此许可协议条款,输入其他无效。
若不接受,则会提示警告信息,无法继续安装,提示用户重新选择。
选择安装集
根据安装后数据库服务功能的不同,KingbaseES可分为完全安装、客户端安装和定制安装三种安装集。
- 完全安装:包括数据库服务器、高可用组件、接口、数据库开发管理工具、数据库迁移工具、数据库部署工具。
- 客户端安装:包括接口、数据库开发管理工具、数据库迁移工具、数据库部署工具。
- 定制安装:在数据库服务器、高可用组件、接口、数据库开发管理工具、数据库迁移工具、数据库部署工具所有组件中自由选择。
您输入1,或按ENTER接受缺省项,选择“完全安装”安装集,系统将安装KingbaseES所有组件,跳至 选择授权文件 。
您输入2,选择“客户端安装”安装集,系统将安装KingbaseES的所有客户端工具、编程接口、扩展插件以及命令行可执行二进制文件,跳至 选择安装文件夹 。
您输入3,选择“定制安装”安装集,可根据需求选择安装所需功能组件,将进入下一步 选择产品功能组件 。
选择产品功能组件
如选择定制安装的安装集,您需要继续选择产品功能组件。
输入 不需要安装 的功能组件的序号,并以逗号分隔。
输入“?<号码>”,可查看该功能部件的说明。
这里选择的是 不需要安装 的组件。如果全部安装,则不需要输入,点击ENTER继续下一步。
选择授权文件
此步骤用于选择授权文件,若指定的授权文件合法,则将显示授权文件的详细信息。
您输入授权文件的绝对路径后,按ENTER以检查授权文件,若授权文件有效,则进入下一步骤。
选择安装文件夹
此步骤用于选择安装路径。默认安装路径是/opt/Kingbase/ES/V8。
您可自行输入一个绝对路径作为安装目录。缺省直接按ENTER键,即为默认路径。
再次确认完整路径,输入Y(不分大小写),按ENTER键继续。
预安装摘要
您在此步骤会看到即将安装产品的摘要信息。包括:
- 产品名称。
- 安装文件夹。
- 指定安装的功能组件。
- 安装路径所在磁盘空间信息。
安装确认
您在此步骤进行安装确认。按ENTER键系统开始执行安装过程。
正在安装
安装过程中会不断刷新安装进度。
如选择“完全安装”安装集,安装进度100%之后,将至 初始化数据库 。
如选择“客户端安装”安装集,安装进度100%之后,将至 安装完成 。
如选择“定制安装”安装集,并且选择安装数据库服务器组件,安装进度100%之后,将至 初始化数据库 。
初始化数据库
首先选择数据库数据目录,默认数据库数据目录为安装目录下的data目录。
设置如下初始化数据库参数:
- 默认端口为:54321(可自定义)
- 默认账户为:system(可自定义)
- 密码(自定义)
- 默认字符集编码为:UTF8(可选GBK、GB18030)
- 默认数据库兼容模式为:ORACLE(可选 PG、MySQL)
- 默认大小写敏感为:是(可选否)
- 默认数据块大小为:8k(可选16k、32k)
- 默认加密方法为sm4(可选 rc4)
- 默认身份认证方法为scram-sha-256(可选 scram-sm3,sm4,sm3)
安装完成
若安装过程中没有出现任何警告或错误,将显示如下界面。
按ENTER键退出安装程序。
执行root.sh
如果想注册数据库服务为系统服务,您可以在安装并初始化数据库成功后,执行root.sh脚本来注册并启动数据库服务,具体步骤如下:
- 打开新终端;
- 切换到root用户;
- 运行${安装目录}/install/script/root.sh 。
如果想启动或停止数据库服务,进入${安装目录}/Server/bin目录执行如下命令:
#启动服务
sys_ctl -w start -D ${Data文件目录} -l "${Data文件目录}/sys_log/startup.log"
sys_ctl -w start -D /opt/Kingbase/ES/V8/data -l "/opt/Kingbase/ES/V8/data/sys_log/startup.log"
#停止服务
sys_ctl stop -m fast -w -D ${Data文件目录}
sys_ctl stop -m fast -w -D /opt/Kingbase/ES/V8/data
修改用户密码
cd /opt/Kingbase/ES/V8/Server/bin
./ksql -p 54321 -U system test
ALTER USER system WITH PASSWORD 'Zykj@405406';
安装后检查
查看安装日志
在${安装目录}/Logs目录下,存在名称为 “install.log” 的日志文件,其中记录了安装过程的所有信息。您可以打开日志文件,查看如下所示安装结果信息判断是否安装正确。
查看开始菜单
查看应用程序菜单中是否安装了KingbaseES菜单项,并且正确关联到对应的程序。开始菜单结构如下:
KingbaseES
- 帮助
- 数据库开发管理工具
- 数据迁移工具
- 数据库部署工具
- 迁移评估工具
- web版数据库开发管理工具
- 异构数据比对工具
- 异构数据同步服务
- 卸载
验证工具是否能连接数据库
您可以使用交互式终端工具(ksql)连接数据库。进入${安装目录}/Server/bin目录,执行如下命令:
./ksql -p 54321 -U system test
-p参数指定初始化数据库时设置的端口。-U参数指定初始化数据库时设置的管理员用户,也可以是其他用户。
如果ksql能够正常连接数据库服务,则说明数据库安装正常。。
查看已安装数据库的版本信息
进入${安装目录}/Server/bin目录,执行
./kingbase –V;
或在交互式终端(ksql)中执行
select version();
解决缺库问题
如果安装机器操作系统缺少必要的so库文件,您可通过如下命令查看到有缺少so库文件的情况。在${安装目录}/Server/bin目录下执行:
ldd * | grep "not found"
在${安装目录}/Server/lib下,执行如下命令检查是否存在缺少的so库文件:
ls
若检查到安装目录/Server/lib下存在缺少的so库文件,则在安装目录/Server/lib下存在缺少的so库文件,则在{安装目录}/Server/lib下,执行
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`
卸载KingbaseES
删除数据库服务
如果在安装后执行root.sh脚本在系统中注册了数据库服务,需要在卸载前执行rootuninstall.sh脚本删除已注册的数据库服务。具体步骤如下:
- 打开新终端;
- 切换到root用户;
- 运行${安装目录}/install/script/rootuninstall.sh 。
控制台卸载
启动卸载
您以kingbase用户登录系统后,进入${安装目录}/Uninstall目录,执行如下命令,启动卸载程序。
sh Uninstaller -i console
准备卸载
输入quit再按ENTER退出卸载过程;直接按ENTER继续进行下一步。若无特殊说明,以下各步骤皆与此相同。
正在卸载
此步骤用于显示卸载进度。
完成卸载
对于初始化生成的文件或程序运行中生成的文件,卸载过程当中无法自动删除,请退出卸载程序后手动删除。
增删组件
整体操作流程如下图所示。
首先您要进入安装程序中setup.sh所在目录,以kingbase用户执行如下命令:
sh setup.sh -i console
命令执行后,将会启动安装程序。
输入2,选择“修改存在的实例”,按ENTER继续;
选择要修改的实例,按回车键;
输入1,选择“添加功能”,按ENTER继续添加功能的操作。
选择功能组件
按照提示按ENTER,显示可以添加的组件列表。输入 不需要安装 的组件编号,多个编号用逗号隔开。按ENTER开始安装。
注意
这里选择的是 不需要安装 的组件。如果全部安装,则不需要输入,按回车键继续下一步。
安装进度
此步骤用于显示安装进度。如果选择的组件包含数据库服务器,则后续会继续选择授权文件、初始化数据库步骤。
完成安装
若安装过程中没有出现任何警告或错误,安装完成后提示按ENTER退出安装程序。
删除组件
当需要删除数据库某项组件而非数据库系统时,您可以通过数据库删除功能来进行维护。
启动入口
以kingbase用户登录系统后,进入${安装目录}/Uninstall目录,执行如下命令,启动卸载程序。
sh Uninstaller -i console
命令执行后,将会启动安装程序。
输入2,按回车键,选择“修改存在的实例”;
选择要修改的实例,按回车键;
输入2,选择“删除功能”,按ENTER继续删除功能的操作。
选择功能组件
显示已经安装的组件列表。输入需要删除的组件编号,多个编号用逗号隔开。按ENTER开始删除。
删除及完成
此步骤用于显示删除进度。删除完成后自动退出安装程序。
设置PostGIS
创建数据库
create database gis;
切换到gis数据库
\c gis
查看当前数据库的扩展模块
\dx
查看有哪些可加载的扩展模块
SELECT * FROM pg_available_extensions;
创建postgis扩展
create extension postgis;
报错:缺少依赖
缺少的依赖在/opt/Kingbase/ES/V8/Server/lib目录下的postgis_libs中
复制一份到上一层lib目录下即可:
cp libgmp.so.10 ../
再次创建postgis,如下所示就成功了
下载地址
失效了和我说
链接:https://pan.baidu.com/s/1-a-7SzTGEb6oGY_r7ZBYDA
提取码:0003