Linux系统部署KES

发布于:2025-06-10 ⋅ 阅读:(26) ⋅ 点赞:(0)

1、安装准备

1.版本说明V008R006C009B0014

V008:是version产品的大版本。
R006:是release产品特性版本。
C009:是通用版
B0014:是build开发过程中的构建版本

2.硬件要求

#安全版和企业版
内存:1GB 以上
硬盘:1GB 以上空闲空间


#标准版
内存:512MB 以上
硬盘:1GB 以上空闲空间

3.检查和配置环境

1.查看操作系统信息
[root@node1 ~]# cat /etc/*release

2.检查系统内存和存储空间
[root@node1 ~]# free -m
-m表示MB为单位显示

[root@node1 ~]# df -h
显示所有文件系统
[root@node1 ~]# df -hl
-l仅显示本地文件系统

注意:/tmp目录至少10G空间。

3.内核参数
/sbin/sysctl -p	#从配置文件加载并应用内核参数
/sbin/sysctl -a	#显示

#Linux资源限制配置文件是
/etc/security/limits.conf
其中文件内容soft 是一个警告值,hard 是真正意义的阈值,超过系统就会报错,一般情况下两者设为同一个值。一般保持系统安装时的默认值即可。

4.准备工作(直接从这里开始)

1#准备Kingbase安装包,license授权文件。


2#做基本配置
(1)关闭防火墙和seLinux
(2)创建kingbase用户,并设置密码(第二个命令会同时创建同名用户组 kingbase 以及用户根目录/home/kingbase)
(3)创建程序目录,并授权。创建数据目录	#根据情况来
(4)镜像挂载
其中 -o loop:将文件作为块设备挂载到系统中,使其内容可被访问


systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld

sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
cat /etc/selinux/config | grep SELINUX

useradd -m kingbase
passwd kingbase		#输入两次密码

mkdir -p /home/kingbase/KingbaseES/V8 /home/kingbase/KingbaseES/V8/data /archive /backup/dump
chown -R kingbase:kingbase /home/kingbase/KingbaseES/V8
chown -R kingbase:kingbase /home/kingbase/KingbaseES/V8/data
chown -R kingbase:kingbase /backup
chown -R kingbase:kingbase /archive
chown -R kingbase:kingbase /home/kingbase/install
chmod -R 775 /Kingbase/ES
chmod -R 775 /backup
chmod -R 775 /archive
chmod -R 700 /data



mount -o loop /home/kingbase/install/KingbaseES_V008R006C008B0020_Lin64_install.iso /mnt/

umount ./mnt	#查看挂载信息

#重点:
创建用户并设置密码-->安装目录,和数据目录(建议套一层)-->mount挂载

3、修改系统参数

#root用户进行更改
#第一个文件/etc/security/limits.conf
vi /etc/security/limits.conf
root        soft    nofile      655360
root        hard    nofile      655360
root        soft    nproc       655360
root        hard    nproc       655360
root        soft    memlock     50000000
root        hard    memlock     50000000
root        soft    core        unlimited
root        hard    core        unlimited

kingbase    soft    nofile      655360
kingbase    hard    nofile      655360
kingbase    soft    nproc       655360
kingbase    hard    nproc       655360
kingbase    soft    memlock     50000000
kingbase    hard    memlock     50000000
kingbase    soft    core        unlimited
kingbase    hard    core        unlimited

#附参数详解:
soft	——指当前系统生效的设置值。
hard——指系统中所能设定的最大值。soft的限制不能比hard的限制高。
nofile——指打开文件的最大数目
nproc——指进程的最大数目
core	——指限制内核文件的大小


#第二个文件/etc/sysctl.conf 
 kernel.sem = 50100 64128000 50100 1280  
# 释放time_wait链接
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_timestamps= 1   
net.ipv4.tcp_fin_timeout = 30   
# TCP端口使用范围
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_tw_buckets = 6000  
# 记录的那些尚未收到客户端确认信息的连接请求的最大值
net.ipv4.tcp_max_syn_backlog = 65536  
# 每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
net.core.netdev_max_backlog = 32768
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_wmem = 8192 436600 873200
net.ipv4.tcp_rmem  = 32768 436600 873200
net.ipv4.tcp_mem = 94500000 91500000 92700000
net.ipv4.tcp_max_orphans = 3276800
vm.swappiness=1
fs.file-max=7672460
fs.aio-max-nr=1048576
net.core.somaxconn=4096
vm.min_free_kbytes=521000
vm.vfs_cache_pressure=200
执行以下命令重新加载生效
[root@node1 ~]# sysctl -p 


