GaussDB T分布式集群数据库每日维护必做必知

栏目: IT技术 · 发布时间: 1个月前

来源: mp.weixin.qq.com

本文转载自:http://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=2650785531&idx=1&sn=ba316936bb1b40681a5bf0caf9745fb2,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有。

GaussDB T分布式集群 <a href='http://www.codercto.com/category/database.html'>数据库</a> 每日维护必做必知

作者介绍

魏斌, 新炬网络资深数据库专家,长期服务于运营商、金融、制造业及政企客户。从传统商业DB到开源分布式,均有涉猎及独到见解。职业以来扎根客户一线,对于紧急故障处置及性能问题优化具有丰富经验,尤善于灾备、多中心建设及异构数据迁移。

《GaussDB T分布式集群这样安装部署不踩坑》 ,我们开始GaussDB T每日维护必做的事情。新的一天从开启主机开始,把虚拟机打开后发现上次安装的数据库没有自启动,所有节点启动的相关进程仅cm_agent进程:

这个时候我们先要拉起ETCD:

GaussDB T分布式集群数据库每日维护必做必知

OK,ETCD成功拉起,接下来我们拉起整个集群:

GaussDB T分布式集群数据库每日维护必做必知

集群拉起成功。

后面我们会将ETCD及集群自动拉起加入自启动,下面开始回到开篇的主题,每日维护开始。

一、集群状态检查

第一件事当然是检查集群各节点资源状态情况啦,至于看啥,我们用一张图来了解要点:

GaussDB T分布式集群数据库每日维护必做必知

GaussDB T分布式集群数据库每日维护必做必知

1、查看各节点资源是否是ON LINE,其中包括CM,CN,DN,ETCD等,如果不是,需进一步核查原因了。

2、查看各节点对比昨日是否涉及节点切换情况,查看节点对应的HOST即可。如有则异常,需进一步核查原因了。

二、检查主机资源使用情况(所有主机)

1、主机目录使用率

df -h

GaussDB T分布式集群数据库每日维护必做必知

2、CPU、内存及IO使用情况

这个检查的方法很多,这里使用了vmstat,iostat,free,请重点关注以下红框标示的位置。

GaussDB T分布式集群数据库每日维护必做必知

释:id列代表的是CPU空闲率,free列代表的是空闲内存,单位为页。

GaussDB T分布式集群数据库每日维护必做必知

释:rMB/s及wMB/s的是每秒读写情况,%util在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

释:重点关注free及available。

注:本节资源检查需与基线进行比对,如出入过大需进一步核查原因。

三、核查各节点数据库状态

确认CN及DN都处于open状态,注意备DN是mount状态。

四、表空间使用率检查

当在进行使用率检查之前,先说下表空间如何创建。

1、连接到cn

zsql omm/gaussdb_123@127.0.0.1:8000 –q

GaussDB T分布式集群数据库每日维护必做必知

2、创建表空间

CREATE TABLESPACE tbs_test1 DATAFILE 'tbs_test1' size 100m SHARD;

注:创建表空间时,使用SHARD关键字则支持将创建表空间语句自动下发至CN和DN节点且仅支持使用相对路径;若不使用SHARD关键字,则可使用绝对路径,同时需要在所有CN和主DN节点上都创建这个表空间后,才能正常在这个表空间下创建表。

3、检查数据文件,我们会发现在CN及DN都创建了对应的表空间及数据文件

GaussDB T分布式集群数据库每日维护必做必知

GaussDB T分布式集群数据库每日维护必做必知

GaussDB T分布式集群数据库每日维护必做必知

注:连接主DN使用如下命令连接。

zsql / as sysdba -D /gaussdb/data/data_dn1 -q

4、检查表空间的使用率

set line 300

set pages 2000

set timing off

col tablespace_name for a25

col sum_GB for a15

col free_GB for a15

col use_precent for a15

select b.tablespace_name,

round(sum(b.bytes) / 1024 / 1024 / 1024, 0) sum_GB,

round(sum(nvl(a.bytes, 0)) / 1024 / 1024 / 1024, 0) free_GB,

round((sum(b.bytes) - sum(nvl(a.bytes, 0))) / sum(b.bytes), 4) * 100 use_precent,

count(*)

from (select tablespace_name, file_id, sum(bytes) bytes

from adm_free_space

group by tablespace_name, file_id) a,

adm_data_files b

where a.file_id(+) = b.file_id

and a.tablespace_name(+) = b.tablespace_name

group by b.tablespace_name

having round((sum(b.bytes) - sum(nvl(a.bytes, 0))) / sum(b.bytes), 4) * 100 >= 0

order by 4 desc;

GaussDB T分布式集群数据库每日维护必做必知

注:表空间使用率检查需在所有的主CN及主DN运行。

五、异常等待事件检查

col event form a38

select event,count(*) from DV_SESSIONS where LOCK_WAIT = 'Y' group by event order by 2 desc;

GaussDB T分布式集群数据库每日维护必做必知

注:在所有主DN核查是否存在异常等待事件。

如图所示存在TX等待,我们可以通过以下SQL查看下锁源在干啥:

select SID,SERIAL#,USERNAME,CURR_SCHEMA,CLIENT_IP,CLIENT_PORT,OSUSER,MACHINE,PROGRAM,

STATUS,LOCK_WAIT,EVENT,MODULE,CURRENT_SQL from dv_sessions

