暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

金仓 KES V9 企业版单机部署实践与基本操作指南

原创 jiayou 2024-10-01
742

金仓 KES V9 企业版单机部署实践与基本操作指南

一、概要

金仓数据库管理系统KingbaseES(简称“KES”)作为电科金仓的核心产品,现已发布至V9版本。

为了更好地理解和使用KES,本文将通过搭建虚拟机环境的方式,介绍KES V9企业版单机部署与使用方法。相较于之前集群部署而言,单机部署快速简便,对初学者友好,更易上手。首先来看看KES 软硬件要求:

版本

硬件要求

软件要求

标准版/企业版/专业版/开发版

  • CPU:X86、龙芯、飞腾、鲲鹏
  • 内存:512MB以上
  • 硬盘:11GB以上空闲空间

支持各种主流的Windows、Linux操作系统64位发行版本,包括CentOS、中标麒麟、银河麒麟、统信UOS、Deepin、凝思、中科方德等操作系统。

介质下载地址:

https://www.kingbase.com.cn/xzzx/index.htm

备注:产品非开源,官方提供90天的免费授权文件,需要永久授权需要联系金仓商务购买。临时授权也在下载中心如下图:

二、操作系统准备

#操作系统版本

cat /etc/redhat-release

Red Hat Enterprise Linux Server release 7.8 (Maipo)

1、修改主机名

#设置新的主机名

hostnamectl set-hostname reponode

#查看主机名

hostnamectl status

#添加IP与主机名的解析

echo '192.168.126.117 reponode' >> /etc/hosts

2、关闭防火墙

# 关闭防火墙
sudo systemctl stop firewalld
# 禁用防火墙
sudo systemctl disable firewalld
# 查看防火墙状态
sudo systemctl status firewalld

3、配置时间同步

(1)检查NTP服务是否开启

# systemctl status chronyd.service

(2)查看chrony服务是否同步

# chrony tracking

(3)修改chrony服务,此处设置主控机(这里假设为192.168.126.110)作为时间同步服务器,先修改主控机(服务端)设置

# vi /etc/chrony.conf

添加allow 0.0.0.0/0 添加local stratum 10

注释掉上方的server iburst

(4)重启服务

# systemctl restart chronyd.service

(5) 其他所有节点,需同步主控机,各节点操作如下

# vi /etc/chrony.conf

注释server iburst,新增

server 192.168.126.110 iburst

重启

# systemctl restart chronyd.service

检查是否同步

# chronyc sources -v

查看时间同步源状态

#chronyc sourcestats -v

立刻手工同步

#chronyc -a makestep

校验时间服务器

#chronyc tracking

4、禁用 SELinux

# 查看/etc/selinux/config
cat /etc/selinux/config
# 永久禁用 SELinux
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
sudo sed -i 's/^SELINUX=permissive$/SELINUX=disabled/' /etc/selinux/config
# 查看 SELinux 当前的状态
sestatus && getenforce && cat /etc/selinux/config

# 重启

reboot

5、配置内核参数 sysctl.conf

节点服务器配置如下文件:

cat >> /etc/sysctl.conf <<EOF

#add by kingbase

#/proc/sys/kernel/优化

# 10000 connect remain:

kernel.sem = 250 162500 250 650

#notice: shall shmmax is base on 16GB, you may adjust it for your MEM

#for 16GB Mem:

kernel.shmall = 3774873

kernel.shmmax = 8589934592

#for 32GB Mem:

#kernel.shmall = 7549747

#kernel.shmmax = 17179869184

#for 64GB Mem:

#kernel.shmall = 15099494

#kernel.shmmax = 34359738368

#for 128GB Mem:

#kernel.shmall = 30198988

#kernel.shmmax = 68719476736

#for 256GB Mem:

#kernel.shmall = 60397977

#kernel.shmmax = 137438953472

#for 512GB Mem:

#kernel.shmall = 120795955

#kernel.shmmax = 274877906944

kernel.shmmni = 4096

