大家好,这里是公众号 DBA学习之路 ,分享一些学习国产数据库路上的知识和经验。
@TOC
前言 电科金仓最近发布了产品体验官招募活动,寻求长期合作伙伴,感兴趣的朋友可以参加体验:号外!金仓数据库产品体验官火热招募 。
本文主要记录人大金仓 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 等),对新手不是很友好。
安装包下载 金仓官网提供安装软件介质,直接访问:下载中心
选择对应版本以及系统类型下载即可,下载完成后建议进行版本校验认证:
1 2 3 4 5 $ md5sum KingbaseES_V009R001C001B0030_Lin64_install.iso 3adf56122ea7d407bc43138ab8b11f84 KingbaseES_V009R001C001B0030_Lin64_install.iso 3ADF56122EA7D407BC43138AB8B11F84
如不是从官方渠道下载,则必须要与官方提供的校验码需保持一致,校验无误后,则可以放心使用。
安装前配置 检查操作系统版本 检查操作系统版本信息:
1 2 3 4 5 6 7 [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"
关闭防火墙 数据库安装均建议关闭防火墙:
1 2 3 4 [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 身份执行安装部署:
1 2 3 4 [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)
如果有密码复杂性要求,不想设置密码太复杂的话,可以取消密码复杂度:
1 2 [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
创建安装所需目录并且授权:
1 2 3 4 5 [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} [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 来设置:
1 2 3 4 5 6 7 8 9 10 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 )) && shmall=2097152 ((shmmax < 4294967295 )) && shmmax=4294967295
复制以上命令,直接执行即可计算得出这两个参数值:
1 2 3 4 [root@kes ~]# echo $shmall 2097152 [root@kes ~]# echo $shmmax 7008067574
根据官方建议值,配置系统参数文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [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
资源配置 限制用户可使用的资源数量对系统的稳定性非常重要,可以通过调整资源限制数量改进系统性能:
1 2 3 4 5 6 7 8 [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:
1 2 3 4 5 6 [root@kes ~]# sed -i 's/#RemoveIPC=no/RemoveIPC=no/' /etc/systemd/logind.conf [root@kes ~]# grep RemoveIPC /etc/systemd/logind.conf RemoveIPC=no [root@kes ~]# systemctl daemon-reload [root@kes ~]# systemctl restart systemd-logind.service
检查 /tmp 目录 KES 安装对于 /tmp 目录有一定要求,至少需要 10G 空间,否则安装时会报警并使用 kingbase 用户家目录作为替代:
1 2 3 Now launch installer... 正在准备进行安装 警告:/tmp 磁盘空间不足!正在尝试将 /home/kingbase 用于安装基础和 tmp dir 。
手动挂载 /tmp 目录空间:
1 2 3 4 5 6 [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
配置环境变量 这一步官方文档没有提到,是以我安装其他数据库的经验添加:
1 2 3 4 5 6 [root@kes ~]# cat <<-\EOF>>/home/kingbase/.bash_profile export KES_HOME=/KingbaseES/V9/Serverexport LD_LIBRARY_PATH=$KES_HOME /lib:/lib:/usr/lib:/usr/lib64export 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 目录下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [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. [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 [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 [root@kes install]# umount /mnt
此时 /mnt 已经和 iso 文件解除挂载关系,在 /mnt 目录下不会再看到安装相关文件。
配置语言环境 图形化安装支持中文和英文的安装界面,根据操作系统的语言设置会显示对应语言的安装界面,可以执行如下命令查看操作系统的语言设置:
1 2 3 4 5 [root@kes install]# echo $LANG zh_CN.UTF-8 export LANG=zh_CN.UTF-8
设置好语言环境后,切换为安装用户 kingbase,进入安装程序 setup.sh 所在目录:
1 2 3 4 5 6 [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 的帮助命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [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 为图形化安装:
1 2 [kingbase@kes install]$ sh setup.sh -i gui
这里遇到一个问题,如果当前环境不支持图形化调用或者没配置好图形化界面(包括最小化安装),则会报错如下:
1 2 3 4 5 6 7 8 9 10 正在启动安装程序... 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 安装成功,点击完成即可退出安装程序:
1 2 3 4 5 6 7 8 9 10 11 [kingbase@kes install]$ ./setup.sh -i gui Now launch installer... 正在准备进行安装 正在从安装程序档案中提取 JRE... 正在解包 JRE... 正在从安装程序档案中提取安装资源... 配置该系统环境的安装程序... Verifying JVM........ 正在启动安装程序... Complete.
别忘记还有最后一步,root 用户下执行 root.sh 脚本:
1 2 3 4 5 6 [root@kes ~]# /KingbaseES/V9/install/script/root.sh Starting KingbaseES V9: 等待服务器进程启动 .... 完成 服务器进程已经启动 KingbaseES V9 started successfully
注册服务成功后,如果想启动或停止数据库服务,进入 /KingbaseES/V9/Server/bin 目录,使用 kingbase 用户执行如下命令:
1 2 3 4 5 6 7 8 [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" 等待服务器进程启动 .... 完成 服务器进程已经启动
到此,图形化安装部署演示结束,过程十分流畅,堪称丝滑。
命令行安装 命令行安装与图形化安装其实差不多,大概演示一下安装过程。
启动安装程序 启动安装程序:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 [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 软件 回车继续安装,下面这一部分全都是许可协议,一路回车即可:
1 2 3 4 5 6 7 8 9 10 11 12 =============================================================================== 请稍候 --- =============================================================================== 许可协议 ---- 是否接受此许可协议条款? (Y/N): Y
输入 Y 接受许可,选择完全安装:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 =============================================================================== 选择安装集 ----- 请选择将由本安装程序安装的“安装集”。 ->1- 完全安装 2- 客户端安装 3- 定制安装 输入“安装集”的号码,或按 <ENTER> 键以接受缺省值 : =============================================================================== 请稍候 ---
选择授权文件,没有就直接回车:
1 2 3 4 5 6 7 8 9 =============================================================================== 选择授权文件 ------ 不选择授权文件,则使用软件自带试用版授权 提示:请在有效期内及时更换正式授权文件。 文件路径 :
选择安装目录,输入 /KingbaseES/V9/,确认,回车继续:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 =============================================================================== 选择安装目录 ------ 请选择一个安装目录。 您想在哪一位置安装? 缺省安装文件夹: /opt/Kingbase/ES/V9 输入一个绝对路径,或按 <ENTER> 键以接受缺省路径 : /KingbaseES/V9/ 安装文件夹为: /KingbaseES/V9 是否正确? (Y/N): Y
预安装摘要,没问题直接回车下一步:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 =============================================================================== 预安装摘要 ----- 在继续执行前请检查以下信息: 产品名: KingbaseES V9 安装文件夹: /KingbaseES/V9 产品功能部件: 数据库服务器, 接口, 数据库部署工具, 高可用组件, 数据库开发管理工具, 数据迁移工具 安装空间磁盘信息 所需磁盘空间: 5378 MB 空闲磁盘空间: 77447 MB 请按 <ENTER> 键继续:
开始安装:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 =============================================================================== 准备就绪,可以安装 --------- 本安装程序已准备完毕,可在下列位置安装 KingbaseES V9: /KingbaseES/V9 按 <ENTER> 键进行安装: =============================================================================== 正在安装... ------- [==================|==================|==================|==================] [------------------|------------------|------------------|------------------] =============================================================================== 请稍候 ---
等待进度条完成代表软件已经安装完成。
初始化数据库 接着上面流程继续,选择数据存储的目录:
1 2 3 4 5 6 7 =============================================================================== 选择存储数据的文件夹 ---------- 请选择一个文件夹,该文件夹必须为空。 Data folder (默认﹕ /KingbaseES/V9/data): /data
配置数据库初始参数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 =============================================================================== 数据库端口 ----- 请输入数据库服务监听端口,默认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 (默认﹕ ):
开始初始化数据库:
1 2 3 4 5 6 7 =============================================================================== 提示 -- 数据库即将被安装,需要花费一些时间,请耐心等待。 请按 <ENTER> 键继续:
等待安装完成后,退出安装程序:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 =============================================================================== 安装完成 ---- 恭喜!KingbaseES V9 已成功地安装到: /KingbaseES/V9 如果您需要将 KingbaseES V9 注册为系统服务,请运行 /KingbaseES/V9/install/script/root.sh 按 <ENTER> 键以退出安装程序: Complete.
执行 root.sh 脚本:
1 2 3 4 5 [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。
查看默认的配置参数文件内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [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
根据需求修改对应的参数值:
1 2 3 4 5 6 7 [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
修改后的配置文件内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [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 用户执行如下命令:
1 2 3 4 [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 :
1 [kingbase@kes:/home/kingbase]$ tail -2000f /KingbaseES/V9/install/Logs/KingbaseES_V9_*.log
等待安装完成后,如果没有报错,则代表安装成功,如果有类似如下错误:
则代表 silent.cfg 文件中参数取值有错误,未完成安装过程,需要修改后重新执行。
连接测试 连接 KES 数据库,查看版本信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 [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 脚本删除已注册的数据库服务:
1 2 [root@kes ~]# /KingbaseES/V9/install/script/rootuninstall.sh
KES 卸载也分 3 种方式:
看来 KES 在软件这块支持的功能还是很丰富的,这里为了省事,就直接使用静默方式进行卸载(kingbase 用户执行):
1 2 3 4 [kingbase@kes:/home/kingbase]$ cd /KingbaseES/V9/Uninstall [kingbase@kes:/KingbaseES/V9/Uninstall]$ sh Uninstaller -i silent
卸载过程没有提示信息,等待卸载过程完成即可。
📢 注意:对于初始化生成的文件或程序运行中生成的文件,卸载过程当中无法自动删除(这个我认为是非常合理的,卸载软件不删除数据,是为了保护数据 ),需要再退出卸载程序后手动删除。
手动删除初始化生成的文件(前提是确实不需要这些数据了才能删除,这里用于便于测试,所以删除):
1 2 [root@kes ~]# rm -rf /KingbaseES/V9/* [root@kes ~]# rm -rf /data
至此,KES 完全卸载完成。
KES 常用命令 分享一些 KES 常用运维命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [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
今天的分享到这结束,如果有好的建议或者错误请留言,我会及时纠正,谢谢。