kingbase单机安装部署总结
一、实施标准
1.安装前检查
1.1. 安装环境检查
- 本次使用centos7版本
检查内容 | 最低标准 | 检查命令 |
---|---|---|
CPU | 32或64位 | lscpu |
内存 | 1GB以上 | free -g |
硬盘 | 1GB以上空间 | df -h |
实际结果应>=项目规划值
1.2. 软件依赖检查
uname -a
1.3. 数据库版本检查、是否安装有ksql
查看客户端版本:ksql --version
查看服务器端版本:
select version();
show server_version;
show server_version_num;
select current_setting('server_version_num');
注意事项: select current_setting(‘server_version_num’);返回类型为text,如果需要可以转换为
select current_setting(‘server_version_num’)::integer;
1.4. license检查
检查内容 | 要求 |
---|---|
商务确认 | 正式版、试用版 |
2. 安装步骤
2.1. 安装检查
- 确认操作系统时间、防火墙状态及SELINUX执行下述操作;
检查内容 | 实施命令 |
---|---|
操作系统时间 | 查看时间:date 修改正确时间:date -s 正确时间 同步到硬件:/sbin/hwclock --systohc 能连接外网的话,可以通过ntp来同步 |
防火墙状态 | centos6和redhat6版本 service iptables stop chkconfig iptables off iptables -L iptables -F |
centos7版本 systemctl stop firewalld systemctl disabled firewalld.service firewall-cmd -state iptables-save 只开放端口 firewall-cmd --zone=public --add-port=54321/tcp --permanent systemctl restart firewalld firewall-cmd --list-ports | |
selinux | vi /etc/selinux/config SELINUX=disabled |
2.2. 创建用户
useradd -m -U kingbase
passwd kingbase
2.3. 修改主机名
2.4.文件目录规划
安装包存放目录:/kingbase/kdb_install mkdir -p /kingbase/kdb_install
软件目录:/kingbase/app/kes/8.2/ mkdir -p /kingbase/app/kes/8.2/
数据目录:/kingbase/app/kes/8.2/data/ mkdir -p /kingbase/app/kes/8.2/data/
备份目录:/kingbase/app/kes/backup/ mkdir -p /kingbase/app/kes/backup/
脚本目录:/kingbase/app/kes/8.2/scripts/ mkdir -p /kingbase/app/kes/8.2/scripts/
归档目录:/kingbase/app/archive/ mkdir -p /kingbase/app/archive/
授予权限 chown -R kingbase:kingbase /kingbase
2.5. 操作系统参数
1) 修改资源限制(以下操作需要root 权限)
vim /etc/security/limits.conf
增加如下内容:
kingbase hard nofile 65536
kingbase soft nofile 65536
kingbase hard nproc 65536
kingbase soft nproc 65536
kingbase soft core unlimited
kingbase hard core unlimited
如果limits.d 目录下有文件,则它的优先级更高:
vim /etc/security/limits.d/20-nproc.conf
kingbase soft nproc 65536
2)修改内核参数:(以下操作需要root 权限)
vim /etc/sysctl.conf
增加如下内容:
vm.dirty_background_ratio=1
kernel.sem = 5010 641280 5010 256
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.ipv4.tcp_fin_timeout = 30
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.core.somaxconn=1024
vm.swappiness=0
vm.overcommit_memory = 2
vm.overcommit_ratio = 90
vm.dirty_background_ratio=1
vm.dirty_ratio = 2
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_syn_backlog = 8192
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.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
-- 重新加载生效
sysctl -p
3)修改磁盘IO 调度策略,有些系统没有({DEVICE-NAME}为磁盘名,如“sda”):
vim /etc/rc.d/rc.local
echo deadline > /sys/block/{DEVICE-NAME}/queue/scheduler
4)修改IPC(cat redhat-release 查看,7 及以上的版本需要修改)
vim /etc/systemd/logind.conf
RemoveIPC=no(有的版本RemoveIPC=yes,正确的应该是no)
systemctl daemon-reload
systemctl restart systemd-logind.service
-- 5)
-- vi /etc/systemd/system.conf
-- DefaultTaskAccounting=no
关于kernel.shmmax 的设置:
建议值为多于内存的一半,一般取值大于 SGA_MAX_SIZE 即可,可以取物理内存 -1byte
内存为 12G 时,该值为 1210241024*1024-1 = 12884901887
关于kernel.shmall 的设置:Linux 共享内存页大小为 4KB, 共享内存段的大小都是共享内存页大小的整数倍。
当内存为 16G 时, kernel.shmall = 16 * 1024 * 1024 / 4 = 4194304
3. 执行安装
3.1. 注意事项
1.如果在虚拟机中的Linux 系统中安装KES,需要注意Linux 必须安装了图形化界面,且虚拟机的硬件兼容性必须大于等于14.x 版本,否则会导致图形化安装界面不可用,但命令行安装界面仍是可用的;
2.安装程序不能使用root 执行,安装过程必须使用kingbase 用户操作,并使用前面规划好的目录。
3.2. 开始安装
su - kingbase
cd /kingbase/kdb_install/king......install -- 或者 mount /mnt king......install.iso
./setup.sh -i console -- 命令行安装
-- 在没有出现是否接受许可协议条款之前一路回车
-- 出现是否接受许可协议条款后
输入 Y
-- 选择完全安装
输入 1
-- 选择授权文件
/kingbase/kdb_install/license.dat
-- 输入软件安装目录
/kingbase/app/kes/8.2
是否正确根据实际情况输入Y和N
-- 安装清单
一路回车即可
-- 输入数据存放目录
/kingbase/app/kes/8.2/data
-- 按照提示确认数据库端口、管理员、密码、大小写敏感性
1
port:54321
username:system
password:******
Confirm password:******
字符集:UTF8
大小写是否敏感:1
-- 数据库初始化:
回车即可
-- 完成之后root运行脚本
/kingbase/app/kes/8.3/Scripts/root.sh
3.3. 如果遇到license过期
官网下载相对应的版本
进行替换原有的 license.dat
* cd /kingbase/app/kes/8.2 -- 这里的路径是安装路径
* mv license.dat license.dat.bak
* 上传新的授权码到安装路径
上传到这个目录/kingbase/kdb_install/
* 修改新上传的授权码的名称为 license.dat
cd /kingbase/kdb_install/
cp license_V8R3-企业版.dat /kingbase/app/kes/8.2/license.dat
* 修改拥有者
chown kingbase:kingbase license.dat
* 启动数据库
su - kingbase
sys_ctl start
3.4. 测试登陆
3.4.1. 环境变量
su - kingbase
cd ~
vi .bash_profile
export KINGBASE_DATA=/kingbase/app/kes/8.2/data
export LD_LIBRARY_PATH=$PATH:/kingbase/app/kes/8.2/Server/lib
export PATH=$PATH:/kingbase/app/kes/8.2/Server/bin
3.4.2. 登陆数据库
ksql test system
查看客户端版本:ksql --version
查看服务器端版本:
select version();
show server_version;
show server_version_num;
select current_setting('server_version_num');
3.5. 启停
输出内容 | 实施记录 |
---|---|
启动系统服务 | service kingbase8d start |
查看服务状态 | service kingbase8d status |
停止系统服务 | service kingbase8d stop |
4. 配置备份脚本
- 必须要做的,由于备份只能放到本地,为了安全可以要求将备份放到独立的磁盘。
输出内容 | 实施记录 |
---|---|
确认备份目录 | 前面创建的/kingbase/app/kes/8.2/scripts/ |
拷贝脚本 | 将备份脚本rman_full.sh、rman_page.sh放到 /kingbase/app/kes/8.2/scripts/ |
4.1. 配置脚本
(1)修改rman_full.sh
kdb_home="/kingbase/app/kes/8.2/Server" --安装目录
kdb_data="/kingbase/app/kes/8.2/data" --数据目录路径
kdb_user="SYSTEM" -- 备份用户
kdb_pass="991917" -- 密码
kdb_port="54321" -- 端口
kdb_host="127.0.0.1" -- ip
kdbback_dest="/kingbase/app/kes/backup/" -- 备份路径
keep_num="2" -- 保留备份集
(2)修改rman_page.sh
kdb_home="/kingbase/app/kes/8.2/Server" -- 安装目录
kdb_data="/kingbase/app/kes/8.2/data" -- 数据目录路径
kdb_user="SYSTEM" -- 备份用户
kdb_pass="991917" -- 密码
kdb_port="54321" -- 端口
kdb_host="127.0.0.1" -- ip
kdbback_dest="/kingbase/app/kes/backup/" -- 备份路径
4.2. 测试脚本
-- 先开归档
关闭数据库
修改kingbase.conf文件
wal_level=replica
archive_mode=on
archive_command='cp %p /kingbase/app/archive/%f'
archive_dest='/kingbase/app/archive/'
archive_timeout=0
启动数据库
-- 检查归档
ls /kingbase/app/archive/
select sys_switch_xlog();
checkpoint;
select sys_switch_xlog();
checkpoint;
ls /kingbase/app/archive/
-- 测试脚本
sh -x /kingbase/app/kes/8.2/scripts/rman_full.sh
ls /kingbase/app/kes/backup/backups/ -- 查看全备
-- 把这三个脚本fast_deploy_rman.sh rman_check.sh rman.conf上传到目录/kiingbase/app/kes/8.2/scripts/
sh -x /kingbase/app/kes/8.2/scripts/rman_page.sh
ls /kingbase/app/kes/backup/backups/ -- 查看增备
注意:安装完数据库先开归档,在做备份的时候,备份路径一定要写正确
4.3.备份策略
crontab -e
0 23 * * 7 sh -x /kingbase/app/kes/8.2/scripts/rman_full.sh
0 23 * * 1-6 sh -x /kingbase/app/kes/8.2/scripts/rman_page.sh