*******************其实下面两个不用操作*******************************
#第三个文件(用于控制是否对系统服务和任务进行资源使用统计)
vi /etc/systemd/system.conf
DefaultTasksAccounting=no 

systemctl daemon-reload 
systemctl daemon-reexec 
service sshd status

SELECT * FROM sys_license_info;

#第四个文件(用于控制用户会话结束后是否保留 System V IPC资源)
4、修改/etc/systemd/logind.conf文件中RemoveIPC=no	
[root@node1 ~]# vim /etc/systemd/logind.conf
 RemoveIPC=no	

systemctl daemon-reload
systemctl restart systemd-logind 

2、Linux系统-命令行部署(图形化部署就是点击即可)

操作流程

0.变更中文系统
echo $LANG	
export LANG=zh_cCN.UTF-8

1.启动安装程序
sh /mnt/setup.sh -i console
#说明:加-i表示以控制台的形式安装启动过程。

enter表示继续,quit表示退出,back表示上一步。

2.阅读许可协议
一直按enter就行,最后输入y

3.选择安装集
   (1)完全安装
   (2)客户端安装
   (3)定制安装

4.选择授权文件(看实际情况)
/install/license_34148/license_341480.dat

5.选择安装路径
默认安装路径是/opt/Kingbase/ES/V8;
  
6.预安装摘要

7.安装
(1)选择数据目录
默认/opt/Kingbase/ES/V8/data
一般放/data下
(2)监听端口 
(3)管理员
(4)密码	#自己决定
(5)字符集	
(6)兼容风格	#如果是MySQL在大小写敏感性时选否
(7)大小写敏感性
(8)数据块大小
(9)数据库加密算法



8.是否包含server(实现开机自启)#root用户执行
/opt/Kingbase/ES/V8/install/script/root.sh

#查看状态
service Kingbased status

3、安装后检查

#查看安装日志installer.log
[root@localhost ~]# find / -name "*.log"|grep kingbase

#验证工具是否能连接数据库
./ksql -p 54321 -U system test

#查看已安装数据库的版本信息
/opt/Kingbase/ES/V8/Server/bin/kingbase -V 
select version();

#解决缺库的问题(一般不会)
如果安装机器操作系统缺少必要的 so 库文件,您可通过如下命令查看到有缺少 so 库文件的情况。在 ${安
装目录}/Server/bin 目录下执行

