首页 > 其他分享 >基于Rose HA的GBase 8a高可用方案

基于Rose HA的GBase 8a高可用方案

时间:2024-09-19 17:25:54浏览次数:14  
标签:00 linna Rose 8a GBase 服务器 HA gbase

方案背景

    随着计算机应用的不断深入,企业对计算机系统的依赖程度也日渐增加。在一些关键应用中,后台数据库是否可以提供及时、可靠的信息和服务是必不可少的,甚至会成为影响公司业务的关键因素。

    计算机硬件与操作系统都不可避免地会发生故障,这些故障有可能给企业带来极大的损失,甚至整个服务的终止。对于那些任何服务的终止,都可能给企业造成严重的财产损失、名誉损失的关键应用,系统的高可用性显得更为重要。因此,必须有适当的措施来确保计算机信息系统提供不间断的服务。
信息系统的可用性通常在两种情况下会受到影响,一种是操作系统宕机、硬件故障、错误操作和管理引起的异常失败;另一种是由于系统维护和升级,需要安装新的硬件或软件而正常关机。高可靠性方案必须为这两种情况提供不间断的系统服务。

拓扑结构

    基于Rose HA的GBase 8a双机高可用系统的两台服务器(主机)都与磁盘阵列(共享存储)系统直接连接,用户的操作系统、GBase 8a数据库系统和Rose HA分别安装在两台主机上的本地磁盘上,数据库业务数据存放在磁盘阵列上,两台主机之间通过私用心跳网络连接。配置好的系统主机开始工作后,Rose HA开始监控系统,通过私用网络传递的心跳信息,每台主机上的Rose HA软件都可监控另一台主机上的GBase 8a状态。当工作主机发生故障时,心跳信息就会产生变化,这种变化可以通过私用网络被Rose HA软件捕捉。当捕捉到这种变化后Rose HA就会控制系统进行主机切换,即备份机启动和工作主机一样的GBase 8a数据库服务,接管工作主机的GBase 8a数据库服务,并进行报警,提示管理人员对故障主机进行维修。当维修完毕后,可以根据Rose HA的设定自动或手动再切换回来,也可以不切换,此时维修好的主机就作为备份机,双机GBase 8a数据库系统继续工作。 

    基于Rose HA的GBase 8a高可用实现容错功能的关键在于,对客户端来说主机是透明的,当系统发生错误而进行切换时,即主机的切换在客户端看来没有变化,所有基于主机的应用都仍然正常运行。Rose HA采用了虚拟IP地址映射技术来实现此功能。客户端通过虚拟地址和工作主机通讯,无论系统是否发生切换,虚拟地址始终指向工作主机。在进行网络服务时, Rose HA提供一个逻辑的虚拟地址,任何一个客户端需要请求服务时只需要使用这个虚拟地址。正常运行时,虚拟地址及网络服务由主服务器提供。当主服务器出现故障时,Rose HA会将虚拟地址转移到另外一台服务器的网卡上,继续提供网络服务。切换完成后,在客户端看来系统并没有出现故障,网络服务仍然可以使用。除IP地址外,HA还可以提供虚拟的计算机别名供客户端访问。对于数据库服务,当有主服务器出现故障时,另外一台服务器就会自动接管,同时启动数据库和应用程序,使用户的数据库可以正常操作。

基于Rose HA的GBase 8a高可用方案_IP

系统要求

  • 两台服务器配置无需相同
  • 操作系统版本一致Linux 5.X
  • 双主机通道的磁盘阵列系统
  • 用于公用网络的网卡
  • 于私用网络的网卡或RS-232串口线

功能特点

  • 当一台GBase 8a服务器宕机时,其IP地址、服务器名称及运行的作业会自动转移至另一台GBase 8a服务器,客户端软件不需要重新设定,只要重新连结至原来的IP地址及服务器名称即可继续作业;
  • 采取高可靠的错误检测和故障恢复机制减少系统宕机,停机时间并防范错误,提供故障警告;
  • 设定故障排除后自动或手动恢复;
  • 安装时不需要修改操作系统的核心,也无需特殊的硬件;
  • 两台服务器的信息交换可通过:RS232、TCP/IP进行。

配置与管理步骤

安装Rose HA

启动Rose HA控制中心

创建集群

创建应用资源

管理资源组

切换资源组

虚拟IP管理:部署后,不但可以连接实际的服务器IP,也可以连接虚拟的IP。当采用虚拟IP进行应用程序连接时,虚拟IP自动会将连接请求转到实际的IP,保证了高可用的自动IP处理。

高可用测试

关机测试:svr661为工作服务器,在工作服务器上插入数据后,重启该服务器,模拟该服务器被意外重启或断电情况。

