KingbaseES的HA搭建

简介:

1.配置资源前准备:

安装好数据库并保持两台机器用户ID及组ID一致,组ID和用户ID在/etc/passwd查看,如不保持一致,可能导致切机时阵列的属主改变,导致数据库无法启动。

建议用法,现在两台机器上建好kingbase组,然后通过 groupmod  kingbase –g xxx(ID值)

然后建立用户是将kingbase用户直接绑定到kingbase组上 useradd –m –d/home/kingbase kingbase –g kingbase

  1. 操作系统相关配置

  更改KingbaseHA集群子节点的主机名

#vim /etc/sysconfig/network

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=kdb1

备机改为kdb2

  更改KingbaseHA集群子节点的主机名

配置主备机kdb1/kdb2机器的IP地址,

eth0为外网ip192.168.10.1/192.168.10.2

eth1HA内网通讯ip10.10.10.1/10.10.10.2

 TCP/IP 连接和名称解析的确认

构成集群的全部节点之间,需要互相进行名称解析,这个问题一出现,GUI 的功能不能够正常执行会引起各种各样的故障。强烈推荐使用/etc/hosts。使用 DNS 服务器的情况下也请在/etc/hosts中记录正确的信息。

kdb1主机:

#vim /etc/hosts

127.0.0.1       localhost        //这行必须存在

10.10.10.1    kdb1

10.10.10.2    kdb2

 

kdb2主机:

#vim /etc/hosts

127.0.0.1       localhost        //这行必须存在

10.10.10.1 kdb1

10.10.10.2 kdb2

 

  确认防火墙设置

关闭防火墙

 SELinux 配置

SELinux 设置的是disabled 方式,SELinux选项一般默认为enforcing方式。

  1. 确认准备的配置

完成上述操作,重启服务器,并检查上述配置已经正确修改.

  检查 hosts 文件.

  检查网络通信. Ping IP.

  检查防火墙是否关闭.

  检查 selinux  文件.

  1. 安装KingbaseHA

4.1 安装前检查

KingbaseHA-3.0版本进行KingbaseHA共享存储模式安装。在安装KingbaseHA之前首先保证KingbaseHA的网络心跳可以正常链接进行心跳侦测。另外,为防止KingbaseHA集群节点之间出现“脑裂”现象,一般采用增加心跳的策略或通过系统外部硬件设备来保障KingbaseHA集群节点之间的正常运行状态。

KingbaseHA-A2.2版本金仓高可用软件提供静默的安装方式,安装过程简单。此工具需要在安装金仓高可用软件的每个节点上均执行。

 

【注意】:在安装配置 KingbaseHA 之前,应确保在每个单独的服务器节点上相关服务均可正常使用。

以数据库系统为例,需保证每个节点上的数据库系统都可以正常的启动、停止并正常的对外提供服务。

请按照以下步骤进行 KingbaseHA的安装:

[root@kdb1 ~]# cat /etc/redhat-release

Red Hat Enterprise Linux Server release 5.3 (Tikanga)

查看Linuxredhat的哪个系列,合理选择KingbaseHA的版本

4.2 KingbaseHA安装

 Linux系统中以 root 用户登陆,将KingbaseHA安装光盘放入光驱中;或将安装包复制到指定目录下,如/opt/KingbaseHA:

[root@kdb1 ~]#cp /medir/cdrom/ KingbaseHA-RHEL6-20140325.run/opt/KingbaseHA

创建KingbaseHA用户属主和属组(可选:如不创建,安装程序会自动创建):

[root@kdb1 ~]#groupadd haclient

useradd -g haclient hacluster

passwd hacluster 

 

1、以root用户登陆开启一个终端窗口,执行如下命令,给安装包加权限,并执行安装:

[root@kdb1 KingbaseHA]#chmod +x KingbaseHA-RHEL6-20140325.run

[root@kdb1 KingbaseHA]#./ KingbaseHA-RHEL6-20140325.run

这样KingbaseHA就安装KingbaseHA-RHEL6-20140325.run完成了。

2、配置HA

进入HA配置文件路径,创建ha.cf,配置HA日志路径和心跳等信息,如:

[root@kdb1 KingbaseHA]# cd /etc/opt/KingbaseHA/ha.d/

[root@kdb1 ha.d]#vim ha.cf

输入:

logfile /var/log/ha-log

use_logd 0

apiauth mgmtd   uid=root

respawn root   /opt/KingbaseHA/lib/heartbeat/mgmtd -v

node kdb1

node kdb2 --修改主机名/etc/sysconfig/network