vm.dirty_background_ratio=2

vm.dirty_ratio = 40

vm.overcommit_memory = 2

vm.overcommit_ratio = 90

vm.swappiness = 0

fs.aio-max-nr = 1048576

fs.file-max = 6815744

fs.nr_open = 20480000

# TCP端口使用范围

net.ipv4.ip_local_port_range = 10000 65000

net.ipv4.tcp_keepalive_time = 1200

net.ipv4.tcp_keepalive_probes = 3

net.ipv4.tcp_keepalive_intvl = 30

net.ipv4.tcp_max_syn_backlog = 8192

net.ipv4.tcp_max_tw_buckets = 6000

# 记录的那些尚未收到客户端确认信息的连接请求的最大值

net.ipv4.tcp_max_syn_backlog = 65536

# 每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目

net.core.somaxconn=1024

net.core.netdev_max_backlog = 32768

net.core.wmem_default = 8388608

net.core.wmem_max = 1048576

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.ipv4.tcp_synack_retries = 2

net.ipv4.tcp_fin_timeout = 30

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

EOF

#生效

sysctl -p

6、配置资源使用参数 limits.conf

节点服务器配置如下文件:

cat >> /etc/security/limits.conf <<EOF

#add by kingbase

kingbase soft nproc 65536

kingbase hard nproc 65536

kingbase soft nofile 65536

kingbase hard nofile 65536

kingbase soft stack 10240

kingbase hard stack 32768

kingbase soft core unlimited

kingbase hard core unlimited

EOF

7、RemoveIPC 参数

systemd-logind服务中引入的一个特性,是当一个用户退出系统后,会删除所有有关的IPC对象。该特性由/etc/systemd/logind.conf文件中的RemoveIPC参数控制。某些操作系统会默认打开,会造成程序信号丢失等问题(只有redhat7及以上和一些特殊的国产Linux的版本需要修改,改之前可先查看此项是否为默认yes)。设置RemoveIPC=no。

# vi /etc/systemd/logind.conf
#将Re-moveIPC值改为no

设置后重启服务:

systemctl daemon-reload

systemctl restart systemd-logind.service

8、创建 kingbase 用户

不用root用户,创建kingbase用户进行部署

#创建用户&&设置密码

useradd kingbase && passwd kingbase

9、配置免密码登录(可选)

编辑/etc/sudoers文件,文末加入:

kingbase ALL=(ALL) NOPASSWD:ALL

如果想要控制某个用户(或某个组用户)只能执行root权限中的一部分命令,

或者允许某些用户使用sudo时不需要输入密码,一般修改/etc/sudoers文件

cat << EOF >>/etc/sudoers

kingbase ALL=(ALL) NOPASSWD:ALL

EOF

测试kingbase用户登录

$ sudo -su root

10、创建安装和数据目录上传安装包及授权文件

1.kingbase用户,新建以下目录

#创建目录

$ mkdir -p KingbaseES/V9R1

$ mkdir data

$ mkdir license

$ mkdir archive

备注:数据目录不必事先创建。安装过程中会提示指定数据目录,如果目录不存在安装程序会自动创建。

2.上传安装包、license、检查md5

由于下载介质为KingbaseES_V009R001C001B0030_Lin64_install.iso,本次直接挂载虚拟光驱

三、安装配置 KES V9 企业版(单机)

KES V9支持图形界面、命令行和静默安装三种方式安装。命令行安装如下:

1、命令行安装

$ sh ./setup.sh -i console

设置如下初始化数据库参数:

  • 默认端口为:54321(可自定义)
  • 默认账户为:system(可自定义)
  • 密码(自定义)--system
  • 默认字符集编码为:UTF8(可选GBK、GB18030)
  • 默认数据库兼容模式为:ORACLE(可选 PG、MySQL)-选择MySQL
  • 默认大小写敏感为:是(可选否)-选择否
  • 默认数据块大小为:8k(可选16k、32k)
  • 默认加密方法为sm4(可选 rc4)
  • 默认身份认证方法为scram-sha-256(可选 scram-sm3,sm4,sm3)

