人大金仓数据库KESV8R3集群安装详细教程

注意:每次关机都要先关闭集群

关集群时先关备库再关主库

一、集群部署

1. 安装部署前准备

1.1. 硬件环境检查

  • 检查每个节点的硬件配置,是否满足要求,尤其是磁盘方面,如果默认目录空间不够,可以考虑将挂载磁盘通过软连接的方式关联到默认目录
检查内容及各项实际情况
内存1GB以上free -g
硬盘1GB以上空闲空间df -h
IP固定IPifconfig

1.2. 软件依赖检查

检查内容及各项实际情况
操作系统版本主流的32/64位linux系统1.uname -a
2.cat /proc/version
3.cat /etc/issue 或 cat /etc/redhat-release
4.cat /proc/cpuinfo
5.getconf LONG_BIT
6.lsb_release -a(centos7.0以上版本可以直接使用,以下版本需要安装lsb)

1.3. 检查介质

查看客户端版本:ksql --version

查看服务器端版本:
select version();
show server_version;
show server_version_num;
select current_setting('server_version_num');

1.4. license检查

2. 安装准备

2.1. 确认安装参数

输出内容实施记录
DB VIP
Cluster VIP
是否大小写敏感
用户名密码
是否兼容oracle
数据库端口号,cluster端口号
确认安装目录,保密机是否否有盘阵
是否需要定时备份

2.2. 安装检查

  • 与集成商确认,操作系统时间、防火墙状态及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
selinuxvi /etc/selinux/config
SELINUX=disabled

2.3. 创建用户

输出内容实施命令
数据库属主用户名/密码useradd -m -U dn
passwd dn

2.4. 修改主机名

vi /etc/hostname

HOSTNAME=xxx

2.5. 目录规划

输出内容执行命令
安装包存放目录,建议:/kingbase/kdb_installmkdir -p /home/kingbase/kdb_install
客户端软件目录,建议:/kingbase/app/kes/8.2mkdir -p /home/km/app/kes/8.2
集群安装目录mkdir -p /home/kingbase/cluster/kingbasecluster/db
数据目录mkdir -p /home/kingbase/cluster/kingbasecluster/db/data
授予权限chown -R kingbase:kingbase /home/kingbase

2.6. 修改操作系统参数

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
    
'''
    username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。
    type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。用 - 就表明同时设置了 soft 和 hard 的值。
    resource:
    core - 限制内核文件的大小
    date - 最大数据大小
    fsize - 最大文件大小
    memlock - 最大锁定内存地址空间
    nofile - 打开文件的最大数目
    rss - 最大持久设置大小
    stack - 最大栈大小
    cpu - 以分钟为单位的最多 CPU 时间
    noproc - 进程的最大数目
    as - 地址空间限制
    maxlogins - 此用户允许登录的最大数目
    // 后面的数字为限制数
'''
    
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

3. 执行安装

3.1. 网卡绑定

3.1.1. 网卡检查
nmcli device
ip a
-- 如网卡存在ip配置,可参照如下命令进行删除;
	nmcli connection delete enoxxx
	-- 如果一些ip配置无法删除可以先查看uuid使用uuid进行删除
		nmcli connection show
		nmcli connection delete 'uuid的值'
3.1.2. 网卡绑定
nmcli device
nmcli connection add con-name team0 type team ifname team0 config '{"team0":"activebackup"}'
nmcli device
nmcli connection modify team0 ipv4.addresses 192.168.174.111/24 ipv4.gateway 192.168.174.2 connection.autoconnect yes ipv4.method manual
nmcli connection add type team-slave con-name team0-slave1 ifname eno16777736 master team0
nmcli connection add type team-slave con-name team0-slave2 ifname eno33554984 master team0
nmcli connection up team0
nmcli device
service network restart
nmcli device
nmcli connection reload
nmcli connection show
ip a
teamdctl  team0 state


在绑定完第一个节点网卡后,再继续绑定其它节点的网卡

3.2. 数据库软件部署

3.2.1. 系统优化
  • 上传一键优化脚本,执行脚本
3.2.2. 安装部署软件准备
1.安装包
2.license文件
3.scripts文件
3.2.3. 解压或挂载安装包
tar -zxvf xxx.tar.gz
mount xxx.iso /mnt
3.2.4. 安装客户端软件
cd /mnt
./setup.sh		或者		./setup.sh -console

请添加图片描述

3.3. 磁盘配置及文件系统初始化

3.3.1. 脚本创建kingbase用户
3.3.2. 磁盘配置
# 查看磁盘规划
lsbk