ucast eth1 10.10.10.1 --心跳ip,如果有多个网卡可配置多个(防脑裂措施),两台服务器心跳ip网卡名一致,本例均为eth1

ucast eth1 10.10.10.2 --心跳ip,两台服务器心跳ip网卡名一致,本例均为eth1

crm respawn

在该路径下创建HA授权文件authkeys,如:

[root@kdb1 ha.d]# vim authkeys

 

auth 1

1 md5 kingha

[root@ha1 ha.d]# chmod 600 authkeys---必须是600

4.3 KingbaseHA环境变量配置

配置环境变量:在/etc/profile文件最后加上如下环境变量:

source /etc/opt/KingbaseHA/profile.d/kingbaseha.sh

保存。并执行source /etc/profile或重启。

4.4 KingbaseHA启动

启动KingbaseHA

[root@kdb1 ~]#/etc/init.d/KingbaseHA start

注:再启动过程中如果出现故障请查看日志/var/log/ha.log,进行原因分析;

检查KingbaseHA服务是否随操作系统启动:

[root@kdb1 ~]# chkconfig --list KingbaseHA

KingbaseHA         0:off   1:off  2:on    3:on    4:on   5:on    6:off

如果不是则需要执行:

[root@kdb1 ~]#chkconfig --level 235 KingbaseHA on

 

注:节点kdb2KingbaseHA安装和配置同上

 

  1. 配置KingbaseHA资源

5.1 磁盘分区

注:磁盘分区根据现场的环境进行配置

例如:分区fdisk /dev/sdb

分两个区:/dev/sdb1/dev/sdb2

第一个分区用来初始化锁实现防脑裂的作用(大小小于等于10MB即可);

第二个分区用来存储数据

分区时输入信息:(双引号内的内容)

n”创建分区

p”显示分区信息:

1”分区编号

n”创建分区

p”显示分区信息:

2”分区编号

 

w”保存分区信息:

格式化分区:mkfs.ext3 /dev/sdb1mkfs t ext3  /dev/sdb1

格式化分区:mkfs.ext3 /dev/sdb2mkfs t ext3  /dev/sdb2

  1. 分区。用fdisk /dev/sdb

 

p”显示分区信息:

w”保存分区信息:

  1. 格式化分区:mkfs.ext3     /dev/sdb1mkfs t ext3  /dev/sdb1

 

/dev/sdb1初始化sfex锁:

磁盘阵列挂载

设定挂载目录:mkdir /dbdata,然后可以在文件系统中查看到该目录:

 

Mount命令挂载:mount/dev/sdb2 /dbdata,可以看到DATA中出现的目录:

 

查看挂载分区:

[root@kdb1 ~]# df –lh

Filesystem           Size  Used Avail Use% Mounted on

/dev/sda2             35G  3.9G   30G 12% /

/dev/sda1            145M   12M  126M  9% /boot

tmpfs                3.5G     0  3.5G  0% /dev/shm

/dev/sdb2            33G  177M  1G   1% /dbdata

 

5.2 SFEX创建锁

  1. 创建特定分区

首先,需要在共享存储上划出一个单独的小分区出来,不用多大,一个节点仅需要1Kb。因此10M足够了。盘阵中以创建好:/dev/sdb1

  1. 初始化

SFEX提供了sfex_init指令来初始化特定分区,使用方式如下

 sfex_init -n 10 /dev/sdb1

 -n表示能创建多少个锁。假定你有2个数据分区,那就需要2个锁。注意,一旦初始化后,不能再增加锁的数量。因此要考虑数据分区的扩展性,所以建议多初始化几个锁。

  1. 测试分区

SFEX提供了sfex_state指令来测试分区信息是否有效,指令使用及输出结果如下:

    [root@kdb1 ~]## sfex_stat-i 1 /dev/sdb1

    control data:

    magic: 0x53, 0x46, 0x45,0x58

    version: 1

    revision: 3

    blocksize: 512

    numlocks: 3

    lock data #1:

    status:unlock

    count: 393

    nodename: tsd1

    status is UNLOCKED

5.3 配置资源

由于我们已经在/etc/hosts和ha.cf文件中做了相应的配置,我们在节点kdb1上面所作的配置会保存在KingbaseHA的cib.xml文件中,并且自动同步到kdb2上。

注:Kingbase数据库在本文中安装的路径:/home/kingbase/KingbaseES

5.3.1 命令行配置:

KingbaseHA提供管理工具crm进行HA的配置和日常的管理,以下是命令行的配置:

[root@kdb1 ~]# crm

crm(live)# configure

crm(live)configure#edit