安装截图如下:

descript

descript

descript

descript

descript

descript

descript

descript

descript

descriptdescriptdescript

descript

提示安装成功。

注意: /tmp目录需要至少10G空间。否则安装报错。

2、将 KES 进行注册,使其成为系统服务(可选)

# /home/kingbase/KingbaseES/V9R1/install/script/root.sh

descript

查看服务是否开机自启

3、KES 启动成之后进程、端口、参数等检查

KES启动成功,能够看到有 “xxx/bin/kingbase –D …”,该进程是必不可少的,还有类似 “kingbase: logger” 的辅助进程。以及如图所示 checkpointer检查点进程 walwriter,background writer 后台进程等,这些后台进程是数据库正常活动必不可少的。这里一定要体现出来。

其中启动命令示例中的$KINGBASE_DATA为数据库data路径,每个数据库的data路径可能不一致。data路径的查看方法:

1.通过进程(已启动情况下)

ps -ef | grep kingbase

备注:含xxx/Server/bin/kingbase -D ...一行,-D后为data所在绝对路径或者相对于启动路径的相对路径

2.通过参数(已启动情况下)

ksql -USYSTEM -d TEST -c "show data_directory;"

3.通过文件(未启动情况下)

find / -name kingbase.conf

备注:查找含data路径的,如有多个,可根据控制文件确定

确认节点相关进程、端口

netstat -anlp|grep -E '54321'|column -t

4、配置 kingbase 用户环境变量

su – kingbase

vim ~/.bash_profile

添加信息如下信息

export KINGBASE_DATA=/home/kingbase/KingbaseES/V9R1/data

export KINGBASE_HOME=/home/kingbase/KingbaseES/V9R1

export PATH=$PATH:$KINGBASE_HOME/Server/bin:

添加完成后执行

source ~/.bash_profile

#使该环境变量生效

source .bash_profile

四、卸载 KES 数据库应用程序

1、启动卸载

以kingbase用户登录系统后,进入${安装目录}/Uninstall目录,执行如下命令,启动卸载程序。

sh Uninstaller -i console

2、删除数据库服务

如果在安装后执行root.sh脚本在系统中注册了数据库服务,需要在卸载前执行rootuninstall.sh脚本删除已注册的数据库服务。具体步骤如下:

  1. 打开新终端;
  2. 切换到root用户;
  3. 运行${安装目录}/install/script/rootuninstall.sh 。

3、清除安装目录下残留文件

方法1:执行rm –fr /KingbaseES/V9R1直接删除安装目录

方法2:执行mv /KingbaseES/V9R1 /KingbaseES/V9R1.bak将安装目录改名

五、KES 数据库启停命令(单机)

方式一、可以通过systemctl 管理KES服务

systemctl start | stop | restart | status kingbased.service

方式二、可以使用service 管理KES服务

service kingbased start |stop | restart | status

方式三、可以使用kingbase工具sys_ctl 管理

启动数据库

通过sys_ctl命令启动数据库

sys_ctl -w start -D $KINGBASE_DATA -l $KINGBASE_DATA/sys_log/startup.log

关闭数据库

通过sys_ctl –D data路径 stop命令关闭数据库,如下:

sys_ctl -D $KINGBASE_DATA stop

或者

sys_ctl stop -m fast -w -D $KINGBASE_DATA

参数说明:

  • smart:等所有连接中止后才关闭
  • fast(默认方式):断开客户端连接、回事务、正常关闭数据库
  • immediate:立即关闭,下次启动要进行恢复。相当于0racle的shutdown abort
  • fast:最常用的方式,相当于0racle的shutdown immediate

重启数据库

通过sys_ctl –D data路径 restart重启数据库,如下:

sys_ctl -D $KINGBASE_DATA restart

六、开启数据库归档模式

