大家好,这里是公众号 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 等),对新手不是很友好。
安装包下载 金仓官网提供安装软件介质,直接访问:下载中心
选择对应版本以及系统类型下载即可,下载完成后建议进行版本校验认证:
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 ~] 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 ~] [root@kes ~] Removed /etc/system d/system /multi-user .target.wants/firewalld.service. Removed /etc/system d/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 ~] [root@kes ~] RemoveIPC =no [root@kes ~] [root@kes ~]
检查 /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_profileexport KES_HOME =/KingbaseES/V9/Serverexport LD_LIBRARY_PATH =$KES_HOME /lib:/lib:/usr/libexport PATH =$KES_HOME /bin:/usr/sbin:$PATHexport 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 ~] [root@kes install] KingbaseES_V009R001C001B0030_Lin64_install.iso [root@kes install] mount: /mnt: WARNING: source write-protected, mounted read-only. [root@kes install] 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] [root@kes install] -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]
此时 /mnt 已经和 iso 文件解除挂载关系,在 /mnt 目录下不会再看到安装相关文件。
配置语言环境 图形化安装支持中文和英文的安装界面,根据操作系统的语言设置会显示对应语言的安装界面,可以执行如下命令查看操作系统的语言设置:
1 2 3 4 5 [root@kes install]# echo $LANG zh_CN.UTF-8export LANG =zh_CN.UTF-8
设置好语言环境后,切换为安装用户 kingbase,进入安装程序 setup.sh 所在目录:
1 2 3 4 5 6 [root@kes install] [root@kes install] 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 [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 uninstallerif 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 ## 这里不指定 -i 参数,直接执行 sh setup.sh 也是可以的 [kingbase@kes install]$ sh setup.sh -i gui
这里遇到一个问题,如果当前环境不支持图形化调用或者没配置好图形化界面(包括最小化安装),则会报错如下:
1 2 3 4 5 6 7 8 9 正在启动安装程序... 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 =============================================================================== 选择安装集 ----- 请选择将由本安装程序安装的“安装集”。 ->1- 完全安装 2- 客户端安装 3- 定制安装 输入“安装集”的号码,或按 <ENTER> 键以接受缺省值 : ===============================================================================请稍候 ---
选择授权文件,没有就直接回车:
1 2 3 4 5 6 7 8 ===============================================================================选择授权文件 ------ 不选择授权文件,则使用软件自带试用版授权 提示:请在有效期内及时更换正式授权文件。 文件路径 :
选择安装目录,输入 /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 ===============================================================================预安装摘要 ----- 在继续执行前请检查以下信息: 产品名: 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 =============================================================================== 准备就绪,可以安装 --------- 本安装程序已准备完毕,可在下列位置安装 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 =============================================================================== 数据库端口 ----- 请输入数据库服务监听端口,默认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.shStarting 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 =FullCHOSEN_FEATURE_LIST =SERVER,KSTUDIO,KDTS,INTERFACE,DEPLOY,KINGBASEHAUSER_INSTALL_DIR =/opt/Kingbase/ES/V9 USER_SELECTED_DATA_FOLDER=DB_PORT =54321DB_USER =system DB_PASS= DB_PASS2=ENCODING_PARAM =UTF8LOCALE_PARAM =zh_CN.UTF-8 INITCUSTOM=DATABASE_MODE_PARAM =ORACLECASE_SENSITIVE_PARAM =YES BLOCK_SIZE_PARAM =8kAUTHENTICATION_METHOD_PARAM =scram-sha-256
根据需求修改对应的参数值:
1 2 3 4 5 6 7 [kingbase@kes:/install/setup]$ vi /install/setup/silent.cfgUSER_INSTALL_DIR =/KingbaseES/V9USER_SELECTED_DATA_FOLDER =/dataDB_PASS =kingbaseDB_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 =FullCHOSEN_FEATURE_LIST =SERVER,KSTUDIO,KDTS,INTERFACE,DEPLOY,KINGBASEHAUSER_INSTALL_DIR =/KingbaseES/V9USER_SELECTED_DATA_FOLDER =/dataDB_PORT =54321DB_USER =systemDB_PASS =kingbaseDB_PASS2 =kingbaseENCODING_PARAM =UTF8LOCALE_PARAM =zh_CN.UTF-8 INITCUSTOM=DATABASE_MODE_PARAM =ORACLECASE_SENSITIVE_PARAM =YES BLOCK_SIZE_PARAM =8kAUTHENTICATION_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 -2000 f /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 ## 查看 KES 版本 [kingbase@kes:/home/kingbase]$ kingbase -V KINGBASE (KingbaseES) V009R001C001B0030 [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 行记录) 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=# \c lucifer lucifer 用户 lucifer 的口令: 您现在以用户名"lucifer"连接到数据库"lucifer"。 lucifer=# create table t1(id number, name varchar2(20 ));CREATE TABLE 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
今天的分享到这结束,如果有好的建议或者错误请留言,我会及时纠正,谢谢。