KingbaseES(人大金仓)部署
一、安装前准备工作
KingbaseES支持通用X86_64、龙芯、飞腾、鲲鹏等国产CPU硬件体系架构。
KingbaseES支持各种主流的Linux操作系统64位发行版本,包括CentOS、中标麒麟、银河麒麟、统信UOS、Deepin、凝思、中科方德等操作系统。
1、安装包和license下载:
软件包
https://www.kingbase.com.cn/xzzx/index.htm
license
https://www.kingbase.com.cn/xzzx/index.htm
2、配置tmp目录
/tmp目录需要至少10G空间。如果安装过程中出现存储空间不足的情况,请先释放足够的磁盘空间,再执行安装程序。如果硬件配置不满足要求,需要更换满足要求的硬件设备再进行安装。
默认:
cat >>/etc/fstab<<'EOF'
tmpfs /tmp tmpfs nodev,nosuid,size=11G 0 0 # 大小可以自己修改,但是不能超过根硬盘的大小
EOF
reboot
修改后:
3、配置内核参数
修改内核参数
cat >>/etc/sysctl.conf<<'EOF'
fs.aio-max-nr= 1048576
fs.file-max= 6815744
kernel.shmall= 2097152
kernel.shmmax= 4294967295
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
sysctl -p
资源使用参数
cat >>/etc/security/limits.conf<<'EOF'
# *表示所有用户,可只设置root和kingbase用户
* soft nofile 65536
# 注意:设置nofile的hard limit不能大于/proc/sys/fs/nr_open,否则注销后将无法正常登陆
* hard nofile 65535
* soft nproc 65536
* hard nproc 65535
# unlimited表示无限制
* soft core unlimited
* hard core unlimited
EOF
二、预安装工作
1、创建安装用户
在安装KingbaseES时,安装用户对于安装路径需有“读”、“写”、“执行”的权限。在Linux系统中,需要以非root用户执行安装程序,且该用户要有标准的home目录。
useradd -m kingbase
passwd kingbase
# 创建安装系统用户kingbase之后,如无特殊说明,本指南后续的操作默认使用kingbase用户进行操作。
2、安装目录
KingbaseES默认的安装目录是 /opt/Kingbase/ES/V8 。如果不存在,您需要使用root用户先创建该目录,并赋予kingbase用户对该目录的读写权限。
mkdir /opt/Kingbase/ES/V8
chmod o+rwx /opt/Kingbase/ES/V8
也可以自定义安装路径。如自定义安装路径为/data/businessServer/kingbase/kdb ,使用kingbase用户创建目录的命令如下:
mkdir /data/businessServer/kingbase/kdb -p
chmod o+rwx /data/businessServer/kingbase/kdb
3、数据目录
数据目录是KingbaseES中存放数据文件的目录,默认是在安装目录下的data目录。也可以与安装目录分开单独设置。您可以根据业务系统数据量来单独设置数据目录路径,例如将数据目录初始化在本机硬盘或者挂载在盘阵上。 您可以运行如下命令创建数据目录:
mkdir /data/businessServer/kingbase/kdb/data
# 数据目录不必事先创建。安装过程中会提示指定数据目录,如果目录不存在安装程序会自动创建。
4、安装包的挂载与取消
上传安装包和license
/data/businessServer/kingbase/license_29296/license_29296_0.dat
iso格式的安装程序包需要先挂载才能使用。挂载iso文件需要使用root用户。比如挂载的目录是iso文件同级目录KingbaseES,您可以运行如下命令进行挂载:
mkdir /data/KingbaseESV8
mount /root/KingbaseES_V008R006C008B0014_Lin64_install.iso /data/KingbaseESV8
KingbaseES目录下可以看到setup目录和setup.sh脚本。安装完成后您可以运行如下命令取消挂载iso文件:
umount /data/KingbaseESV8
此时KingbaseES已经和iso文件解除挂载关系,您在KingbaseES目录下不会再看到安装相关文件。
三、安装KingbaseES
启动安装程序
su - kingbase
export LANG=zh_CN.UTF-8
sh /data/KingbaseESV8/setup.sh
然后一路回车
选择安装集
根据安装后数据库服务功能的不同,KingbaseES可分为完全安装、客户端安装和定制安装三种安装集。
- 完全安装:包括数据库服务器、高可用组件、接口、数据库开发管理工具、数据库迁移工具、数据库部署工具。
- 客户端安装:包括接口、数据库开发管理工具、数据库迁移工具、数据库部署工具。
- 定制安装:在数据库服务器、高可用组件、接口、数据库开发管理工具、数据库迁移工具、数据库部署工具所有组件中自由选择。
这里选择1 完全安装
选择授权文件
/data/businessServer/kingbase/license_29296/license_29296_0.dat
选择安装路径
/data/businessServer/kingbase/kdb
预安装摘要
选择存储数据的文件夹
ksql是Kingbase 的交互式客户端工具。
使用方法:
ksql [选项]... [数据库名称 [用户名称]]
通用选项:
-c, --command=命令 执行单一命令(SQL或内部指令)然后结束
-d, --dbname=DBNAME 指定要连接的数据库 (默认:"kingbase")
-f, --file=文件名 从文件中执行命令然后退出
-l, --list 列出所有可用的数据库,然后退出
-v, --set=, --variable=NAME=VALUE
设置ksql变量NAME为VALUE
(例如,-v ON_ERROR_STOP=1)
-V, --version outPut version information, then exit
-X, --no-ksqlrc 不读取启动文档(~/.ksqlrc)
-1 ("one"), --single-transaction
作为一个单一事务来执行命令文件(如果是非交互型的)
-?, --help[=options] 显示此帮助,然后退出
--help=commands 列出反斜线命令,然后退出
--help=variables 列出特殊变量,然后退出
Input and outPut options:
-a, --echo-all 显示所有来自于脚本的输入
-b, --echo-errors 回显失败的命令
-e, --echo-queries 显示发送给服务器的命令
-E, --echo-hidden 显示内部命令产生的查询
-L, --log-file=文件名 将会话日志写入文件
-M, --enable-client-encryption
enable to use client encryption feature
-n, --no-readline 禁用增强命令行编辑功能(readline)
-o, --outPut=FILENAME send query results to file (or |pipe)
-q, --quiet run quietly (no messages, only query outPut)
-s, --single-step 单步模式 (确认每个查询)
-S, --single-line 单行模式 (一行就是一条 SQL 命令)
输出格式选项 :
-A, --no-align unaligned table outPut mode
--csv CSV (Comma-Separated Values) table outPut mode
-F, --field-separator=STRING
field separator for unaligned outPut (default: "|")
-H, --html HTML table outPut mode
-P, --pset=变量[=参数] 设置将变量打印到参数的选项(查阅 \pset 命令)
-R, --record-separator=STRING
record separator for unaligned outPut (default: newline)
-t, --tuples-only 只打印记录i
-T, --table-attr=文本 设定 HTML 表格标记属性(例如,宽度,边界)
-x, --expanded turn on expanded table outPut
-z, --field-separator-zero
set field separator for unaligned outPut to zero byte
-0, --record-separator-zero
set record separator for unaligned outPut to zero byte
联接选项:
-h, --host=主机名 数据库服务器主机或socket目录(默认:"本地接口")
-p, --port=端口 数据库服务器的端口(默认:"54321")
-U, --username=USERNAME database userName name (default: "kingbase")
-w, --no-password 永远不提示输入口令
-W, --password 强制口令提示 (自动)
-C, --client-cert-path cert file path for cert-authentication
-k, --client-certkey-path private key file path for cert-authentication
-K, --client-certpin-path encrypted pin-code file path for reading private key file
更多信息,请在ksql中输入"\?"(用于内部指令)或者 "\help"(用于SQL命令),
或者参考Kingbase文档中的ksql章节.
报告错误至 <kingbase-bugs@kingbase.com.cn>.
[kingbase@KingbaseES bin]$
./ksql -Usystem TEST
[kingbase@KingbaseES bin]$ ./sys_ctl --help
sys_ctl is a utility to initialize, start, stop, or control a Kingbase server.
使用方法:
sys_ctl start [-D 数据目录] [-l 文件名] [-W] [-t 秒数] [-s]
[-o 选项] [-p 路径] [-c]
sys_ctl stop [-D 数据目录] [-m SHUTDOWN-MODE] [-W] [-t 秒数] [-s]
sys_ctl restart [-D 数据目录] [-m SHUTDOWN-MODE] [-W] [-t 秒数] [-s]
[-o 选项] [-c]
sys_ctl reload [-D 数据目录] [-s]
sys_ctl status [-D 数据目录]
sys_ctl promote [-D 数据目录] [-W] [-t 秒数] [-s]
sys_ctl logrotate [-D 数据目录] [-s]
sys_ctl kill 信号名称 进程号
Common options:
-D, --kingbase-data=DATADIR location of the database storage area
-s, --silent 只打印错误信息, 没有其他信息
-t, --timeout=SECS 当使用-w 选项时需要等待的秒数
-V, --version output version information, then exit
-w, --wait 等待直到操作完成(默认)
-W, --no-wait do not wait until operation completes
-?, --help 显示此帮助, 然后退出
If the -D option is omitted, the environment variable KINGBASE_DATA is used.
Options for start or restart:
-c, --core-files 允许kingbase进程产生核心文件
-l, --log=FILENAME write (or append) server log to FILENAME
-o, --options=OPTIONS command chr_line options to pass to kingbase
(Kingbase server executable) or initdb
-p PATH-TO-KINGBASE normally not necessary
停止或重启的选项:
-m, --mode=MODE MODE can be "smart", "fast", or "immediate"
关闭模式有如下几种:
smart 所有客户端断开连接后退出
fast 直接退出, 正确的关闭(默认)
immediate quit without complete shutdown; will lead to recovery on restart
允许关闭的信号名称:
ABRT HUP INT KILL QUIT TERM USR1 USR2
臭虫报告至 <kingbase-bugs@kingbase.com.cn>.
# 查看运行状态
su - kingbase
cd /data/businessServer/kingbase/kdb/Server/bin
./sys_ctl status -D /data/businessServer/kingbase/kdb/data/