命令:ldd * | grep "not found"${安装目录}/Server/lib 下, 执行如下命令检查是否存在缺少的 so 库文件:
命令:ls
若检查到 ${安装目录}/Server/lib 下存在缺少的 so 库文件,则在 ${安装目录}/Server/lib 下, 执行
命令:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`

4、卸载

#root用户脚本移除KES开机自启服务
/KingbaseES/V9/install/script/rootuninstall.sh
#卸载KES应用程序
bash /opt/KingbaseES/V9/Uninstall/Uninstaller -i console
#清除安装目录下残留文件
方法1:执行rm -fr /KingbaseES/V9直接删除安装目录。
方法2:执行mvKingbaseES/V9/KingbaseES/V9.bak将安装目录改名。

5、增删组件

5.1 增加组件

#kingbase用户执行
sh setup.sh -i console

#输入2,选择修改存在的实例

#输入机器上已有实例的序列号

#输入1,添加功能

#选择功能直接回车,等待完成即可

5.2 删除组件

#kingbase用户执行
/opt/Kingbase/ES/V8/Uninstall/Uninstaller

#根据需求删除即可(和添加一样)

目录大全

#[kingbase@localhost ~]$ ls -l /opt/Kingbase/ES/V8/
#(1)软连接,对应目录存放了客户端工具依赖的可执行二进制文件、链接文件等。
ClientTools -> /opt/Kingbase/ES/V8/KESRealPro/V008R006C006B0021/ClientTools/
	– ClientTools/ guitools/ KStudio:开发管理工具,能运行在各种平台的图形工具,用于管理和配置 KES 数据库服务器,管理各种 KES 数据库对象,进行 KES 数据库的安全管理,调用查询分析器执行和测试 SQL 语句。	
	– ClientTools/guitools/KDts:数据库迁移工具,可以用于跨平台数据交换和迁移,支持同异构数据源之间的数据迁移。该目录下存放了迁移工具的相关程序和配置文件。
	– ClientTools/guitools/DeployTools:集群部署工具,用于远程部署集群节点服务。该目录存放了集群部署工具相关的程序和配置文件。

#(2)初始化数据库生成的数据目录。
data


#(3)软连接,对应目录包含各类帮助手册。
doc -> /opt/Kingbase/ES/V8/KESRealPro/V008R006C006B0021/doc/


#(4)软连接,对应目录存放了安装过程中依赖和使用的各类文件。
	– install/script:该目录下存放了安装和卸载过程中使用的脚本。
	– install/LICENSE.EN:英文许可协议。
	– install/LICENSE.ZH:中文许可协议。
install -> /opt/Kingbase/ES/V8/KESRealPro/V008R006C006B0021/install/


#(5)软连接,对应目录存放了各类应用程序开发接口程序包。
Interface -> /opt/Kingbase/ES/V8/KESRealPro/V008R006C006B0021/Interface/


#(6)实际安装目录,下一级为版本号命名的目录,再下一级为 Server、doc、ClientTools、Interface、install、SupTools、Uninstall、license.dat、KingbaseHA,对应上述各软连接的实际目录。
KESRealPro


#(7)软连接,对应目录存放了高可用集群组件相关程序和配置文件。
KingbaseHA -> /opt/Kingbase/ES/V8/KESRealPro/V008R006C006B0021/KingbaseHA/


#(8)软连接,执行安装时使用的认证许可证书。
license.dat -> /opt/Kingbase/ES/V8/KESRealPro/V008R006C006B0021/license.dat


#(9)软连接,对应目录存放了服务器二进制文件,链接文件等。
Server -> /opt/Kingbase/ES/V8/KESRealPro/V008R006C006B0021/Server/
– Server/bin:服务器二进制文件,可以在该路径下进行启动服务、连接数据库、物理备份还原、逻辑备份
还原等操作。


#(10)软连接,对应目录下存放了巡检工具相关脚本和配置文件。
SupTools -> /opt/Kingbase/ES/V8/KESRealPro/V008R006C006B0021/SupTools/


#(11)软连接,对应目录包含卸载程序的相关文件。
Uninstall -> /opt/Kingbase/ES/V8/KESRealPro/V008R006C006B0021/Uninstall/

优化内容

1.设置环境变量

[kingbase@node1 ~]$ vi /etc/bashrc
export PATH=$PATH:/home/kingbase/Kingbase/bin

source /etc/basbrc

2.测试连接+查看版本

[kingbase@node1 ~]$ ksql -Usystem -dtest

[kingbase@node1 ~]$ kingbase -V

#启动与停止服务
sys_ctl -w start -D /../data/

sys_ctl -m fast -w -D /../data/

3.修改kingbase.conf 文件

#这个目录一般在../data下面,需要free -h内存

listen_addresses='*'
port=54321 
max_connections=1000 #按需配置
shared_buffers=RAM*25% #按需配置
effective_cache_size=RAM*0.5GB
work_mem=10MB
maintenance_work_mem=2GB
huge_pages=try
temp_file_limit=-1
wal_level=replica
fsync=on
full_page_writes=on
synchronous_commit=on
wal_buffers=-1
wal_compression=on
checkpoint_timeout=20min
checkpoint_completion_target=0.9
max_wal_size=64GB
min_wal_size=1GB
max_locks_per_transaction=1024
archive_mode=on
archive_command=''
#非Oracle需要删除下面的
ora_input_emptystr_isnull=on

logging_collector=on
log_destination=stderr
log_directory='sys_log'
log_filename='kingbase-%d.log'
log_truncate_on_rotation=on
log_rotation_age=1d
log_rotation_size=10MB
log_statement=ddl
log_min_duration_statement=1000
log_line_prefix='%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h'
log_checkpoints=on
log_lock_waits=on
log_autovacuum_min_duration=0
log_temp_files=0
lc_messages='C'
max_parallel_workers_per_gather=0
log_connections=on
log_disconnections=on


#重启数据库服务使修改生效(如果配置环境变量就可以直接执行)
[kingbase@node1 bin]$ ./sys_ctl restart -D /home/kingbase/Kingbase/ES/V8/data/