# 初始化sdb
fdisk /dev/sdb
n
p
1
enter
enter
w

# 建立sdb磁盘关联的vg、lv等,关联/home/kingbase/cluster挂载点
lsblk
pvcreate /dev/sdb1
vgcreate vgsoft /dev/sdb1
lvcreate -n lvsoft -l 100%FREE vgsoft
mkfs.xfs /dev/vgsoft/lvsoft
mkdir -p /home/kingbase/cluster
blkid
vi /etc/fstab
	uuid=xxx /home/kingbase/cluster xfs defaults 0 0
mount -a
df -hT
chown -R kingbase:kingbase /home/kingbase/cluster
chmod -R 775 /home/kingbase/cluster

# 初始化sdc磁盘,并建立与/home/kingbase/kdata挂载点的关系
lsblk
gdisk /dev/sdc
n
enter
enter
enter
8e00
w
y
lsblk
pvcreate /dev/sdc1
vgcreate vgdata /dev/sdc1
lvcreate -n lvdata -l 100%FREE vgdata
mkfs.xfs /dev/vgdata/lvdata
mkdir -p /home/kingbase/kdata
blkid
vi /etc/fstab
uuid='xxx' /home/kingbase/kdata xfs defaults 0 0
mount -a
df -hT
chown -R kingbase:kingbase /home/kingbase/kdata
chmod 755 /home/kingbase/kdata
cd /home/kingbase
ll

在第一个节点配置完之后,配置其他节点

3.4. 部署集群

cd /home/dn/app/kes/8.2/DeployTools
./deploy
3.4.1. 新建节点

请添加图片描述
请添加图片描述

3.4.2. 新建主备同步

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

3.4.3. 确认单机服务
输出内容实施记录
确认单机的服务开机自启动是否关闭chkconfig --list |grep kingbase
chkconfig --del kingbase8d
chkconfig --list |grep kingbase
3.4.4. 数据库集群启停
输出内容实施记录
/home/kingbase/app/cluster/kingbasecluster/db/bin/kingbase_monitor.sh stop停止集群
/home/kingbase/app/cluster/kingbasecluster/db/bin/kingbase_monitor.sh start启动集群
3.4.5. 配置环境变量
LD_LIBRARY_PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/kingbase/.local/bin:/home/kingbase/bin:/home/kingbase/cluster/yjlrac/db/lib

PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin/:/usr/sbin:/home/kingbase/.local/bin:/home/kingbase/bin:/home/kingbase/cluster/yjlrac/db/bin

3.5. 测试数据库集群切换

输出内容实施记录
杀掉主节点数据库主进程,查看数据库是否会被拉起
重启主节点服务器,观察集群是否切换
再次重启新的主节点服务器,让集群恢复到最初模式
3.5.1.杀掉主节点数据库主进程,查看数据库是否会被拉起
# 查看集群状态
su - kingbase
pcp_watchdog_info -Ukingbase -W123456

ksql -h 192.168.174.115 -USYSTEM -W123456 -dtest -p9999
	show pool_nodes;

# 查看主节点进程
ps -ef |grep -i kingbase

# 杀掉主进程
kill -9 xxxxx
ps -ef |grep -i kingbase

# 查看集群信息,并稍等片刻
pcp_watchdog_info -Ukingbase -W123456
ksql -h 192.168.174.115 -USYSTEM -W123456 -dtest -p9999
show pool_nodes;
show pool_nodes;
show pool_nodes;

# 查看主节点进程信息
ps -ef |grep -i kingbase

# kill集群服务主进程xxxx
kill -9 xxxxx
ps -ef |grep -i kingbase

# 查看集群信息,并稍等片刻
pcp_watchdog_info -Ukingbase -W123456
pcp_watchdog_info -Ukingbase -W123456
pcp_watchdog_info -Ukingbase -W123456
ksql -h 192.168.174.115 -USYSTEM -W123456 -dtest -p9999

# 查看主节点进程信息
ps -ef |grep -i kingbase

这个测试做完之后,想要恢复到原来的主备库,出现错误,重启集群可以解决,但一般项目都不会停机的,有一个解决方法 在这个 /home/kingbase/cluster/test/kingbasecluster/bin 目录下,./pcp_stop_kingbasecluster -Ukingbase -W123456 等待一小会即可连接数据库

  • more /home/kingbase/cluster/yjlrac/db/etc/HAmodule.conf 查看vip
  • sys_ctl start -D /home/kingbase/cluster/test/db/data 手动启动集群单个库

请添加图片描述

