返回首页

gbase数据、南大通用产品文档:GBase8a服务监控工具

更新日期:2024年09月11日

介绍
GBase 8a MPP Cluster 的运行过程需要在系统中启动如gbased,gclusterd、gcware
等服务。这些服务程序在某些特殊情况下(如系统异常,资源占用过量,程序运行
异常等),其进程会结束或被系统强行关闭。集群提供了两个监控工具监控和管理
这些服务进程:gcmonit.sh 和gcware_monit.sh

gcmonit 的主要功能:
1)
实时监控gcluster 和gnode 服务程序,
主要包括gbased,
gclusterd,
gcrecover
和gc_sync_server)的运行状况,一旦发现某个服务程序的进程状态发生变化,

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
136
就会根据配置文件中的内容来执行相应的命令。
2)提供可被用户修改的配置文件,可配置内容包括:需要监控的服务程序名
称或者需要监控进程的启动命令行,服务进程状态变化时所要执行的方法,检
测服务程序的时间间隔,日志文件路径和名称等。
3)记录各服务的启停信息。
4)实现gcluster 和gnode 服务的高可用性。

gcmmonit 与gcmonit 实现的功能完全一致,
只是它们的监测范围不同,
gcmonit
负责监测gcluster 和gnode 服务程序和gcmmonit 程序的运行状况;
而gcmmonit
只负责监测gcmonit 程序的运行状况。

gcware_monit 的功能:主要负责gcware 服务的实时监控,一旦发现gcware 进
程状态发生变化,就会根据配置文件中的内容来执行相应的命令。

gcware_mmonit 主要负责监控gcware_monit,实现gcware 服务的高可用。
注意
gcmonit 和gcmmoint 的配置文件在如下目录:
$GCLUSTER_BASE/config/gcmonit.conf(gcmmonit.conf)
gcware_monit 和gcware_mmonit 的配置文件在如下目录:
$GCWARE_BASE/config/gcware_monit.conf (gcware_mmonit.conf)
如果修改了配置文件,需要重新启动对应的服务方可生效。
日志
监控进程的日志
gcmonit 和gcmmonit 日志文件默认在$GCLUSTER_BASE/log/gcluster 下,
可以通过
配置文件更改。
gcware_monit 和gcware_mmonit 的日志文件默认在$GCWARE_BASE/log 下,可以
通过配置文件更改。
命令
监控进程相关命令
gcmonit.sh
gcware_monit.sh
参数说明:
prog_name:表示可以监控的程序名。

启动监控
$ gcmonit.sh start

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
137
Starting GCMonit success!
$ gcware_monit.sh start
Starting GCWareMonit success!

关闭监控
$ gcmonit.sh stop
Stopping GCMonit success!
$ gcware_monit.sh stop
Stopping GCWareMonit success!

重启监控
$ gcmonit.sh restart
Stopping GCMonit success!
Starting GCMonit success!
$ gcware_monit.sh restart
Stopping GCWareMonit success!
Starting GCWareMonit success!

查询GCMonit 状态
$ gcmonit.sh
status
+-------------------------------------------------------------------------+
|SEG_NAME
PROG_NAME
STATUS
PID
+-------------------------------------------------------------------------+
|gcluster
gclusterd
Running
9371
|gcrecover
gcrecover
Running
3917
|gcmmonit
gcmmonit
Running
4491
|gbase
gbased
Running
3940
|syncserver
gc_sync_server
Running
4484
+-------------------------------------------------------------------------+
$ gcware_monit.sh status
+-------------------------------------------------------------------------+
|SEG_NAME
PROG_NAME
STATUS
PID
+-------------------------------------------------------------------------+
|gcware
gcware
Running
31942
|gcware_mmonit
gcware_mmonit
Running
31800
+-------------------------------------------------------------------------+

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
138

GBase JDBC 由具有建立和管理与GBase 数据库连接功能、执行SQL 语句功能和
对结果集进行储存和管理功能的若干功能类组成。

GBase UP 产品手册 6 应用开发指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 1002
下面是GBase JDBC 涉及的主要类:

Driver 类 (com.gbase.jdbc.Driver)
当注册驱动的时候或配置软件以使用GBase JDBC 的时候,
应该使用这个类名。
在使用GBase JDBC 8.3.81.x 版本的驱动(jre1.6 及以上版本)时可以省去注册
驱动,由java 虚拟机自动完整驱动注册。
示例:
Class.forName("com.gbase.jdbc.Driver");

DriverManager 类(java.sql.DriverManager)
跟踪可用的驱动程序,在数据库与相应的驱动程序之间建立连接。
在应用服务器外使用JDBC 时,DriverManager 类管理连接的确立。
需要告诉DriverManager 应该与哪个JDBC 驱动进行连接,最简单的方法就是
使用实现了接口java.sql.Driver 的类的Class.forName()方法。
在GBase JDBC 中,
这个类的名字叫做com.gbase.jdbc.Driver。
用这种方法,
就可以在连接一个数据
库时使用一个外部配置文件来给驱动提供类名和驱动参数。

Connection 接口(com.gbase.jdbc. Connection)
与特定数据库的连接(会话)。在连接上下文中执行SQL 语句并返回结果。
示例:
Connection con=DriverManager.getConnection("jdbc:gbase://host:port/dbname ", "user",
"password");

Statement 接口(com.gbase.jdbc.Statement)
用于执行SQL 语句并返回结果。

ResultSet 接口(java.sql.ResultSet)
通常由执行SQL 语句来产生。
示例:
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(select c_custkey from customer);

同步工具增量同步过程的补数功能
该操作目前版本仅支持Oracle->8a 的增量同步。
Oracle 到8a 的增量同步
过程中,
需要通过logminer 解析Oracle 增量数据,
如果logminer 挖掘到的数
据有问题,这些数据发到Kafka 后,8a consumer 可能会消费失败,这会导致
整个同步过程阻塞,为了解决此问题,增加了补数功能。

GBase RTSync 同步工具手册
- 38 -
南大通用数据技术股份有限公司
补数功能的工作原理如下:
当8a consumer 消费失败后,会在相应系统表中记录错误信息。同步工具
开启补数功能后会定期检查该表是否有相应消费者消费失败的信息。如果有错
误信息,
同步工具会停止8a consumer,
并根据该表中记录的消费失败的offset
信息,
从Kafka 中消费对应offset 的数据。
然后解析消费到的数据,
根据主键
值获取源数据库中的正确数据,更新到目标数据库中。最后启动8a consumer,
进行后续数据的同步。
使用方式:
1.
在config_task.xml 配置文件的manager 节点中增加了参数
useErrorDataRecovery="true",该参数默认值为false,即不开启。
2.
新增配置文件confg_errorhandle.properties,说明如下:
[common]
#定期轮询时间,默认30s,可以不修改。
job.cycle=30000
#消费topic数据的consumer name,
可通过8a consumer获取,
多源的情况下支持配置多个,
逗号分隔。必须根据实际修改。
kafka.consumer.id=test
#补数处理过程中记录日志的目录,默认如下,可以不修改。
errordata.path=data/errordata
[log]
#索引文件的最大值,可以不用修改。
file.index.max.size=10240000
#补数操作过程中生成文件的最大个数,超过后将会滚动删除。
file.detail.max.num=500
补数功能使用约束:
1.
当前版本仅支持Oracle 到8a 的增量数据同步;
2.
由于补数功能严格依赖于主键值,因此不支持主键值为null 的数据。