大家好,我是 JiekeXu,江湖人称“强哥”,荣获 Oracle ACE Pro 称号,墨天轮 MVP,墨天轮年度“墨力之星”,拥有 Oracle 11g OCP/OCM 认证,MySQL 5.7/8.0 OCP 认证以及 PCA、PCTA、OBCA、OGCA、KCP 等众多国产数据库认证证书,今天和大家一起来看看中电科金仓 KES 单机安装最佳实践,欢迎点击最上方蓝字“JiekeXu DBA之路”关注我的微信公众号,然后点击右上方三个点“设为星标”置顶,更多干货文章才能第一时间推送,谢谢!
目 录
前 言
一、软件下载与授权文件获取
二、KES 软件安装规划表
三、操作系统相关配置
四、安装 KingbaseES 单机
安装前准备
开始安装
图形化安装
静默安装
五、安装后检查
六、卸载 KES
七、参考链接
前 言
1999 年 6 月,在王珊教授的带领下,中国人民大学一批从事数据库研究的学者创立了我国第一家数据公司——北京金仓信息技术有限公司。今年是人大金仓成立 25 周年的日子,也是人大金仓正式更名的日子,8 月底,人大金仓公司名称由“北京人大金仓信息技术股份有限公司”变更为“中电科金仓(北京)科技股份有限公司”,简称“电科金仓”,从公司名字的变更看出脱离了高校的属性。更多介绍可以查看前面一篇文章《聊聊人大金仓 KingbaseES 数据库》。
一、软件下载与授权文件获取
金仓数据库属于非开源产品,企业版本需要绑定主机 MAC 地址进行 license 授权使用,当然你也可以下载企业版或者专业版的 90 天试用,开发版本的 365 天试用产品。
https://www.kingbase.com.cn/xzzx/index.htm
KingbaseES 支持多种操作系统和硬件平台:支持 Linux、Windows、国产 Kylin 等数十个操作系统产品版本,支持通用 x86_64 及国产龙芯、飞腾、申威等 CPU 硬件体系架构。
针对不同类型的客户需求,KingbaseES 提供标准版、企业版、专业版、开发版等多种版本。这些版本构建于同一数据库引擎上,不同平台版本完全兼容。KingbaseES 能够提供一主一备以及一主多备的高可用集群架构,实现数据及实例级 (异地) 故障容灾,也能够提供多节点并行服务,内存融合及存储共享,实现高并发性能利用最大化,结合读写分离或备份使用同步实现数据保护最大化。
我这里使用的 OS 是 x86_64 位的 CentOS Linux release 7.6.1810 (Core) ,如下所示,下载 X86 Linux 类型的安装介质。
License
License 是 KingbaseES 提供的授权文件,其中会对数据库有效日期、发布类型、最大并发连接数、mac 地址、ip等信息进行设置,如果在 License 文件中信息与安装环境中相关信息不匹配,数据库将无法启动。如上所示,可下载试用版本的 License 文件。
[ ]
3adf56122ea7d407bc43138ab8b11f84 KingbaseES_V009R001C001B0030_Lin64_install.iso
--联系金仓销售获取 LICENSE 授权文件
[ ]
[ ]
total 0
drwxrwxr-x 2 root root 33 Sep 9 12:08 license_43846
[ ]
[ ]
total 4
-rw-rw-r-- 1 root root 3838 Sep 9 12:08 license_43846_0.dat
[ ]
/backup/KingbaseES/license_43846
二、KES 软件安装规划表
如下表是一些安装要求及明细信息,有了这些信息也方便我们以后的统一规范运维,为我们以后的日常运维减少一些不必要的麻烦。
三、操作系统相关配置
这一节主要说明 OS 相关的设置,比如查看版本、内存、磁盘、关闭防火墙、SELinux、内核参数、资源限制、关闭 numa 和禁用透明大页等等。
## 查看操作系统版本
cat /etc/*release
## 查看内存
~]# free -m
total used free shared buff/cache available
Mem: 9819 2610 333 2269 6874 4697
Swap: 2047 0 2047
~]# df -h
Filesystem Size Used Avail Use% Mounted on
97G 79G 19G 81% /
devtmpfs 4.8G 0 4.8G 0% /dev
tmpfs 4.8G 0 4.8G 0% /dev/shm
tmpfs 4.8G 45M 4.8G 1% /run
tmpfs 4.8G 0 4.8G 0% /sys/fs/cgroup
1014M 180M 835M 18% /boot
tmpfs 982M 4.0K 982M 1% /run/user/42
tmpfs 982M 36K 982M 1% /run/user/12345
tmpfs 982M 0 982M 0% /run/user/0
##关闭防火墙
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
systemctl list-unit-files | grep firewalld
## 关闭 selinux
cp /etc/selinux/config /etc/selinux/config_`date +"%Y%m%d_%H%M%S"`&& sed -i 's/SELINUX\=enforcing/SELINUX\=disabled/g' /etc/selinux/config
cat /etc/selinux/config
##不重启
setenforce 0
getenforce
·内核参数
为了避免在 KingbaseES 安装和使用过程中出现问题,需要检查和设置内核参数。
cat>>/etc/sysctl.conf <<EOF
############For KingbaseES Setting########
fs.aio-max-nr = 1048576 #异步IO请求数目 推荐值是:1048576 其实它等于 1024*1024 也就是 1024K 个
fs.file-max = 6815744 #打开的文件句柄的最大数量,防止文件描述符耗尽的问题
fs.nr_open = 20480000 # 系统范围内可打开的最大文件数
kernel.core_pattern = core.%e.%p.%t # Core dump 文件名模式
kernel.shmall = 2097152 #共享内存总量 页为单位,内存除以4K所得
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128 #SEMMSL: 每个信号集的最大信号数量 SEMMNS:用于控制整个 Linux 系统中信号的最大数 SEMOPM:内核参数用于控制每个 semop 系统调用可以执行的信号操作的数量 SEMMNI :内核参数用于控制整个 Linux 系统中信号集的最大数量
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 #套接字发送缓冲区大小的最大值
fs.file-max = 6815744
kernel.watchdog_thresh=30
vm.min_free_kbytes = $(free -k | awk 'NR==2 {printf "%d\n", int($2 / 200)}') # 预留给 OS 的最小空闲内存
vm.swappiness = 2
vm.overcommit_memory = 0 # 表示系统的内存分配策略可以选值为 0,1,2。0:表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
vm.max_map_count=2000000
EOF
/sbin/sysctl -p
/sbin/sysctl -a
·资源限制
Linux 资源限制配置文件是 /etc/security/limits.conf 。限制用户可使用的资源数量对系统的稳定性非常重要。通过调整资源限制数量改进系统性能。如下:其中 soft 是一个警告值,hard 是真正意义的阈值,超过系统就会报错,一般情况下两者设为同一个值。一般保持系统安装时的默认值即可。
资源项 | 含义 |
core | 内核文件大小(KB) |
data | 最大数据大小(KB) |
fsize | 最大文件大小(KB) |
memlock | 最大锁定内存地址空间(KB) |
nofile | 最大打开的文件描述符数量 |
rss | 最大持久设置大小(KB) |
stack | 最大堆栈大小(KB) |
cpu | 最大CPU时间(分钟) |
noproc | 最大进程数量 |
as | 地址空间限制(KB) |
maxlogins | 用户最大登录次数 |
maxsyslogins | 系统上登录的最大数量 |
priority | 运行用户进程的优先级 |
locks | 用户可持有的最大文件锁数量 |
sigpending | 最大挂起的信号数量 |
msgqueue | POSIX消息队列使用的最大内存(字节) |
nice | 最大可提升到的合适优先级 |
rtprio | 最大实时优先级 |
<<EOF
##########################################
############For KingbaseES Setting########
kingbase soft stack unlimited
kingbase hard stack unlimited
kingbase soft nproc 655360
kingbase hard nproc 1048576
# 注意:设置 nofile 的 hard limit 不能大于 /proc/sys/fs/nr_open,否则注销后将无法正常登陆
kingbase soft nofile 655360
kingbase hard nofile 1048576
kingbase soft memlock unlimited
kingbase hard memlock unlimited
kingbase soft core unlimited
kingbase hard core unlimited
EOF
·RemoveIPC 参数
systemd-logind 服务中引入的一个特性,是当一个用户退出系统后,会删除所有有关的 IPC 对象。该特性由 /etc/systemd/logind.conf 文件中的 RemoveIPC参数控制。某些操作系统会默认打开,会造成程序信号丢失等问题(只有 redhat7 及以上和一些特殊的国产 Linux 的版本需要修改,改之前可先查看此项是否为默认 yes)。设置RemoveIPC=no。设置后重启服务:
sed -i 's/\#RemoveIPC\=no/RemoveIPC\=no/g' /etc/systemd/logind.conf
cat /etc/systemd/logind.conf | grep RemoveIPC
systemctl daemon-reload
systemctl status systemd-logind.service
systemctl restart systemd-logind.service
·关闭 numa 和禁用透明大页
NUMA 是一种用于多处理器系统的内存设计,它允许处理器访问不同的内存区域,但访问本地内存比访问远程内存要快。在一些应用场景中,特别是对于那些对延迟敏感的应用,不当的 NUMA 配置可能会导致性能问题。
透明大页 是 Linux 内核的一个特性,它试图通过使用更大的内存页面(通常是2MB,而不是默认的4KB)来提高内存管理的效率。虽然 THP 在某些情况下可以提高性能,但在其他情况下,尤其是对于数据库和其他需要精确控制内存分配的应用程序,它可能导致性能下降。
### 检查:
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag
### 修改
sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub
grep quiet /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
### 重启后检查是否生效:
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /proc/cmdline
·调整 login
/etc/pam.d/login 文件是 Linux 系统中 PAM(Pluggable Authentication Modules,可插拔认证模块)配置文件之一。PAM 提供了一种灵活的机制来管理用户认证,它允许系统管理员通过配置文件定义如何进行身份验证、账户管理、会话管理和密码管理,我们通过启用 PAM 的 pam_limits.so 模块来设置用户会话的资源限制。pam_limits.so 模块通常与 /etc/security/limits.conf 文件配合使用,该文件定义了各种资源限制规则。
总结来说,添加 session required pam_limits.so 是为了确保在用户会话开始时,PAM 会读取并应用 /etc/security/limits.conf 文件中定义的资源限制。这有助于增强系统的安全性和稳定性,防止资源滥用。
cat >> /etc/pam.d/login <<EOF
session required /lib/security/pam_limits.so
session required pam_limits.so
EOF
·创建安装用户
在安装 KingbaseES 时,安装用户对于安装路径需有“读”、“写”、“执行”的权限。在 Linux 系统中,需要以非 root 用户执行安装程序,且该用户要有标准的 home 目录。
因此,建议在正式安装前,新建 kingbase 用户作为 KingbaseES 专用的系统用户。这里指定组 ID 和 用户 ID 且全局唯一,方便后期主机间数据文件传输迁移。
## 创建安装用户组 kingbase
tail -8 /etc/group
groupadd -g 10088 kingbase --查看组 ID 避免重复
## 创建安装用户 kingbase
tail -8 /etc/passwd
useradd -u 10086 -g kingbase -m -d /home/kingbase -s /bin/bash kingbase
echo "kingbase" | passwd --stdin kingbase
·创建安装路径
按照前面第二章节规划,创建目录并授权。
# mkdir -p /data/KingbaseES/{V9,data,install,arch}
# chown -R kingbase:kingbase /data/KingbaseES
·配置环境变量
su - kingbase
vi .bash_profile
export PATH=/data/KingbaseES/V9/Server/bin:$PATH
export KINGBASE_HOME=/data/KingbaseES/V9
export KINGBASE_DATA=/data/KingbaseES/data
--生效
. .bash_profile
·修改字符集为英文
最后,安装数据库软件时,OS 语言建议设置为英文(非必须),习惯了英文下的 Oracle 数据库,突然中文很让人难受,且其他软件对于英文更兼容。
[root@JiekeXu ~]# more /etc/locale.conf
LANG="en_US.UTF8"
四、安装 KingbaseES 单机
安装前准备
通过 sftp 上传 iso 和授权文件到 /backup,挂载上传好的 iso 光盘镜像文件到 /mnt。
### 验证文件 MD5 值
[root@JiekeXu backup]# md5sum KingbaseES_V009R001C001B0030_Lin64_install.iso
3adf56122ea7d407bc43138ab8b11f84 KingbaseES_V009R001C001B0030_Lin64_install.iso
# mount -o loop /backup/KingbaseES_V009R001C001B0030_Lin64_install.iso /mnt
使用 Kingbase 用户拷贝挂载后的安装文件到我们规划好的 install 目录。
# su - kingbase
$ cp -r /mnt/* /data/KingbaseES/install/
复制我们的授权文件到 install 目录。
[kingbase@JiekeXu backup]$ cd KingbaseES/
[kingbase@JiekeXu KingbaseES]$ ll
total 0
drwxrwxr-x 2 root root 33 Sep 9 12:08 license_43846
[kingbase@JiekeXu KingbaseES]$ cd license_43846/
[kingbase@JiekeXu license_43846]$ ll
total 4
-rw-rw-r-- 1 root root 3838 Sep 9 12:08 license_43846_0.dat
[kingbase@JiekeXu license_43846]$ cp license_43846_0.dat /data/KingbaseES/install/
[kingbase@JiekeXu license_43846]$ cd /data/KingbaseES/install/
[kingbase@JiekeXu install]$ ll
total 8
-rw-rw-r-- 1 kingbase kingbase 3838 Sep 22 21:43 license_43846_0.dat
dr-xr-xr-x 2 kingbase kingbase 91 Sep 22 21:42 setup
-r-xr-xr-x 1 kingbase kingbase 3932 Sep 22 21:42 setup.sh
开始安装
安装单机 KingbaseES,有 图形化安装 、 命令行安装 和 静默安装 三种方式,不论何种方式安装,整体的安装流程如下图所示。
不论何种方式安装,整体的安装流程如下图所示。
下面我们使用命令行的方式安装吧。首先进入安装程序中setup.sh所在目录,以 kingbase 用户执行如下命令:
$ cd /data/KingbaseES/install/
sh setup.sh -i console
连续多次输入回车继续,直到“DO YOU ACCEPT THE TERMS OF THIS LICENSE AGREEMENT? (Y/N):”输入 Y 回车。
根据安装后数据库服务功能的不同,KingbaseES 可分为完全安装、客户端安装和定制安装三种安装集。输入 1,或按接受缺省项,选择“完全安装”安装集,系统将安装 KingbaseES 所有组件,跳至 选择授权文件 。如果输入 2,选择“客户端安装”安装集,系统将安装 KingbaseES 的所有客户端工具、编程接口、扩展插件以及命令行可执行二进制文件,跳至 选择安装文件夹 。如果输入 3,选择“定制安装”安装集,可根据需求选择安装所需功能组件,将进入下一步 选择产品功能组件 。
然后选择 install 目录下我们准备好的 license 文件,若指定的授权文件合法,则将显示授权文件的详细信息。
选择安装文件夹,此步骤用于选择安装路径。默认安装路径是 /opt/Kingbase/ES/V9,我们这里选择前面第二章节定义好的 /data/KingbaseES/V9 目录。然后输入 Y 确认,然后需要 5378 MB 空间安装,我们继续两次回车,等待安装。
首先选择数据库数据目录,默认数据库数据目录为安装目录下的 data 目录,我们选择前面第二章节定义好的 /data/KingbaseES/data 目录,回车,自定义端口 54325 回车。
接着,自定义管理员账号与密码,我这里默认选择 system,密码 kingbase,选择默认字符集编码为:UTF8。
·数据库区域选择:enUS.UTF-8,默认为 zhCN.UTF-8
·默认数据库兼容模式为:ORACLE(可选 PG、MySQL)
·默认大小写敏感为:是(可选否)
·默认数据块大小为:8k(可选16k、32k)
·默认身份认证方法为scram-sha-256(可选 scram-sm3,sm4,sm3)
接下来数据库将进行初始化操作,接着回车等待即可。安装完成后回车退出安装程序。
如果想注册数据库服务为系统服务,可以在安装并初始化数据库成功后,执行 root.sh 脚本来注册并启动数据库服务。
===============================================================================
Please Wait
-----------
===============================================================================
Installation Complete
---------------------
Congratulations. KingbaseES V9 has been successfully installed to:
/data/KingbaseES/V9
If you want to register KingbaseES V9 as OS service, please run
/data/KingbaseES/V9/install/script/root.sh
PRESS <ENTER> TO EXIT THE INSTALLER:
Complete.
[kingbase@JiekeXu install]$ exit
logout
[root@JiekeXu ~]#
[root@JiekeXu ~]#
[root@JiekeXu ~]# /data/KingbaseES/V9/install/script/root.sh
Starting KingbaseES V9:
waiting for server to start.... done
server started
KingbaseES V9 started successfully
图形化安装
图像化安装支持中文和英文,当设置为中文时,提示比较友好,下一步下一步即可安装,这里仅演示开始步骤,不在演示后续安装步骤。根据操作系统的语言设置会显示对应语言的安装界面。可以执行如下命令查看操作系统的语言设置:
echo $LANG
如果系统显示值包含“zh_CN”,则为中文语言,安装程序会使用中文界面。否则,可以执行如下命令修改语言设置为中文:
export LANG=zh_CN.UTF-8
cd /data/KingbaseES/install/
sh setup.sh
或
sh setup.sh -i swing
如果当前操作系统中已存在 KingbaseES,执行启动命令后将弹出 KingbaseES 安装程序窗口【实例管理页】。
选择【安装新的实例】,点击【确认】,开始安装 KingbaseES。点击【取消】按钮则退出本次安装。
如果想在已安装实例上增加或删除功能,则可以选择【修改存在的实例】。
静默安装
静默安装模式下,安装程序通过读取配置文件来安装数据库。安装包 iso 文件挂载后,setup 目录下已存在silent.cfg 模板文件,需要根据实际安装机器的情况修改参数值。因为 Linux 挂载 iso 目录为只读,需要拷贝setup/silent.cfg 文件到另外的目录进行修改。修改的内容也比较简单,填写 licence 文件位置,数据存储目录以及 system 用户密码,确认密码,其他的选项可酌情修改。
$ vim /data/KingbaseES/install/setup/silent.cfg
$ /data/KingbaseES/install/setup.sh -i silent -f /data/KingbaseES/install/setup/silent.cfg
# /data/KingbaseES/V9/install/script/root.sh
图形化管理工具——KStudio
前面章节已经将 KES 安装到 Linux 中,在 Linux 的 Applications 程序菜单中启动“数据库对象管理工具”即可。
或者单独安装客户端工具,KES 支持在 WINDOWS 或 LINUX 中,仅安装客户端工具--在安装 KES 的“选择安装集”步骤中选择“客户端安装”即可。下面是一个简单的演示:
五、安装后检查
·查看 Kingbase 相关进程
[kingbase@JiekeXu ~]$ ps aux | grep kingbase | grep -v grep | awk '{print $11,$12,$13,$14}'| grep -v awk| grep -v bash | grep -v aux| grep -v su
/data/KingbaseES/V9/KESRealPro/V009R001C001B0030/Server/bin/kingbase -D /data/KingbaseES/data
kingbase: logger
kingbase: checkpointer
kingbase: background writer
kingbase: walwriter
kingbase: autovacuum launcher
kingbase: stats collector
kingbase: kwr collector
kingbase: ksh writer
kingbase: ksh collector
kingbase: logical replication launcher
·查看安装日志
在$KINGBASEHOME/{install}/Logs目录下,存在名称为 "KingbaseESV9_Install*.log" 的日志文件,其中记录了安装过程的所有信息。您可以打开日志文件,查看如下所示安装结果信息判断是否安装正确。
more /data/KingbaseES/V9/install/Logs/KingbaseES_V9_Install_09_22_2024_22_39_18.log
·登录测试
-- ksql -h hostname -U username -d dbname -p port
[kingbase@JiekeXu ~]$ ksql -p 54325 -U system test
Password for user system:
Type "help" for help.
test=# 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 row)
test=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+--------+----------+-------------+-------------+-------------------
kingbase | system | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
security | system | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | system | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/system +
| | | | | system=CTc/system
template1 | system | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/system +
| | | | | system=CTc/system
test | system | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
(5 rows)
·用户简单管理
select*from sys_user;
--创建普通用户
CREATEUSER test WITHPASSWORD'123456';
--授予权限
ALTERUSER test CREATEROLE;
ALTERUSER test CREATEDB;
--修改管理员密码
ALTERUSERsystemPASSWORD'Kingbase123';
--修改普通用户密码
ALTERUSER test PASSWORD'Kingbase123';
--KingbaseES提供系统存储过程alteruserreadonly来设置用户的只读状态。
test=# call alteruserreadonly ('','user1',true);
--'' 指 database 数据库名称,为空时表示全部数据库
·启停数据库
我们通过 reboot 重启操作系统,检查上面步骤配置成的服务是否可以开机自启动。
[kingbase@JiekeXu ~]$ ps -ef | grep wal
kingbase 10007 9820 0 23:50 ? 00:00:00 kingbase: walwriter
[root@JiekeXu ~]# systemctl list-dependencies | grep kingbase
● ├─kingbased.service
● ├─kingbased.service
[root@JiekeXu ~]# systemctl status kingbased.service
● kingbased.service - LSB: Start and stop the kingbase server
Loaded: loaded (/etc/rc.d/init.d/kingbased; bad; vendor preset: disabled)
Active: active (exited) since Sun 2024-09-22 23:50:03 CST; 7min ago
Docs: man:systemd-sysv-generator(8)
Process: 9498 ExecStart=/etc/rc.d/init.d/kingbased start (code=exited, status=0/SUCCESS)
Tasks: 0
Sep 22 23:50:02 JiekeXu systemd[1]: Starting LSB: Start and stop the kingbase server...
Sep 22 23:50:02 JiekeXu kingbased[9498]: Starting KingbaseES V9:
Sep 22 23:50:02 JiekeXu su[9517]: (to kingbase) root on none
Sep 22 23:50:03 JiekeXu kingbased[9498]: waiting for server to start.... done
Sep 22 23:50:03 JiekeXu kingbased[9498]: server started
Sep 22 23:50:03 JiekeXu kingbased[9498]: KingbaseES V9 started successfully
Sep 22 23:50:03 JiekeXu systemd[1]: Started LSB: Start and stop the kingbase server.
[root@JiekeXu ~]#
# --root 用户以下命令均可以执行
# systemctl status kingbased.service
# systemctl stop kingbased.service
# systemctl start kingbased.service
# systemctl restart kingbased.service
# systemctl restart kingbase
# systemctl stop kingbase
# systemctl status kingbase
# service kingbase status
# service kingbase restart
[root@JiekeXu ~]# systemctl list-dependencies | grep kingbase
● ├─kingbased.service
● ├─kingbased.service
[root@JiekeXu ~]#
[root@JiekeXu ~]# systemctl restart kingbase
[root@JiekeXu ~]#
[root@JiekeXu ~]# systemctl status kingbase
● kingbased.service - LSB: Start and stop the kingbase server
Loaded: loaded (/etc/rc.d/init.d/kingbased; bad; vendor preset: disabled)
Active: active (exited) since Mon 2024-09-23 00:00:52 CST; 11s ago
Docs: man:systemd-sysv-generator(8)
Process: 13150 ExecStop=/etc/rc.d/init.d/kingbased stop (code=exited, status=0/SUCCESS)
Process: 13180 ExecStart=/etc/rc.d/init.d/kingbased start (code=exited, status=0/SUCCESS)
Sep 23 00:00:51 JiekeXu systemd[1]: Starting LSB: Start and stop the kingbase server...
Sep 23 00:00:51 JiekeXu kingbased[13180]: Starting KingbaseES V9:
Sep 23 00:00:51 JiekeXu su[13186]: (to kingbase) root on none
Sep 23 00:00:52 JiekeXu kingbased[13180]: waiting for server to start.... done
Sep 23 00:00:52 JiekeXu kingbased[13180]: server started
Sep 23 00:00:52 JiekeXu systemd[1]: Started LSB: Start and stop the kingbase server.
Sep 23 00:00:52 JiekeXu kingbased[13180]: KingbaseES V9 started successfully
[root@JiekeXu ~]# service kingbase status
sys_ctl status -D $KINGBASE_DATA
sys_ctl stop -D $KINGBASE_DATA
sys_ctl start -D $KINGBASE_DATA
sys_ctl restart -D $KINGBASE_DATA
[kingbase@JiekeXu ~]$ find /data/KingbaseES/ -name sys_ctl
/data/KingbaseES/V9/KESRealPro/V009R001C001B0030/Server/bin/sys_ctl
[kingbase@JiekeXu ~]$ echo $KINGBASE_DATA
/data/KingbaseES/data
[kingbase@JiekeXu ~]$ sys_ctl -D $KINGBASE_DATA status
sys_ctl: server is running (PID: 13214)
/data/KingbaseES/V9/KESRealPro/V009R001C001B0030/Server/bin/kingbase "-D" "/data/KingbaseES/data"
注:sys_ctl stop默认停库选项是 -m fast,断开客户端连接、回滚事务、正常关闭数据库,相当于 Oracle 中的 shutdown immediate
-m smart 选项则是等待所有连接断开后才关闭。
-m immediate 选项则是立即关闭,下次启动要进行恢复,相当于 Oracle 的 shutdown abort。
·使用 kingbase 启动实例
## 如果我们要启动实例,也可以使用 kingbase -D /data/KingbaseES/data
kingbase -D $KINGBASE_DATA >log1 2>&1 &
[kingbase@JiekeXu ~]$ which kingbase
/data/KingbaseES/V9/Server/bin/kingbase
[kingbase@JiekeXu ~]$ sys_ctl stop -D $KINGBASE_DATA
waiting for server to shut down.... done
server stopped
[kingbase@JiekeXu ~]$ kingbase -D $KINGBASE_DATA >log1 2>&1 &
[1] 16178
[kingbase@JiekeXu ~]$ sys_ctl status -D $KINGBASE_DATA
sys_ctl: server is running (PID: 16178)
/data/KingbaseES/V9/KESRealPro/V009R001C001B0030/Server/bin/kingbase "-D" "/data/KingbaseES/data"
先移除开机自动服务,接着卸载 KES 数据库。
[kingbase@JiekeXu script]$ ll /data/KingbaseES/V9/install/script/rootuninstall.sh
-rwxr-x--- 1 kingbase kingbase 627 Sep 22 23:02 /data/KingbaseES/V9/install/script/rootuninstall.sh
## root 用户执行 rootuninstall.sh 脚本移除开机自动服务
[root@JiekeXu ~]# sh /data/KingbaseES/V9/install/script/rootuninstall.sh
## 以 kingbase 用户执行 bash /data/KingbaseES/V9/Uninstall/Uninstaller -i console。
[kingbase@JiekeXu Uninstall]$ bash /data/KingbaseES/V9/Uninstall/Uninstaller -i console
[kingbase@JiekeXu Uninstall]$ echo $?
0
## echo $? 返回 0 则说明卸载成功
## 然后删除此目录即可 /data/KingbaseES
七、参考链接
https://bbs.kingbase.com.cn/docHtml?recId=d16e9a1be637c8fe4644c2c82fe16444&url=aHR0cHM6Ly9iYnMua2luZ2Jhc2UuY29tLmNuL2tpbmdiYXNlLWRvYy92OS9pbnN0YWxsLXVwZGF0YS9pbnN0YWxsLWxpbnV4L2luZGV4Lmh0bWw
=========未完待续系列============
最后这里在新开一个国产数据库技术交流群,有感兴趣的朋友可扫码入群,坑位有限先到先得。本群定位:交流学习国产数据库相关技术,拒绝吹水。
全文完,希望可以帮到正在阅读的你,如果觉得有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~
欢迎关注我的公众号【JiekeXu DBA之路】,一起学习新知识!
分享几个数据库备份脚本
一文搞懂 Oracle 统计信息
我的 Oracle ACE 心路历程
MOP 系列|MOP 三种主流数据库索引简介
Oracle 主流版本不同架构下的静默安装指南
关机重启导致 ASM 磁盘丢失数据库无法启动
Oracle SQL 性能分析(SPA)原理与实战演练
Oracle 11g 升级到 19c 需要关注的几个问题
Windows 10 环境下 MySQL 8.0.33 安装指南
SQL 大全(四)|数据库迁移升级时常用 SQL 语句
OGG|使用 OGG19c 迁移 Oracle11g 到 19C(第二版)
Oracle 大数据量导出工具——sqluldr2 的安装与使用
从国产数据库调研报告中你都能了解哪些信息及我的总结建议
使用数据泵利用 rowid 分片导出导入 lob 大表及最佳实践
在归档模式下直接 rm dbf 数据文件并重启数据库还有救吗?
——————————————————————————
公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
ITPUB:https://blog.itpub.net/69968215
腾讯云:https://cloud.tencent.com/developer/user/5645107
——————————————————————————