金仓数据库 KingbaseES V9 单机安装指南
号外!金仓数据库产品体验官火热招募。本文主要记录人大金仓 KES V9 的安装步骤以及经验总结,让大家更容易安装 KingbaseES,安装过程很丝滑。金仓数据库管理系统[简称: KingbaseES ]是中电科金仓公司自主研发的、具有自主知识产权的商用关系型数据库管理系统(DBMS)。该产品面向事务处理类应用,兼顾各类数据分析类应用,可用做信息管理系统、业务及生产系统、决策支持系统、全文检索、地
大家好,这里是公众号 DBA学习之路,分享一些学习国产数据库路上的知识和经验。
目录
前言
电科金仓最近发布了产品体验官招募活动,寻求长期合作伙伴,感兴趣的朋友可以参加体验:号外!金仓数据库产品体验官火热招募。
本文主要记录人大金仓 KES V9 的安装步骤以及经验总结,让大家更容易安装 KingbaseES,安装过程很丝滑。
介绍
金仓数据库管理系统[简称: KingbaseES ]是中电科金仓公司自主研发的、具有自主知识产权的商用关系型数据库管理系统(DBMS)。该产品面向事务处理类应用,兼顾各类数据分析类应用,可用做信息管理系统、业务及生产系统、决策支持系统、全文检索、地理信息系统等的承载数据库。
KingbaseES(KES) 支持多种操作系统和硬件平台:支持 Linux、Windows、国产 Kylin 等数十个操作系统产品版本,支持通用x86_64 及国产龙芯、飞腾、申威等 CPU 硬件体系架构。
针对不同类型的客户需求,KingbaseES 提供标准版、企业版、专业版、开发版等多种版本。这些版本构建于同一数据库引擎上,不同平台版本完全兼容。
KingbaseES 软件能够提供一主一备以及一主多备的高可用集群架构,实现数据及实例级 (异地) 故障容灾,也能够提供多节点并行服务,内存融合及存储共享,实现高并发性能利用最大化,结合读写分离或备份使用同步实现数据保护最大化。
环境准备
本文演示环境为:
主机名 | 版本 | CPU | 内存 | 硬盘 |
---|---|---|---|---|
kes | 银河麒麟V10 | x86 | 8G | 100G |
KingbaseES 对内存和硬盘的要求不高,资源不足的同学可以参考以下配置:
版本 | 要求 |
---|---|
标准版/企业版/专业版/开发版 | CPU:X86、龙芯、飞腾、鲲鹏 内存:512MB 以上 硬盘:11GB 以上空闲空间 |
系统安装建议不要使用最小化,可能确实必要命令(ifconfig,unzip 等),对新手不是很友好。
安装包下载
金仓官网提供安装软件介质,直接访问:下载中心
选择对应版本以及系统类型下载即可,下载完成后建议进行版本校验认证:
$ md5sum KingbaseES_V009R001C001B0030_Lin64_install.iso
3adf56122ea7d407bc43138ab8b11f84 KingbaseES_V009R001C001B0030_Lin64_install.iso
## 官方 MD5 校验码
3ADF56122EA7D407BC43138AB8B11F84
如不是从官方渠道下载,则必须要与官方提供的校验码需保持一致,校验无误后,则可以放心使用。
安装前配置
检查操作系统版本
检查操作系统版本信息:
[root@kes ~]# cat /etc/os-release
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Halberd)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Halberd)"
ANSI_COLOR="0;31"
关闭防火墙
数据库安装均建议关闭防火墙:
[root@kes ~]# systemctl stop firewalld
[root@kes ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
创建用户
建议在所有服务器上创建 KES 产品的安装用户 kingbase,而非使用 root 身份执行安装部署:
[root@kes ~]# useradd -d /home/kingbase -m kingbase
[root@kes ~]# echo "kingbase:kingbase" | chpasswd
[root@kes ~]# id kingbase
用户id=1001(kingbase) 组id=1001(kingbase) 组=1001(kingbase)
如果有密码复杂性要求,不想设置密码太复杂的话,可以取消密码复杂度:
[root@kes ~]# sed -i 's/^password\+[[:space:]]\+requisite[[:space:]]\+pam_pwquality.so/#&/g' /etc/pam.d/system-auth
[root@kes ~]# sed -i 's/use_authtok$//' /etc/pam.d/system-auth
创建目录
为了利于数据库的日常运维、持续使用、存储扩容等,我们在安装前必须做好选项、存储目录规划:
选项 | 设置 |
---|---|
目录 | 安装软件存储目录: /install 备份目录: /backup 归档目录: /archive 数据存储目录: /data KES 安装目录: /KingbaseES/V9 |
端口 | 54321 |
SYSTEM 密码 | kingbase |
数据库编码格式 | UTF8 |
创建安装所需目录并且授权:
[root@kes ~]# mkdir -p /KingbaseES/V9 /data /backup /archive /install
[root@kes ~]# chown -R kingbase:kingbase {/KingbaseES,/data,/backup,/archive,/install}
[root@kes ~]# chmod -R 775 {/KingbaseES,/backup,/archive,/install}
## 注意:DATA 目录这里必须要授权 700,否则后续数据库无法启动
[root@kes ~]# chmod -R 700 /data
系统参数配置
为了避免在 KingbaseES 安装和使用过程中出现问题,官方建议调整系统内核参数:
参数 | 参考值 | 所在文件 |
---|---|---|
semmsl | 250 | /proc/sys/kernel/sem |
semmns | 32000 | /proc/sys/kernel/sem |
semopm | 100 | /proc/sys/kernel/sem |
semmni | 128 | /proc/sys/kernel/sem |
shmall | 2097152 | /proc/sys/kernel/shmall |
shmmax | 最小: 536870912 最大: 物理内存值减去1字节 建议: 大于物理内存的一半 | /proc/sys/kernel/shmmax |
shmmin | 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 |
注意:这里关于 shmmax 和 shmall 参数值的计算,我们可以参考 oracle 来设置:
# 物理内存(KB)
os_memory_total=$(awk '/MemTotal/{print $2}' /proc/meminfo)
# 获取系统页面大小,用于计算内存总量
pagesize=$(getconf PAGE_SIZE)
((shmall = (os_memory_total - 1) * 1024 / pagesize))
((shmmax = os_memory_total * 1024 - 10))
# 如果 shmall 小于 2097152,则将其设为 2097152
((shmall < 2097152)) && shmall=2097152
# 如果 shmmax 小于 4294967295,则将其设为 4294967295
((shmmax < 4294967295)) && shmmax=4294967295
复制以上命令,直接执行即可计算得出这两个参数值:
[root@kes ~]# echo $shmall
2097152
[root@kes ~]# echo $shmmax
7008067574
根据官方建议值,配置系统参数文件:
[root@kes ~]# cat<<-EOF>>/etc/sysctl.conf
fs.aio-max-nr= 1048576
fs.file-max= 6815744
kernel.shmall= 2097152
kernel.shmmax= 7008067574
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
EOF
## 生效配置
[root@kes ~]# sysctl -p
资源配置
限制用户可使用的资源数量对系统的稳定性非常重要,可以通过调整资源限制数量改进系统性能:
[root@kes ~]# cat<<-EOF>>/etc/security/limits.conf
kingbase soft nofile 65536
kingbase hard nofile 65536
kingbase soft nproc 65536
kingbase hard nproc 65536
kingbase soft core unlimited
kingbase hard core unlimited
EOF
配置 RemoveIPC
systemd-logind 服务中引入的一个特性 RemoveIPC,会造成程序信号丢失等问题,只有Redhat7 及以上和一些特殊的国产Linux的版本需要修改,改之前可先查看此项是否为默认yes),需要设置 RemoveIPC=no:
[root@kes ~]# sed -i 's/#RemoveIPC=no/RemoveIPC=no/' /etc/systemd/logind.conf
[root@kes ~]# grep RemoveIPC /etc/systemd/logind.conf
RemoveIPC=no
# 重新加载 systemd 守护进程并重启 systemd-logind 服务生效
[root@kes ~]# systemctl daemon-reload
[root@kes ~]# systemctl restart systemd-logind.service
检查 /tmp 目录
KES 安装对于 /tmp 目录有一定要求,至少需要 10G 空间,否则安装时会报警并使用 kingbase 用户家目录作为替代:
Now launch installer...
正在准备进行安装
警告:/tmp 磁盘空间不足!正在尝试将 /home/kingbase 用于安装基础和 tmp dir。
手动挂载 /tmp 目录空间:
[root@kes ~]# cat<<-EOF>>/etc/fstab
tmpfs /tmp tmpfs size=10G 0 0
EOF
[root@kes ~]# mount -o remount /tmp
[root@kes ~]# df -h | grep /tmp
tmpfs 10G 20K 10G 1% /tmp
配置环境变量
这一步官方文档没有提到,是以我安装其他数据库的经验添加:
[root@kes ~]# cat<<-\EOF>>/home/kingbase/.bash_profile
export KES_HOME=/KingbaseES/V9/Server
export LD_LIBRARY_PATH=$KES_HOME/lib:/lib:/usr/lib
export PATH=$KES_HOME/bin:/usr/sbin:$PATH
export PS1="[`whoami`@`hostname`:"'$PWD]$ '
EOF
环境配置方面到这就结束了,没有看到关于 selinux,swap 以及透明大页这些配置的要求,所有也就没有多此一举了。
KES 安装
KES 安装支持以下 3 种方式:
- 图形化安装
- 命令行安装
- 静默安装
本文基于三种模式都会演示一遍。
安装 ISO 挂载
KES 的安装包和达梦的类似,都是 iso 格式的,iso 格式的安装包需要先挂载才能使用。
挂载 iso 文件需要使用 root 用户,安装包上传在 /install 目录,挂载到 /mnt 目录下:
[root@kes ~]# cd /install/
[root@kes install]# ls
KingbaseES_V009R001C001B0030_Lin64_install.iso
[root@kes install]# mount -o loop KingbaseES_V009R001C001B0030_Lin64_install.iso /mnt/
mount: /mnt: WARNING: source write-protected, mounted read-only.
## 挂载目录下可以看到 setup 目录和 setup.sh 脚本
[root@kes install]# ll /mnt/
dr-xr-xr-x 2 root root 2048 5月 21 21:44 setup
-r-xr-xr-x 1 root root 3932 5月 21 21:44 setup.sh
## 将挂载出来的安装文件拷贝到 /install 目录下
[root@kes install]# cp -r /mnt/* /install
[root@kes install]# ll
-rw-r--r-- 1 root root 2502940672 9月 24 21:23 KingbaseES_V009R001C001B0030_Lin64_install.iso
dr-xr-xr-x 2 root root 91 9月 24 21:24 setup
-r-xr-xr-x 1 root root 3932 9月 24 21:25 setup.sh
## 复制完成后取消安装 iso 的挂载
[root@kes install]# umount /mnt
此时 /mnt 已经和 iso 文件解除挂载关系,在 /mnt 目录下不会再看到安装相关文件。
配置语言环境
图形化安装支持中文和英文的安装界面,根据操作系统的语言设置会显示对应语言的安装界面,可以执行如下命令查看操作系统的语言设置:
[root@kes install]# echo $LANG
zh_CN.UTF-8
## 显示值包含“zh_CN”,则为中文语言,否则为英文;我安装系统时选的中文,所以是中文环境
## 如何不是也可以手动切换为中文
export LANG=zh_CN.UTF-8
设置好语言环境后,切换为安装用户 kingbase,进入安装程序 setup.sh 所在目录:
## 由于之前 root 复制的安装文件权限为 root,所以需要重新授权 kingbase 用户
[root@kes install]# chown -R kingbase:kingbase /install
[root@kes install]# su - kingbase
c[kingbase@kes ~]$ cd /install/
[kingbase@kes install]$ ls
KingbaseES_V009R001C001B0030_Lin64_install.iso setup setup.sh
查看一下 setup.sh 的帮助命令:
[kingbase@kes install]$ ./setup.sh -i silent -h
Usage: install [-f <path_to_installer_properties_file> | -options]
(to execute the installer)
Where options include:
-? Show this help text
-h Show this help text
-help Show this help text
--help Show this help text
-i [gui | console | silent]
Specify the user interface mode for the installer
-D<name>=<value>
Specify installer properties
-r <path_to_generate_response_file>
Generates response file.
JVM heap size options are only applicable to Installers
-jvmxms <size>
Specify JVM initial heap size.
-jvmxmx <size>
Specify JVM maximum heap size.
The options field may also include the following in case of uninstaller
if it is enabled for Maintenance Mode
-add <feature_name_1> [<feature_name_2 ...]
Add Specified Features
-remove <feature_name_1> [<feature_name_2 ...]
Remove Specified Features
-repair
Repair Installation
-uninstall
Uninstall
接下来就可以开始进行 KingbaseES 的安装了。
图形化安装
注意:最小化安装的操作系统可以跳过图形化安装这段,直接去命令行和静默安装了。
启动安装程序
启动图形化安装程序,指定参数 -i gui
为图形化安装:
## 这里不指定 -i 参数,直接执行 sh setup.sh 也是可以的
[kingbase@kes install]$ sh setup.sh -i gui
这里遇到一个问题,如果当前环境不支持图形化调用或者没配置好图形化界面(包括最小化安装),则会报错如下:
正在启动安装程序...
Graphical installers are not supported by the VM. The console mode should be used instead...
===============================================================================
KingbaseES V9 (使用 InstallAnywhere 创建)
-------------------------------------------------------------------------------
正在准备控制台模式安装...
提示使用命令行模式进行安装,这里可以输入 quit
取消,重新配置好图形化界面后再重新执行即可。
安装 KES 软件
这里建议使用 VNC 连接主机,可以直接调用出来图形化界面:
第一步是安装程序简介,直接下一步:
勾选许可协议,没什么好说的:
根据安装后数据库服务功能的不同,KingbaseES 可分为完全安装、客户端安装和定制安装三种安装集:
- 完全安装:包括数据库服务器、高可用组件、接口、数据库开发管理工具、数据库迁移工具、数据库部署工具。
- 客户端安装:包括接口、数据库开发管理工具、数据库迁移工具、数据库部署工具。
- 定制安装:在数据库服务器、高可用组件、接口、数据库开发管理工具、数据库迁移工具、数据库部署工具所有组件中自由选择。
大家根据自己的需求进行选择,这里我选择完全安装:
注意:数据库 license 是 KingbaseES 提供的授权文件,其中会对数据库有效日期、发布类型、最大并发连接数、mac 地址、ip 等信息进行设置。如果在 license 文件中信息与安装环境中相关信息不匹配,数据库将无法启动。
如果在安装时未选择 license 文件,则会使用软件自带试用版授权:
选择安装目录,选择我们规划好的目录:/KingbaseES/V9
安装摘要,告知我们需要安装的功能组件以及磁盘空间信息:
确认没问题后,选择安装按钮进行安装:
等待一段时间后,很快软件就会完成安装:
到这一步软件安装结束,则代表 KES 软件已经安装完成了,接下来就是初始化数据库步骤。
初始化数据库
首先选择数据库数据目录,选择规划好的存储数据目录:/data
下一步就是初始化数据库参数:
- 默认端口为:54321(可自定义);
- 默认账户为:system(可自定义);
- 密码(自定义);
- 默认字符集编码为:UTF8(可选 default、GBK、GB2312、GB18030);
- 区域,可选值将随字符集编码选项发生变动;
- 当字符集编码为 default 时,默认区域值为:default(可选 C);
- 当字符集编码为 UTF8 时,默认区域值为:zh_CN.UTF-8(可选 en_US.UTF-8、C)
- 当字符集编码为 GBK 时,默认区域值为:zh_CN.GBK(可选 C);
- 当字符集编码为 GB2312 时,默认区域值为:zh_CN.GB2312(可选 C);
- 当字符集编码为 GB18030 时,默认区域值为:zh_CN.GB18030(可选 C);
- 默认数据库兼容模式为:ORACLE(可选 PG、MySQL);
- 默认大小写敏感为:是(可选否);
- 默认数据块大小为:8k(可选16k、32k);
- 默认身份认证方法为 scram-sha-256(可选 scram-sm3,sm4,sm3);
- 自定义参数(自定义),可自由输入任何值,作为初始化数据库的参数;
注意:输入的参数值不能包含 -W,–pwprompt,% 和 $。
根据我们前面规划好的参数进行填写即可(基本都是默认值):
点击下一步,开始初始化数据库:
等待几分钟即可完成数据库初始化,提示 KES 安装成功,点击完成即可退出安装程序:
[kingbase@kes install]$ ./setup.sh -i gui
Now launch installer...
正在准备进行安装
正在从安装程序档案中提取 JRE...
正在解包 JRE...
正在从安装程序档案中提取安装资源...
配置该系统环境的安装程序...
Verifying JVM........
正在启动安装程序...
Complete.
别忘记还有最后一步,root 用户下执行 root.sh 脚本:
## 这一步是为了注册数据库服务为系统服务
[root@kes ~]# /KingbaseES/V9/install/script/root.sh
Starting KingbaseES V9:
等待服务器进程启动 .... 完成
服务器进程已经启动
KingbaseES V9 started successfully
注册服务成功后,如果想启动或停止数据库服务,进入 /KingbaseES/V9/Server/bin 目录,使用 kingbase 用户执行如下命令:
# 停止服务
[kingbase@kes:/home/kingbase]$ sys_ctl stop -m fast -w -D /data
等待服务器进程关闭 .... 完成
服务器进程已经关闭
# 启动服务
[kingbase@kes:/home/kingbase]$ sys_ctl -w start -D /data -l "/data/sys_log/startup.log"
等待服务器进程启动 .... 完成
服务器进程已经启动
到此,图形化安装部署演示结束,过程十分流畅,堪称丝滑。
命令行安装
命令行安装与图形化安装其实差不多,大概演示一下安装过程。
启动安装程序
启动安装程序:
[kingbase@kes:/install]$ sh setup.sh -i console
Now launch installer...
正在准备进行安装
正在从安装程序档案中提取 JRE...
正在解包 JRE...
正在从安装程序档案中提取安装资源...
配置该系统环境的安装程序...
Verifying JVM........
正在启动安装程序...
===============================================================================
KingbaseES V9 (使用 InstallAnywhere 创建)
-------------------------------------------------------------------------------
正在准备控制台模式安装...
===============================================================================
请稍候
---
===============================================================================
简介
--
本安装程序将指导您完成 KingbaseES V9 的安装。
建议您在继续本次安装前,退出所有程序。
如果要回到前一屏幕进行更改,可输入“back”。
如果要取消本次安装,可随时输入“quit”。
KingbaseES Version: V9
Kingbase Type:BMJ-NO
Installer Version: V009R001C001B0030
Install DATE:202409251209
Kingbase Inc.
http://www.kingbase.com.cn
请按 <ENTER> 键继续:
如果不想安装也可以输入 quit
取消。
安装 KES 软件
回车继续安装,下面这一部分全都是许可协议,一路回车即可:
===============================================================================
请稍候
---
===============================================================================
许可协议
----
## 这一部分全都是许可协议内容,这里就不展示了,比较占篇幅,中间一直回车就完事了
是否接受此许可协议条款? (Y/N): Y
输入 Y 接受许可,选择完全安装:
===============================================================================
选择安装集
-----
请选择将由本安装程序安装的“安装集”。
->1- 完全安装
2- 客户端安装
3- 定制安装
输入“安装集”的号码,或按 <ENTER> 键以接受缺省值
:
===============================================================================
请稍候
---
选择授权文件,没有就直接回车:
===============================================================================
选择授权文件
------
不选择授权文件,则使用软件自带试用版授权
提示:请在有效期内及时更换正式授权文件。
文件路径 :
选择安装目录,输入 /KingbaseES/V9/,确认,回车继续:
===============================================================================
选择安装目录
------
请选择一个安装目录。
您想在哪一位置安装?
缺省安装文件夹: /opt/Kingbase/ES/V9
输入一个绝对路径,或按 <ENTER> 键以接受缺省路径
: /KingbaseES/V9/
安装文件夹为: /KingbaseES/V9
是否正确? (Y/N): Y
预安装摘要,没问题直接回车下一步:
===============================================================================
预安装摘要
-----
在继续执行前请检查以下信息:
产品名:
KingbaseES V9
安装文件夹:
/KingbaseES/V9
产品功能部件:
数据库服务器,
接口,
数据库部署工具,
高可用组件,
数据库开发管理工具,
数据迁移工具
安装空间磁盘信息
所需磁盘空间: 5378 MB 空闲磁盘空间: 77447 MB
请按 <ENTER> 键继续:
开始安装:
===============================================================================
准备就绪,可以安装
---------
本安装程序已准备完毕,可在下列位置安装 KingbaseES V9:
/KingbaseES/V9
按 <ENTER> 键进行安装:
===============================================================================
正在安装...
-------
[==================|==================|==================|==================]
[------------------|------------------|------------------|------------------]
===============================================================================
请稍候
---
等待进度条完成代表软件已经安装完成。
初始化数据库
接着上面流程继续,选择数据存储的目录:
===============================================================================
选择存储数据的文件夹
----------
请选择一个文件夹,该文件夹必须为空。
Data folder (默认﹕ /KingbaseES/V9/data): /data
配置数据库初始参数:
===============================================================================
数据库端口
-----
请输入数据库服务监听端口,默认54321。
端口 (默认﹕ 54321):
===============================================================================
数据库管理员
------
请输入数据库管理员用户名。
User (默认﹕ system):
===============================================================================
输入密码
----
本次安装需输入密码才能继续。
请输入密码: 请输入密码:*********
===============================================================================
再次输入密码
------
本次安装需再次输入密码才能继续。
请再次输入密码: 请再次输入密码:*********
===============================================================================
数据库服务字符集
--------
请输入服务端字符集编码。
1- default
->2- UTF8
3- GBK
4- GB2312
5- GB18030
输入您选择的号码,或按 <ENTER> 键以接受缺省值:
===============================================================================
区域
--
请输入数据库区域。
1- C
->2- zh_CN.UTF-8
3- en_US.UTF-8
输入您选择的号码,或按 <ENTER> 键以接受缺省值:
===============================================================================
数据库兼容模式
-------
请输入数据库兼容模式。
1- PG
->2- ORACLE
3- MySQL
输入您选择的号码,或按 <ENTER> 键以接受缺省值:
===============================================================================
字符大小写敏感特性
---------
请输入字符大小写敏感特性。
->1- YES
2- NO
输入您选择的号码,或按 <ENTER> 键以接受缺省值:
===============================================================================
存储块大小
-----
请输入存储块大小。
->1- 8k
2- 16k
3- 32k
输入您选择的号码,或按 <ENTER> 键以接受缺省值:
===============================================================================
身份认证方法
------
请选择身份认证方法。
->1- scram-sha-256
2- scram-sm3
3- sm4
4- sm3
输入您选择的号码,或按 <ENTER> 键以接受缺省值:
===============================================================================
自定义参数
-----
请输入自定义初始化数据库参数。
Custom (默认﹕ ):
开始初始化数据库:
===============================================================================
提示
--
数据库即将被安装,需要花费一些时间,请耐心等待。
请按 <ENTER> 键继续:
等待安装完成后,退出安装程序:
===============================================================================
安装完成
----
恭喜!KingbaseES V9 已成功地安装到:
/KingbaseES/V9
如果您需要将 KingbaseES V9 注册为系统服务,请运行
/KingbaseES/V9/install/script/root.sh
按 <ENTER> 键以退出安装程序:
Complete.
执行 root.sh 脚本:
[root@kes ~]# /KingbaseES/V9/install/script/root.sh
Starting KingbaseES V9:
等待服务器进程启动 .... 完成
服务器进程已经启动
KingbaseES V9 started successfully
命令行模式到这就安装结束了,说实话安装过程十分麻烦(吐槽:光是许可协议输出就一堆),不建议使用这种方式。
静默安装(非常建议)
静默安装我感觉是最方便的,只需要配置参数文件之后,一条命令即可完成安装。
静默安装模式下,安装程序通过读取配置文件来安装数据库。安装包 iso 文件挂载后,setup 目录下已存在 silent.cfg 模板文件,需要根据实际安装机器的情况修改参数值。
配置文件的参数可参考:
序号 | 参数名 | 默认值 | 说明 |
---|---|---|---|
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 | 授权文件的绝对路径,如果指定该参数,就会选择用户指定的 license 文件;如果未指定,则会使用软件自带试用版授权, 请在有效期内及时更换正式授权文件。 | |
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)default 2)UTF8 3)GBK 4)GB2312 5)GB18030 |
11 | DATABASE_MODE_PARAM | ORACLE | 数据库兼容模式,必填,大小写敏感,否则报错退出安装过程。 可选值: 1)ORACLE 2)PG 3)MySQL |
12 | LOCALE_PARAM | 当字符集编码为 default 时,默认区域值为:default(可选 C) 当字符集编码为 UTF8 时,默认区域值为:zh_CN.UTF-8 (可选 en_US.UTF-8、C) 当字符集编码为GBK 时,默认区域值为:zh_CN.GBK(可选 C) 当字符集编码为GB2312时,默认区域值为:zh_CN.GB2312(可选 C) 当字符集编码为GB18030时,默认区域值为:zh_CN.GB18030(可选 C) | |
13 | CASE_SENSITIVE_PARAM | YES | 数据库是否区分大小写,必填,大小写敏感,否则报错退出安装过程。可选值1)YES 2)NO |
14 | BLOCK_SIZE_PARAM | 8k | 存储块大小,必填,大小写敏感,否则报错退出安装过程。可选值 1)8k 2)16k 3)32k |
15 | AUTHENTICATION_METHOD_PARAM | scram-sha-256 | 默认身份认证方法为scram-sha-256(可选 scram-sm3,sm4,sm3) |
16 | INITCUSTOM | 自定义参数,作为初始化数据库的参数,选填 注意:输入的参数值不能包含-W,–pwprompt,%和$。 如果输入的参数值包含-c,则启动数据库将使用默认端口值54321。 |
查看默认的配置参数文件内容:
[kingbase@kes:/install/setup]$ grep -v "^\s*\(#\|$\)" /install/setup/silent.cfg
KB_LICENSE_PATH=
CHOSEN_INSTALL_SET=Full
CHOSEN_FEATURE_LIST=SERVER,KSTUDIO,KDTS,INTERFACE,DEPLOY,KINGBASEHA
USER_INSTALL_DIR=/opt/Kingbase/ES/V9
USER_SELECTED_DATA_FOLDER=
DB_PORT=54321
DB_USER=system
DB_PASS=
DB_PASS2=
ENCODING_PARAM=UTF8
LOCALE_PARAM=zh_CN.UTF-8
INITCUSTOM=
DATABASE_MODE_PARAM=ORACLE
CASE_SENSITIVE_PARAM=YES
BLOCK_SIZE_PARAM=8k
AUTHENTICATION_METHOD_PARAM=scram-sha-256
根据需求修改对应的参数值:
[kingbase@kes:/install/setup]$ vi /install/setup/silent.cfg
## 修改以下内容
USER_INSTALL_DIR=/KingbaseES/V9
USER_SELECTED_DATA_FOLDER=/data
DB_PASS=kingbase
DB_PASS2=kingbase
修改后的配置文件内容:
[kingbase@kes:/install/setup]$ grep -v "^\s*\(#\|$\)" /install/setup/silent.cfg
KB_LICENSE_PATH=
CHOSEN_INSTALL_SET=Full
CHOSEN_FEATURE_LIST=SERVER,KSTUDIO,KDTS,INTERFACE,DEPLOY,KINGBASEHA
USER_INSTALL_DIR=/KingbaseES/V9
USER_SELECTED_DATA_FOLDER=/data
DB_PORT=54321
DB_USER=system
DB_PASS=kingbase
DB_PASS2=kingbase
ENCODING_PARAM=UTF8
LOCALE_PARAM=zh_CN.UTF-8
INITCUSTOM=
DATABASE_MODE_PARAM=ORACLE
CASE_SENSITIVE_PARAM=YES
BLOCK_SIZE_PARAM=8k
AUTHENTICATION_METHOD_PARAM=scram-sha-256
修改完配置文件后,进入安装程序所在目录,以 kingbase 用户执行如下命令:
## -f 参数指定修改后配置文件的相对或绝对路径,相对路径是指相对 setup/silent.cfg 的相对路径。
[kingbase@kes:/install]$ ./setup.sh -i silent -f /install/setup/silent.cfg
Now launch installer...
Verifying JVM...Complete.
静默安装时不输出如何屏显,但是可以在安装完成后,查看安装日志 /KingbaseES/V9/install/Logs/KingbaseES_V9_安装_*.log:
[kingbase@kes:/home/kingbase]$ tail -2000f /KingbaseES/V9/install/Logs/KingbaseES_V9_*.log
等待安装完成后,如果没有报错,则代表安装成功,如果有类似如下错误:
则代表 silent.cfg 文件中参数取值有错误,未完成安装过程,需要修改后重新执行。
连接测试
连接 KES 数据库,查看版本信息:
## 查看 KES 版本
[kingbase@kes:/home/kingbase]$ kingbase -V
KINGBASE (KingbaseES) V009R001C001B0030
-- 使用 system 用户连接到 kingbase 数据库
[kingbase@kes:/home/kingbase]$ ksql -p 54321 -U system kingbase
用户 system 的口令:
输入 "help" 来获取帮助信息.
-- 查看数据库版本
kingbase=# select version();
version
----------------------------------------------------------------------------------------------------------------------
KingbaseES V009R001C001B0030 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
(1 行记录)
-- 创建数据库 lucifer
kingbase=# create database lucifer;
CREATE DATABASE
-- 查看数据库信息
kingbase=# \l
数据库列表
名称 | 拥有者 | 字元编码 | 校对规则 | Ctype | 存取权限
-----------+--------+----------+-------------+-------------+-------------------
kingbase | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
lucifer | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
security | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
template0 | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/system +
| | | | | system=CTc/system
template1 | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/system +
| | | | | system=CTc/system
test | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
(6 行记录)
-- 切换数据库
kingbase-# \c lucifer
您现在以用户名"system"连接到数据库"lucifer"。
-- 查看连接信息
lucifer=# \conninfo
以用户 "system" 的身份,通过套接字"/tmp"在端口"54321"连接到数据库 "lucifer"
-- 创建用户并授权
lucifer=# create user lucifer with password 'lucifer';
CREATE ROLE
lucifer=# alter user lucifer createdb;
ALTER ROLE
-- 查看用户信息
lucifer=# \dg lucifer
角色列表
角色名称 | 属性 | 成员属于
----------+---------+----------
lucifer | 建立 DB | {}
-- 使用新用户 lucifer 连接数据库 lucifer
lucifer=# \c lucifer lucifer
用户 lucifer 的口令:
您现在以用户名"lucifer"连接到数据库"lucifer"。
-- 创建表 t1
lucifer=# create table t1(id number, name varchar2(20));
CREATE TABLE
-- 创建索引 idx_t1_id
lucifer=# create index idx_t1_id on t1(id);
CREATE INDEX
-- 插入数据
lucifer=# insert into t1 values(1,'lucifer');
INSERT 0 1
-- 查看表结构
lucifer=# \d t1
数据表 "public.t1"
栏位 | 类型 | 校对规则 | 可空的 | 预设
------+----------------------------+----------+--------+------
id | numeric | | |
name | character varying(20 char) | | |
索引:
"idx_t1_id" btree (id)
-- 查看表数据
lucifer=# select * from t1;
id | name
----+---------
1 | lucifer
(1 行记录)
KES 卸载
安装学会了,自然也要知道如何卸载 KES,卸载一般都很简单。
删除数据库服务
如果在安装后执行 root.sh 脚本在系统中注册了数据库服务,需要在卸载前执行 rootuninstall.sh 脚本删除已注册的数据库服务:
## 执行没有任何输出
[root@kes ~]# /KingbaseES/V9/install/script/rootuninstall.sh
KES 卸载也分 3 种方式:
- 图形化卸载
- 控制台卸载
- 静默卸载
看来 KES 在软件这块支持的功能还是很丰富的,这里为了省事,就直接使用静默方式进行卸载(kingbase 用户执行):
## 进入安装目录下的 Uninstall 目录下执行
[kingbase@kes:/home/kingbase]$ cd /KingbaseES/V9/Uninstall
## 如果是通过静默安装方式安装的,可以不加 -i 参数,否则必须附加 -i 参数
[kingbase@kes:/KingbaseES/V9/Uninstall]$ sh Uninstaller -i silent
卸载过程没有提示信息,等待卸载过程完成即可。
📢 注意:对于初始化生成的文件或程序运行中生成的文件,卸载过程当中无法自动删除(这个我认为是非常合理的,卸载软件不删除数据,是为了保护数据),需要再退出卸载程序后手动删除。
手动删除初始化生成的文件(前提是确实不需要这些数据了才能删除,这里用于便于测试,所以删除):
[root@kes ~]# rm -rf /KingbaseES/V9/*
[root@kes ~]# rm -rf /data
至此,KES 完全卸载完成。
KES 常用命令
分享一些 KES 常用运维命令:
# 停止数据库服务
[kingbase@kes:/home/kingbase]$ sys_ctl stop -m fast -w -D /data
等待服务器进程关闭 .... 完成
服务器进程已经关闭
# 启动数据库服务
[kingbase@kes:/home/kingbase]$ sys_ctl -w start -D /data -l "/data/sys_log/startup.log"
等待服务器进程启动 .... 完成
服务器进程已经启动
# 查看数据库进程
[kingbase@kes:/home/kingbase]$ ps -ef | grep kingbase: | grep -v grep
kingbase 10881 10880 0 13:33 ? 00:00:00 kingbase: logger
kingbase 10883 10880 0 13:33 ? 00:00:00 kingbase: checkpointer
kingbase 10884 10880 0 13:33 ? 00:00:00 kingbase: background writer
kingbase 10885 10880 0 13:33 ? 00:00:00 kingbase: walwriter
kingbase 10886 10880 0 13:33 ? 00:00:00 kingbase: autovacuum launcher
kingbase 10887 10880 0 13:33 ? 00:00:00 kingbase: stats collector
kingbase 10888 10880 0 13:33 ? 00:00:00 kingbase: kwr collector
kingbase 10889 10880 0 13:33 ? 00:00:00 kingbase: ksh writer
kingbase 10890 10880 0 13:33 ? 00:00:00 kingbase: ksh collector
kingbase 10891 10880 0 13:33 ? 00:00:00 kingbase: logical replication launcher
今天的分享到这结束,如果有好的建议或者错误请留言,我会及时纠正,谢谢。
更多推荐
所有评论(0)