where sid in (select WAIT_SID from v$session where event like '%TX%');

如发现会话状态是非活动且是应用程序连上来的,可以联系应用核查是否正常,如可以kill我们可以运行ALTER SYSTEM KILL SESSION 'SID,SERIAL#'; 杀会话。

GaussDB T分布式集群数据库每日维护必做必知

六、日志检查

在数据库运行过程中,会产生大量用于数据库日常维护的运行、审计、 DEBUG、告警等日志。在数据库发生故障时,可以使用这些日志进行问题定位和数据库恢复的操作。

下面就常用的日志类型做下简介:

1、运行日志

打印GaussDB T数据库运行信息,如果数据库出现故障,请查看zengine.rlog。

日志目录:默认为“ $GSDB_DATA/log/run/zengine.rlog”或参数log_home对应的路径run子目录下,如果想修改其路径重启生效。

CN节点:

GaussDB T分布式集群数据库每日维护必做必知

DN节点:

GaussDB T分布式集群数据库每日维护必做必知

查看运行日志如下:

GaussDB T分布式集群数据库每日维护必做必知

2、慢查询日志

打印GaussDB 100数据库执行时间超过阈值(由LONGSQL_TIMEOUT参数控制)的SQL信息到zengine.lsql日志文件中。

日志目录:默认为“ $GSDB_DATA/log/longsql/zengine.lsql”。

3、告警日志

打印GaussDB 100数据库运行告警信息。如需了解告警信息,请查看zenith_alarm.log。

日志目录:“ $GSDB_DATA/log/zenith_alarm.log”。

4、操作日志

记录用户通过ZSQL工具对GaussDB 100数据库的操作信息。如果需要了解操作记 录,请查看zsql.olog。

日志目录:“ $GSDB_DATA/log/oper/zsql.olog”。

5、TRACE日志

记录数据库会话死锁的信息。如需查看会话死锁信息,请查看zengine_00003_xxxxxx.trc。

日志目录:“ $GSDB_DATA/trc/zengine_00003_xxxxxx.trc”。

常见错误码:

GS-00716:Found %s deadlock in session (%u)

错误原因: 不同会话中并发交叉操作了同一批数据,造成死锁。

解决办法:

  • 查看trace log 或者 run log (根据数据库版本不同,死锁日志位置不同);

  • 根据日志里记录的具体信息,包括死锁类型,SQL语句等,排查业务语句。

GS-00715:The snapshot was outdated.

错误原因:快照过旧。

解决办法:

  • 重新运行SQL;

  • 将长时间运行的高耗SQL优化或拆分。

GS-00713:No free undo page

错误原因:UNDO表空间不足。

解决办法:

  • 增大UNDO表空间大小;

  • 将大事务kill释放UNDO。

GS-00305:%s timeout

错误原因:网络api超时。

解决办法:

  • 请确保主机网络正常。

GS-00774:Failover in progress, can not be connected

错误原因:备机正在做failover时,主机的日志发送线程来连接备机。

解决办法:

  • 将主机停止掉,待备机升主后,将原主降备。

GS-00839:Flush redo file:%s, offset:%u, size:%lu failed

错误原因:写redo日志文件的时候失败了,一般是文件系统或者磁盘有问题。

解决办法:

  • 检查操作系统或磁盘。

GaussDB T数据库维护的工作很多,除了以上每日必做的事情之外,还有会话连接失败、缓冲区刷盘失败、CN/DN节点状态异常、CM Server节点状态异常、主备DN节点日志同步延迟过大等等问题核查。其中很多我们可以通过使用Database Manager分析处理告警或者使用自己开发脚本实现告警。

维护的目的是让系统更稳定,维护工作越简单,维护人员就越不容易出错。尽可能的把维护工作脚本化、 工具 化、自动化,将人员解放出来做更有价值的事情是我们的目标。路漫漫其修远兮,一起加油吧!

> > > >

活动推荐

2020年5月29日,北京,Gdevops全球敏捷运维峰会将 开启年度首站! 重点围绕数据库、智慧运维、Fintech金融科技领域,携手阿里、腾讯、蚂蚁金服、中国银行、平安银行、中邮消费金融、工商银行、建设银行、农业银行、民生银行、中国联通大数据、浙江移动、新炬网络等技术代表,展望云时代下数据库发展趋势、破解运维转型困局

GaussDB T分布式集群数据库每日维护必做必知


以上所述就是小编给大家介绍的《GaussDB T分布式集群数据库每日维护必做必知》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

关注码农网公众号

关注我们,获取更多IT资讯^_^


为你推荐:

相关软件推荐:

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

正则表达式必知必会

正则表达式必知必会

Ben Forta / 杨涛、王建桥、杨晓云 / 人民邮电出版社 / 2007 / 29.00元

正则表达式是一种威力无比强大的武器,几乎在所有的程序设计语言里和计算机平台上都可以用它来完成各种复杂的文本处理工作。本书从简单的文本匹配开始,循序渐进地介绍了很多复杂内容,其中包括回溯引用、条件性求值和前后查找,等等。每章都为读者准备了许多简明又实用的示例,有助于全面、系统、快速掌握正则表达式,并运用它们去解决实际问题。 本书适合各种语言和平台的开发人员。一起来看看 《正则表达式必知必会》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具