3.5.2.重启主节点服务器,观察集群是否切换
# 查看集群状态
pcp_watchdog_info -Ukingbase -W123456
ksql -USYSTEM -W123456 -dtest -p9999 -h192.168.174.115
	show pool_nodes;
	
# 重启主节点
reboot		# 可能会存在不能关闭的情况,可以直接关机或者关闭本机集群
3.5.3.再次重启新的主节点服务器,让集群恢复到最初模式
pcp_watchdog_info -Ukingbase -W123456
ksql -USYSTEM -W123456 -dtest -p9999 -h192.168.174.115
	show pool_nodes;

reboot
3.5.4. 双主库错误
1.重做备机

2.文件修改
	(1)选取一个主机作为主库,删除主库的recovery.done,修改备库中recovery.done为recovery.conf
	sys_controldata  -D `pwd`	(根据时间点选择主备机)
	(2)重启备机数据库
	(3)查看recovey.log
	(4)手动启动主备各库的数据库库
		sys_ctl  start  -D  /home/kingbase/cluster/test/db/data
	(5)查看进程
		ps -ef |grep kingbase
		ps -ef |grep kingbasecluster
	(6)查看定时任务
		crontab -l
		-- 如果没有集群进程,可以手动写入
		cat /etc/cron.d/KINGBASECLUSTER
	(7)查看dbvip(数据库集群)和clustervip(管理集群)过来没
		ifconfig
		-- 如果没有,手动加上
        ifconfig  team0:2  192.168.174.114  up
        ifconfig  team0:3  192.168.174.115  up
	(8)查看recovery.log
		查看是否正常启动集群
	(9)检查集群
		pcp_watchdog_info -Ukingbase -W123456
		ksql -USYSTEM -W123456 -dtest -p9999 -h192.168.174.115
	(10)如果第9条还不行
		两边cluster停一下
		在这个 /home/kingbase/cluster/test/kingbasecluster/bin 目录下,./pcp_stop_kingbasecluster -Ukingbase -W123456

4. 数据库调优

  • 与集成商确认数据库端口、数据库最大连接数、应用是否从oracle迁移等,涉及到oracle兼容参数的调整。
  • 需修改两个路径下的kingbase.conf配置文件
    • /home/kingbase/app/cluster/kingbasecluster/db/data 和
    • /home/kingbase/app/cluster/kingbasecluster/db/etc
流程内容操作内容
现场环境确认与集成商确认:数据库端口、数据库最大连接数、应用是否从oracle迁移、确认服务器内存大小、确认服务器CPU数量
listen_addresses='*'
port  =    54321
max_connections=1000
app_reserved_connections='JSQL,6'
shared_buffers=RAM*0.4GB  -- 1GB
work_mem =10MB
maintenance_work_mem=1GB
effective_cache_size=RAM*0.5GB   - RAM指内存(free -g)1.25GB
wal_buffers=512
compatible_level='mixed'
log_statement='ddl'
log_duration=off
lc_messages='C'
log_line_prefix='[%m][%h][%d][%p][%u][%x]'
autovacuum_naptime=10min
max_fsm_pages=10000000
max_fsm_relations=3000
max_locks_per_transaction=1024
checkpoint_timeout=10min

5. 数据库备份

修改备份脚本里的参数
(1)修改rman_full.sh
kdb_home="/home/kingbase/app/cluster/kingbasecluster/db"   -- 安装目录
kdb_data="/home/kingbase/app/cluster/kingbasecluster/db/data" -- 数据目录路径
kdb_user="SYSTEM"				-- 备份用户
kdb_pass="123456"				-- 密码
kdb_port="54321"				-- 端口
kdb_host="127.0.0.1"			-- ip
kdbback_dest="/home/kingbase/backup/"	-- 备份路径
keep_num="2"				    -- 保留备份集

(2)修改rman_page.sh
kdb_home="/home/kingbase/app/cluster/kingbasecluster/db"    -- 安装目录
kdb_data="/home/kingbase/app/cluster/kingbasecluster/db/data "  -- 数据目录路径
kdb_user="SYSTEM"				       -- 备份用户
kdb_pass="123456"				       -- 密码
kdb_port="54321"				       -- 端口
kdb_host="127.0.0.1"			       -- ip
kdbback_dest="/home/kingbase/backup "  -- 备份路径

-- 测试脚本
sh -x  /kingbase/app/kes/8.2/Scripts/rman_full.sh
sh -x  /kingbase/app/kes/8.2/Scripts/rman_page.sh

-- 自动备份策略
-- 例如:每周日23点全量备份,周一至周六23点增量备份。
00 23 * * 7 sh -x rman_full.sh
00 23 * * 1-6 sh -x rman_pa

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值