[linna@svr661 ~]$ ps -ef | grep gbased
linna    14556     1  0 10:13 ?        00:00:00 /home/linna/GBase/server/bin/gbased --log-queries-not-using-indexes --pid-file=/home/linna/GBase/log/gbase8a/gbased.pid
linna    14918  1841  0 10:14 pts/2    00:00:00 grep gbased
[linna@svr661 ~]$ gbase -uroot -plinna
Welcome to the GBase monitor.  Commands end with ; or \g.
Your gbase connection id is 3
Server version: 8.3.1.7

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

gbase> use cmcc;
Query OK, 0 rows affected (0.00 sec)

gbase> show tables;
+----------------+
| Tables_in_cmcc |
+----------------+
| t_user         |
+----------------+
1 row in set (0.00 sec)

gbase> select * from t_user;
+----------+------------+-------------+
| f_userid | f_username | f_phone     |
+----------+------------+-------------+
|        1 | Rose       | 13821600123 |
|        2 | Jack       | 13821600001 |
|        3 | Mary       | 15920256789 |
+----------+------------+-------------+
3 rows in set (0.03 sec)

gbase> insert into t_user values(4,'Kate','18828088888');
Query OK, 1 row affected (0.13 sec)

gbase> quit
Bye
[linna@svr661 ~]$ exit
logout

[root@svr661 bin]# reboot

Broadcast message from root (pts/2) (Tue May  8 10:15:37 2012):

The system is going down for reboot NOW!
[root@svr661 bin]#

在另外一台服务器上查询数据。

[linna@svr662 ~]$ ps -ef | grep gbased
linna    12360     1  0 10:16 ?        00:00:00 /home/linna/GBase/server/bin/gbased --log-queries-not-using-indexes --pid-file=/home/linna/GBase/log/gbase8a/gbased.pid
linna    12625 12517  0 10:16 pts/1    00:00:00 grep gbased
[linna@svr662 ~]$ gbase -uroot -plinna
Welcome to the GBase monitor.  Commands end with ; or \g.
Your gbase connection id is 4
Server version: 8.3.1.7

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

gbase> use cmcc;
Query OK, 0 rows affected (0.00 sec)

gbase> select * from t_user;
+----------+------------+-------------+
| f_userid | f_username | f_phone     |
+----------+------------+-------------+
|        1 | Rose       | 13821600123 |
|        2 | Jack       | 13821600001 |
|        3 | Mary       | 15920256789 |
|        4 | Kate       | 18828088888 |
+----------+------------+-------------+
4 rows in set (0.05 sec)

gbase>

经过测试,两台服务器在其中一台意外关机时,数据库服务仍然可以正常工作,在被意外关机服务器上对数据库的修改操作,不会因为服务器的意外关闭而丢失。、

杀进程测试

当工作服务器的数据库进程被意外杀死后,会尝试重启指定次数。当可以重启成功时,不切换工作服务器。当数据库服务不能重启成功时,自动切换到备用服务器,保证数据库服务不被中断。

[linna@svr661 ~]$ gbase -uroot -plinna
Welcome to the GBase monitor.  Commands end with ; or \g.
Your gbase connection id is 3
Server version: 8.3.1.7

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

gbase> use cmcc;
Query OK, 0 rows affected (0.00 sec)

gbase> select * from t_user;
+----------+------------+-------------+
| f_userid | f_username | f_phone     |
+----------+------------+-------------+
|        1 | Rose       | 13821600123 |
|        2 | Jack       | 13821600001 |
|        3 | Mary       | 15920256789 |
|        4 | Kate       | 18828088888 |
+----------+------------+-------------+
4 rows in set (0.09 sec)

gbase> update t_user set f_phnotallow='18920054321' where f_userid=1;
Query OK, 1 row affected (0.11 sec)
Rows matched: 1  Changed: 1  Warnings: 0

gbase> quit
Bye
[linna@svr661 ~]$ ps -ef | grep gbased
linna     3561     1  0 10:18 ?        00:00:00 /home/linna/GBase/server/bin/gbased --log-queries-not-using-indexes --pid-file=/home/linna/GBase/log/gbase8a/gbased.pid
linna    17219 16708  0 10:58 pts/1    00:00:00 grep gbased
[linna@svr661 ~]$ kill -9 3561
[linna@svr661 ~]$ ps -ef | grep gbased
linna    17413     1  0 10:59 ?        00:00:00 /home/linna/GBase/server/bin/gbased --log-queries-not-using-indexes --pid-file=/home/linna/GBase/log/gbase8a/gbased.pid
linna    17604 16708  0 10:59 pts/1    00:00:00 grep gbased
[linna@svr661 ~]$ gbase -uroot -plinna
Welcome to the GBase monitor.  Commands end with ; or \g.
Your gbase connection id is 3
Server version: 8.3.1.7

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

