栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 前沿技术 > 大数据 > 大数据系统

炫“库”行动--人大金仓有奖征文--高可用性之集群管理

大数据系统 更新时间:发布时间: 百科书网 趣学号
1.1 集群的概念

集群是由数据节点,管理节点,HA组件构成的一套7*24小时不间断访问数据的管理系统。
金仓数据库管理系统中一套集群只有一个数据节点为primary,其余为standby。
管理节点:金仓数据库为集群提供了管理。V8R3是watchdog,V8R6是repmgr。
读写分离:金仓数据库提供了读写分离槽做,实现了负载均衡,写操作在primary节点上,读的操作在standby节点,由驱动JDBC实现。

1.2 集群同步原理

流复制是实现集群同步的关键。

  1. 实现
    当用户连接进行数据操作,产生对应的WAL日志记录后,walwriter会周期性地把产生的WALpage刷新到磁盘中,如果配置了备库,则walsender会不断将WAL page发给备库的walreceiver进程,walreceiver进程会把对应WAL page直接写到本地磁盘,同时slave上的startup辅助进程会不断地应用xlog日志,改变本地数据,实现与主库之间的数据同步。而且,通过配置,备库是可以接受用户的只读请求。


2. 基于流复制协议的wal日志从主节点到备节点实时复制与复用。为了实现数据库的高可用性,需要搭建主库和备库。
3. 这两套数据库之间的数据,通过wal日志,后台自动同步。

1.3 集群的脚本部署 1.3.1 部署信息说明

主节点:192.168.0.240
备节点:192.168.0.241
网关:192.168.0.2
浮动IP:192.168.0.245
部署位置:/opt/Kingbase/ES/V8
集群部署工具文件目录:/home/kingbase/cluster_install
db文件位置:/home/kingbase/cluster_db
集群data目录:/home/kingbase/install/kingbase/data

1.3.2 部署集群前的准备
  1. 按照文档步骤部署V8R6 071集群版数据库
  2. 检查防火墙是否关闭
    主机:systemctl status firewalld
    Systemctl stop firewalld
    备机:systemctl statusfirewalld
    Systemctl stop firewalld
1.3.3 部署配置
  1. 安装一个V8R6单机版
  2. 创建集群部署文件目录/home/kingbase/cluster_install和集群db目录
  3. 创建集群db目录:/home/kingabase/cluster_db
  4. 从单机版的 /安装目录/ES/V8/Server/bin下将install.conf,trust_cluster.sh和V8R6_cluster_install.sh文件复制到集群部署文件目录,并授予775权限:chmod 775 /home/kingbase/cluster_install/* 将授权文件也放在此目录下
  5. 从集群版安装目录/opt/Kingbase/ES/V8/DeployTools/zip/Lin64下,将db.zip复制到/home/kingbase/cluster_db/目录下
  6. 修改install.conf文件
    on_bmj=0
    all_ip=(192.168.0.240 192.168.0.241)
    install_dir="/home/kingbase/cluster"
    zip_package="/home/kingbase/cluster_db/db.zip"
    license_file=(license.dat)
    db_user=“system”
    db_password=“123456”
    db_port=“54321”
    db_mode=“oracle”
    db_auth=“scram-sha-256”
    data_directory="/home/kingbase/cluster/kingbase/data"
    virtual_ip=“192.168.0.245/24”
    net_device=(eno16777728 eno16777728)
    ipaddr_path="/usr/sbin"
    arping_path="/usr/sbin"
    ping_path="/bin"
    super_user=“root”
    execute_user=“kingbase”
    reconnect_attempts=“6”
    reconnect_interval=“10”
    recovery=“standby”
    ssh_port=“22”
  7. 用root用户执行免密脚本
    cd /home/kingbase/cluster_install
    sh trust_cluster_cluster.sh
  8. 执行V8R6_cluster_install.sh
    ./V8R6_cluster_install.sh

2.1 集群高可用性测试 2.1.1 结束主库进程

在主库进程结束时,集群会自动识别,并进行切机操作,保证系统正常运行。
备库会升级成主库。

  1. 查看集群状态

  2. 查看主库进程
    ps -ef | grep kingbase

  3. Kill 进程10792
    Kill -9 10792

  4. 查看集群状态
    主节点查看:

    备节点查看:

    可以看到集群备节点已经升级为主节点,主节点挂掉。

  5. 重启主机服务

  6. 再次查看集群状态

    集群恢复正常

2.1.2 主机断电
  1. 查看状态
  2. 主机关机
  3. 查看状态

    刚开始集群会尝试连接主机,此时主备未曾改变,当过了时间未能连接到主库,备机升为主节点。
  4. 主机恢复供电

    集群恢复正常。
2.1.3 主机断网
  1. 断网
  2. 备机查询状态

    可以看到主机一经宕机,备机升为主机
  3. 恢复主机网络
  4. 查看集群状态

    集群恢复正常
2.1.4 主机reboot
  1. reboot
  2. 查看集群状态

    可以看到主机已经宕机
  3. 当主机重启成功后,查看集群状态

    集群恢复正常
2.1.5 修改主机配置文件名称
  1. 修改主机kingbase.conf文件名称
  2. 查看集群状态

    集群正常
2.2 故障修复

当集群备机出现出现standby as primary 时:

操作步骤:

  1. 停止备机服务
  2. 克隆主机
  3. 启动备机
  4. 注册备机
  5. 查看状态

    集群恢复成功
3.1 高可用性总结

集群的高可用性在生产环境中十分重要,为数据库的容灾提供了平台。在日常使用的故障,集群都可以快速的恢复正常,足以应对日常生活中的各种问题。
高可用解决方案有如下几个特性:可靠性,可恢复性,自动故障检测,和连续服务。
• 可靠性:高可用解决方案应该包括可靠的硬件,以及可靠的软件(包括数据库,应用服务器,和客户 端等)。
• 可恢复性:确定在系统中可能发生什么种类的故障,以及如何尽快从这些故障中恢复对于满足业务对 于可用性的需求非常重要。
• 实时故障检测和处理:如果系统中有某个关键组件无法正常工作,系统应能够及时发现并采取相应的 补救措施。
• 连续运转:当进行系统维护且不允许暂停应用时,系统应能够提供持续的服务能力。
高可用系统应具备以下特征:
• 能够在故障发生的情况下,不间断或者极少中断对外提供的服务。
• 能够对用户透明的支持对系统,数据,或者应用的变更。
• 提供监控能力可以快速发现故障
• 提供快速的恢复能力
• 支持自动的检测和恢复操作
• 实施最佳实践来管理环境
• 最大限度减少数据丢失或避免数据丢失

【本文正在参与炫“库”行动-人大金仓有奖征文】
活动链接

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/279795.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号