node $id="6fc261db-e88c-42c3-874a-aabed73d4090" kdb2

node $id="e33d73be-63b3-4873-9ee5-e433f054fcca" kdb1

property $id="cib-bootstrap-options" \

       dc-version="1.0.9-74392a28b7f31d7ddc86689598bd23114f58978b" \

       cluster-infrastructure="Heartbeat" \

       last-lrm-refresh="1367837350" \

stonith-enabled=true

primitive FIP ocf:heartbeat:IPaddr2 \

        metatarget-role="Started" \

        operations$id="FIP-operations" \

        op monitorinterval="30s" timeout="60s" \

       params ip="192.168.10.8"cidr_netmask="255.255.255.0"

primitive Filesystem ocf:heartbeat:Filesystem \

        metatarget-role="Started" \

        operations$id="Filesystem-operations" \

        op monitorinterval="30" timeout="60" \

       params device="/dev/sdb2"directory="/kingbase" fstype="ext3"

primitive PXD ocf:heartbeat:sfex \

        metatarget-role="Started" \

        operations$id="PXD-operations" \

        op monitorinterval="20s" timeout="40s" \

       params device="/dev/sdb1"lock_timeout="5" monitor_interval="1"

primitive pingip ocf:heartbeat:pingd \

        metatarget-role="Started" \

        operations$id="pingip-operations" \

        op monitorinterval="60" timeout="120s" \

       multiplier="1000"host_list="192.168.10.8"

primitive kingbase ocf:heartbeat:kingbase \

        metatarget-role="Started" \

        operations$id="kingbase-operations" \

        op monitorinterval="30" timeout="30" \

       params kbhome="/home/kingbase/KingbaseES/"monitor_password="123456" kbdata="/kingbase/data"        

group kingbaseha PXD Filesystem kingbase FIP \

        metatarget-role="Started"

clone cl_pingip pingip

location l kingbaseha inf: kdb1

location l2 kingbaseha inf: kdb2

location lo_group_pingip kingbaseha \

        rule$id="lo_group-pingip-rule" -inf: not_defined pingd or pingd lt 1000

property $id="cib-bootstrap-options" \

       dc-version="1.0.9-74392a28b7f31d7ddc86689598bd23114f58978b" \

       cluster-infrastructure="Heartbeat" \

       last-lrm-refresh="1367837350" \

stonith-enabled="false" \

        no-quorum-policy="ignore" \

       default-resource-stickiness="100"

保存并退出,执行commit,即可完成配置。

 





 本文转自 dbapower 51CTO博客,原文链接:http://blog.51cto.com/suifu/1692282,如需转载请自行联系原作者


相关文章
|
11月前
|
分布式计算 运维 Hadoop
42 Hadoop的HA集群的安装部署
42 Hadoop的HA集群的安装部署
101 0
|
机器学习/深度学习 存储 分布式计算
Hadoop学习---11、HA高可用
Hadoop学习---11、HA高可用
|
存储 分布式计算 运维
hadoop HA高可用集群实战
大数据实战:hadoop HA高可用集群
hadoop HA高可用集群实战
|
分布式计算 Spark
Spark高可用集群搭建HA
Spark高可用集群搭建HA
110 0
|
canal 消息中间件 otter
Canal v1.1.4版本搭建HA集群
Canal上一个正式版是于2019-9-2发布的v1.1.4,笔者几个月前把这个版本的Canal推上了生产环境,部署了HA集群。过程中虽然遇到不少的坑,但是在不出问题的前提下,Canal的作用还是非常明显的。上周的一次改造上线之后,去掉了原来对业务系统订单数据通过RabbitMQ实时推送的依赖,下游的统计服务完全通过上游业务主库的binlog事件进行聚合,从而实现了核心业务和实时统计两个不同的模块解耦。这篇文章简单分析一下如何搭建生产环境下可靠的Canal高可用集群。
569 0
Canal v1.1.4版本搭建HA集群
|
资源调度 分布式计算 Hadoop
YARN的高可用性HA配置实战
YARN的高可用性HA配置实战
359 0
什么是高可用性(HA)?HA是什么
本文讲的是什么是高可用性(HA)?HA是什么,高可用性HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。
5122 0
|
Kubernetes Linux Docker
k8s_v1.15.0_HA集群基础环境搭建
Kubernetes高可用集群基础环境搭建. 在学习Kubernetes的过程中, 操作实践是非常有必要的, 但是往往第一步环境的搭建会成为门槛. 而且使用minikube不利于集群层面的学习, 不如一步到位.
1674 0
|
关系型数据库 MySQL 开发工具