gbase> use cmcc;
Query OK, 0 rows affected (0.00 sec)

gbase> select * from t_user;
+----------+------------+-------------+
| f_userid | f_username | f_phone     |
+----------+------------+-------------+
|        1 | Rose       | 18920054321 |
|        2 | Jack       | 13821600001 |
|        3 | Mary       | 15920256789 |
|        4 | Kate       | 18828088888 |
+----------+------------+-------------+
4 rows in set (0.03 sec)

gbase>

标签:00,linna,Rose,8a,GBase,服务器,HA,gbase
From: https://blog.51cto.com/u_17026136/12058021

相关文章

  • 大人时代变了,ChatGPT使用指南(喂嘴里)
    目录一、面向软件开发人员的ChatGPT提示词二、AI能力对比和推荐三、AI能做什么国外ChatGPT的大模型工具使用对于国内大部分人来说仍然有比较大的门槛,比如网络访问限制问题,账户注册限制,账户封号等问题。那么在国内,有没有一些可替代工具呢?这篇文章就给大家分享一些高效的......
  • 【论文阅读笔记】【Hand Pose Estimation-Interacting Hand】 Interacting Two-Hand 3
    ICCV2021读论文思考的问题论文试图解决什么问题?写作背景是什么?问题:如何针对性解决双手手势识别里出现的重度遮挡以及深度交互的问题?背景:由于严重的遮挡和交互特点,先前针对单手手势识别设计的模型不能很好地应用到双手的情景中文章提出了什么样的解决方法?提出......
  • Wireshark安装
    Wireshark安装1.官网地址下载选择合适的版本安装,我是Windows11专业版就下载的第一个2.以管理员身份运行安装包第二个选项为创建桌面图标,可按照自己的情况选择一路默认即可,建议修改安装路径3.NPcap和USBPcap,如果电脑上已安装的可忽略,没有的可以安装一下4.安装完成运行......
  • 国内可以使用的ChatGPT镜像网站【9月持续更新】
    首先基础知识还是要介绍得~一、模型知识:GPT-4o:最新的版本模型,支持视觉等多模态,OpenAI文档中已经更新了GPT-4o的介绍:128k上下文,训练截止2023年10月(作为对比,GPT-4-Turbo截止2023年12月)。GPT-4Turbo:支持视觉等多模态,128k上下文,训练截止2023年12月。GPT-3.5......
  • LLMChat入门指南 - 基于Flutter和FastAPI的大语言模型聊天应用
    LLMChat-您的AI聊天助手......
  • 关于HarmonyOS的学习
    day34一、设计模式   +设计模式是一些对解决问题的总结和经验,设计模式是解决某个问题的最佳的方案,无数人优秀人的程序员的实验和错误总结   +共23种1.工厂模式     =>对于批量创建对象的一种解决方案     =>函数可以传递参数......
  • Hackademic.RTB1 打靶记录
    第一次打靶机,思路看的红队笔记https://www.vulnhub.com/entry/hackademic-rtb1,17/环境:kaliLinux-192.168.75.131,靶机-192.168.75.132主机发现和端口扫描扫描整个网络有哪台机子在线,不进行端口扫描nmap-sP192.168.75.0/24StartingNmap7.93(https://nmap.or......
  • VUE 使用用Echart 报错:this.dom.getContext is not a function
    问题:在VUE中 如果使用了 tabs 关在tab 中加入了<div>标签;在初始化中 执行echart.init() 可能会报错:this.dom.getContextisnotafunction;大致如下所示:<el-tabs> <el-tab-pane><div>    <divstyle="height:500px;widows:1000px;"ref="homeLineRe......
  • happiness(栈)
    happiness(栈)//happiness#include<stdio.h>#include<stdlib.h>#defineMAX_N100000//函数声明intmax_happiness(intn,intw[]);intmain(){ intn; //输入物品数量 scanf("%d",&n); //输入每个物品的满意度 intw[MAX_N]; for(inti=......
  • Hadoop Windows下安装
    1.下载winutils:https://github.com/s911415/apache-hadoop-3.1.0-winutils,替换bin文件hadoop:3.2.0tar解压2.环境变量hadoopversion验证问题:Error:java_homeisincorrectlyset解决:由于jdk在C盘引起:hadoop-env.cmd加入setJAVA_HOME=C:\PROGRA~1\Java\jdk1.8.0_112......