KingbaseES数据库安装初始化时,默认关闭归档模式。归档模式需要在数据库启动之前确认,更改归档模式需要重启数据库。

KingbaseES开启归档重做日志文件模式需要的配置参数。

可以通过配置参数archive_mode指定开启/关闭归档,archive_mode的选项:

  • on:开启归档模式。
  • off:禁用归档模式。
  • always:在普通操作期间,与on参数没有区别。但是当设置为always时,重做日志归档进程在归档恢复或者后备模式下也会被启用,所有从归档恢复或者用流复制传来的重做日志文件文件将被(再次)归档。

除了archive_mode配置参数外,需要开启归档重做日志文件,还需要:

wal_level配置参数设置为replica或更高。

使用archive_command配置参数指定一个shell命令。

archive_command可以配置为任意命令,KingbaseES推荐配置命令格式为:test ! -f /mnt/server/archivedir/%f && cp %p

/mnt/server/archivedir/%f。其中,%p和%f由归档进程archiver在执行归档命令前自动替换,%p表示需要归档的文件路径(包括文件名),%f表示文件名称。

完成archive_command后,归档进程archiver会将ready文件重命名为done文件,表示归档完成,例如:000000010000000A0000002C.done。当然archive_command也可能执行失败,表示归档失败,失败后归档进程会不断重试,直到成功为止。

开启归档后,如果WAL段文件未被归档,该文件不会被KingbaseES回收。

一、通过修改 kingbase.conf 开启归档

1、建立归档目录

mkdir /archive

chown -R kingbase:kingbase /archive

chmod -R 775 /archive

2、配置相关参数

cd $KINGBASE_HOME

cat >> $KINGBASE_DATA/kingbase.conf << EOF

wal_level='replica'

archive_mode = on

archive_command = 'test ! -f /archive/%f && cp %p /archive/%f'

max_wal_size = 1GB

min_wal_size = 80MB

EOF

#验证

grep -E '^archive|^wal_level' $KINGBASE_DATA/kingbase.conf

3、重启KES实例

sys_ctl restart -D $KINGBASE_DATA

4、查看参数

ksql test system

SHOW archive_mode;

SHOW archive_command;

SHOW wal_level;

5、手动切换归档

SELECT sys_switch_wal();

6、查看归档日志文件

\! ls -l /archive | more

二、通过 ALTER SYSTEM 命令开启归档

1、建立归档目录

2、配置相关参数

ksql -U system -d test

ALTER SYSTEM SET wal_level=replica;

ALTER SYSTEM SET archive_mode = on ;

ALTER SYSTEM SET archive_command = 'test ! -f /archive/%f && cp %p /archive/%f';

3、重启KES实例

sys_ctl restart -D $KINGBASE_DATA

4、查看参数

ksql -U system -d test

SHOW archive_mode;

SHOW archive_command;

SHOW wal_level;

5、手动切换归档

SELECT sys_switch_wal();

6、查看归档日志文件

\! ls -l /archive | more

七、KES 数据库使用与管理工具

KingbaseES Ksql 工具

Ksql 是 KingbaseES 数据库的主要命令行界面。您可以使用 Ksql 设置数据库初始化参数、创建和管理用户、创建和更改数据库对象 (例如表和索引)、插入和更新数据、运行 SQL 查询等等。

ksql命令的使用 

登录数据库:ksql -U 用户名 -W 数据库名

登录数据库之后可做如下操作:

  • 退出登录:q
  • 查看数据库列表:l
  • 查看默认模式下所有表的名称:dt
  • 查看某个表的结构:d table_name
  • 查看元命令帮助信息:?

KingbaseES KStudio 数据库对象管理工具

KStudio是为KingbaseES提供的一套快速、可靠和全面的数据库开发和管理工具,它提供了全新设计的集成开发环境(IDE)和集成管理平台,能够运行在不同的操作系统的图形化工具,用于访问、配置、开发和管理KingbaseES数据库服务。

最后修改时间:2024-10-08 10:31:18
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论