- 预安装工作
- 安装前检查(主备节点都执行)
1.1.1.1 检查操作系统时间
查看时间:date
修改正确时间:date -s 正确时间
同步到硬件:/sbin/hwclock --systohc
能连接外网的话,可以通过ntp来同步
1.1.1.2 关闭防火墙
(以CentOS7举例)
[root@node1 ~]# systemctl status firewalld.service 查看防火墙状态
[root@node1 ~]# systemctl stop firewalld.service 关闭防火墙
[root@node1 ~]# systemctl disable firewalld.service 禁用防火墙
1.1.1.3 禁用selinux
[root@node1 ~]# vim /etc/selinux/config 追加以下内容
SELINUX=disabled
1.1.2创建安装用户
在linux 系统中,需要以非 root 用户执行安装程序,且该用户要有标准的 home 目录。因此,建议在正式安装前,新建 kingbase 用户作为金仓数据库管理系统 KingbaseES 专用的系统用户。
在主节点创建 kingbase 用户:
[root@node1 ~]# useradd kingbase
为kingbase用户设置密码:
[root@node1 ~]# passwd kingbase
1.1.3 修改系统参数(主备节点都执行)
- 编辑 /etc/security/limits.conf 文件,追加以下内容
[root@node1 ~]# vim /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 文件,追加以下内容
[root@node1 ~]# vi /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
- 修改/etc/systemd/system.conf文件中的DefaultTasksAccounting参数
[root@node1 ~]# vim /etc/systemd/system.conf
DefaultTasksAccounting=no 注:所有服务不再有此限制
执行以下命令生效
[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl daemon-reexec
执行以下命令观察是否生效(无Limit那一行),若无生效,重启。
[root@node1 ~]# service sshd status
- 修改磁盘IO调度策略
echo deadline > /sys/block/[磁盘名]/queue/scheduler
此命令添加到rc.local
Tips:
deadline综合测试性能表现更稳定。
- 修改/etc/systemd/logind.conf文件中RemoveIPC=no
[root@node1 ~]# vim /etc/systemd/logind.conf
RemoveIPC=no
生效方式
[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl restart systemd-logind
1.1.4准备安装程序
以下操作仅在主节点执行即可
- 将数据库安装包和license文件拷贝到指定路径下并修改权限为kingbase用户所有
[root@node1 ~]# chown -R kingbase.kingbase /home/kingbase/kdb_install/
- 使用root用户挂载安装包,本次挂载在/mnt目录下(如果是压缩包形式,直接解压即可)
[root@node1~]# mount /home/kingbase/kdb_install/KingbaseES_V008R006C005B0033_Lin64_install.iso /mnt
第2章 安装集群软件(仅需在主节点安装)
2.1 命令行安装
2.2.1 启动安装程序
需使用kingbase用户执行
[kingbase@node1 mnt]$ sh setup.sh -i console
2.2.2 简介
按 <ENTER>继续
2.2.3 许可协议
一直按 <ENTER>继续,直至询问是否接受许可协议,输入Y(不区分大小写)接受协议,按 <ENTER>继续
2.2.4 选择安装集
输入 2,选择“客户端安装”安装集
2.2.5 选择安装目录
输入想要安装到的目录的绝对路径,并输入y确认所输目录正确
2.2.6 预安装摘要
确认即将安装产品的摘要信息正确后,按 <ENTER>继续
2.2.7 开始安装
确认安装后,按 <ENTER>开始安装
2.2.8 安装完成
安装完成,按 <ENTER> 键退出安装程序。
2.3 安装完确认
在安装完成后,可以通过以下几种方式进行安装正确性验证:
- 查看安装日志,确认没有错误记录;
安装日志在 安装目录/install/Logs/ 下
2、查看开始菜单:
使用kingbase用户登录,查看应用程序菜单中是否安装了 KingbaseES 菜单项
3、查看安装目录结构如下图
通过 SSHD 服务自动分发文件并部署
Note: 此步骤针对通用机环境【可以使用 SSHD 服务并且可以通过 SSH 免密登陆 root 用户】此类场景可以使用此方式部署集群。
3.1.1 获取集群部署所需文件
使用集群部署用户新建目录 r6_install,将安装目录/ClientTools/guitools/DeployTools/zip/中的压缩包 db.zip、脚本文件 V8R6_cluster_install.sh、配置文件 install.conf、免密配置脚本 trust_cluster.sh拷贝至 r6_install,并且将license 文件上传至r6_install,需注意文件权限属主需为集群部署用户。最终目录结构如下:
3.1.2 配置 install.conf
Note:如需修改 ssh 连接端口,先修改 install.conf 文件中 ssh_port 项的值,然后修改系统/etc/ssh/sshd-config文件中的 Port 项的值,最后需要重启 sshd 服务。
读写分离集群配置示例:
on_bmj=0
all_ip=(192.168.40.11 192.168.40.12)
witness_ip=""
production_ip=()
local_disaster_recovery_ip=()
remote_disaster_recovery_ip=()
install_dir="/home/kingbase/cluster"
zip_package="/home/kingbase/r6_install/db.zip"
license_file=(license.dat)
trusted_servers="192.168.40.1"
data_directory="/home/kingbase/cluster/kingbase/data"
virtual_ip=""
net_device=()
net_device_ip=()
ipaddr_path="/usr/sbin"
arping_path="/usr/sbin"
ping_path="/usr/bin"
super_user="root"
execute_user="kingbase"
deploy_by_sshd=1
use_scmd=1
reconnect_attempts="10"
reconnect_interval="6"
recovery="standby"
ssh_port="22"
scmd_port="8890"
auto_cluster_recovery_level='1'
use_check_disk='off'
synchronous='quorum'
3.1.3 SSH 免密配置
使用root用户执行trust_cluster.sh脚本,安提示输入root用户的密码进行 SSH 免密配置,免密配置后,请验证即将要部署集群的所有设备的root用户和集群部署用户之间的免密是否配置正确。
3.1.4 集群部署
集群部署用户执行 sh V8R6_cluster_install.sh 命令进行集群部署,部署脚本将按照配置自动完成集群部署工作。
....
3.1.5 部署后检查
部署成功后,在$install_dir/kingbase/bin下,执行命令“./repmgr cluster show”,确认是否真正成功部署集群。