环境:arm64
系统:银河麒麟 V10 SP3
数据库--版本:KingbaseES_V008R006C008B0014_Aarch64_install
授权文件--版本:V008R006-license-企业版-90天
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
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
也可以自定义安装路径。如自定义安装路径为 /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_V008R006C008B0014_Lin64_install.iso所在目录
su
mount KingbaseES_V008R006C008B0014_Lin64_install.iso ./KingbaseESV8
KingbaseES目录下可以看到setup目录和setup.sh脚本。安装完成后您可以运行如下命令取消挂载iso文件:
su
umount ./KingbaseESV8
此时KingbaseES已经和iso文件解除挂载关系,您在KingbaseES目录下不会再看到安装相关文件。
命令行安装支持中文和英文的文字提示。根据操作系统的语言设置会显示对应语言的提示信息。您可以执行如下命令查看操作系统的语言设置:
echo $LANG
如果系统显示值包含“zh_CN”,则为中文语言,安装程序会显示中文内容。否则,您可以执行如下命令修改语言设置为中文:
export LANG=zh_CN.UTF-8
接下来开始进行命令行安装过程。您首先进入安装程序中setup.sh所在目录,以kingbase用户执行如下命令:
sh setup.sh -i console
命令执行后,将会启动安装程序。
输入1,再按
“简介”界面中提供了KingbaseES版本和安装程序版本等信息。
直接按
若无特殊说明,以下各步骤皆与此相同。
在此步骤您需要阅读完整的许可协议。连续按
图 2.2.26 许可协议
您输入Y(不分大小写)表示接受此许可协议条款。
您输入N(不分大小写)表示不接受此许可协议条款,输入其他无效。
若不接受,则会提示警告信息,无法继续安装,提示用户重新选择。
根据安装后数据库服务功能的不同,KingbaseES可分为完全安装、客户端安装和定制安装三种安装集。
您输入1,或按
您输入2,选择“客户端安装”安装集,系统将安装KingbaseES的所有客户端工具、编程接口、扩展插件以及命令行可执行二进制文件,跳至 选择安装文件夹 。
您输入3,选择“定制安装”安装集,可根据需求选择安装所需功能组件,将进入下一步 选择产品功能组件 。
如选择定制安装的安装集,您需要继续选择产品功能组件。
输入 不需要安装 的功能组件的序号,并以逗号分隔。
输入“?<号码>”,可查看该功能部件的说明。
注意
这里选择的是 不需要安装 的组件。如果全部安装,则不需要输入,点击
此步骤用于选择授权文件,若指定的授权文件合法,则将显示授权文件的详细信息。
您输入授权文件的绝对路径后,按
此步骤用于选择安装路径。默认安装路径是/opt/Kingbase/ES/V8。
图 2.2.30 选择安装文件夹
您可自行输入一个绝对路径作为安装目录。缺省直接按
再次确认完整路径,输入Y(不分大小写),按
您在此步骤会看到即将安装产品的摘要信息。包括:
您在此步骤进行安装确认。按
安装过程中会不断刷新安装进度。
如选择“完全安装”安装集,安装进度100%之后,将至 初始化数据库 。
如选择“客户端安装”安装集,安装进度100%之后,将至 安装完成 。
如选择“定制安装”安装集,并且选择安装数据库服务器组件,安装进度100%之后,将至 初始化数据库 。
首先选择数据库数据目录,默认数据库数据目录为安装目录下的data目录。
设置如下初始化数据库参数:
若安装过程中没有出现任何警告或错误,将显示如下界面。
图 2.2.45 安装完成
按
如果想注册数据库服务为系统服务,您可以在安装并初始化数据库成功后,执行root.sh脚本来注册并启动数据库服务,具体步骤如下:
如果想启动或停止数据库服务,进入${安装目录}/Server/bin目录执行如下命令:
#启动服务
sys_ctl -w start -D ${Data文件目录} -l "${Data文件目录}/sys_log/startup.log"
#停止服务
sys_ctl stop -m fast -w -D ${Data文件目录}
进入数据库使用一下命令创建用户:
create user postgres with password 'xx';
给新创建用户权限:
alter user postgres with superuser;
创建nvisual数据库并把用户指定为postgres
create database nVisual owner to postgres;
解压插件包,将插件包的 bin、lib、share/extension 目录下的文件全部依次拷贝到数据库安装目录的 Server/bin、Server/lib、Server/share/extension 下。
进入到数据库内,开启postgis,命令如下。
#开启pgsql的插件。
create extension postgis;
create extension postgis_raster;
create extension postgis_topology;
#查看postgis版本,验证安装、启动是否成功 。
SELECT PostGIS_full_version();
检查MVT功能是否正常,出现下图数据,或可视化工具内的值,为功能正常,其余报错请按照报错描述咨询金仓客服人员。
#验证MVT是否能正常使用,执行此SQL出现下图数据表示开启MVT功能正常。
WITH mvtgeom AS ( SELECT ST_TileEnvelope(12,513,412) AS geom ) SELECT ST_AsMVT(mvtgeom.*) FROM mvtgeom;
解压插件包,将插件包的 lib、share/extension 目录下的文件全部依次拷贝到数据库安装目录的 Server/lib、Server/share/extension 下。
进入到数据库内,开启pgrouting,命令如下。
#开启pgrouting的插件。
CREATE EXTENSION pgrouting;
#查看pgrouting版本
select pgr_version();
将下面两个插件的名称修改为:
pg_trgm : sys_trgm
postgres_fdw : kingbase_fdw
ksql -U postgres -d nVisual -f xx.sql