首页 > 数据库 > 国内数据库 > GBASE 8a ETL加载失败分析步骤和解决方法
现象:ETL加载失败。
Select* from etl_task_log where stime>now()-3 and task_status<>0;
报错信息:detail:(GBA-01EX-700)Gbase general error:(gns_host:xxx.xxx.x.xx) socket error,Connection was closed. 连接数据库失败。
分析:
登录报错服务器
(1)查看是否操作系统宕机,执行uptime。查看操作系统运行时间,有没有宕机。
(2)到gnode层下,查看system.log看下gbase服务是否宕过机。
cd /opt/gnode/log/gbase
More system.Log 发现在数据加载失败时间节点,gbase宕机。
但====================以上未打印服务停止原因。
也就是非数据库原因停止的服务,很可能是操作系统将gbased服务杀掉。
(3)到/var/log 下查看messages信息中是否有oom关键字
cd /var/log
cat messages |grep ‘May 13’|grep oom
说明gbased服务时占用内存过多 被操作系统kill掉了。
(4)查看每台服务器的内存多大
Free 显示126G
(5)查看gbased层config 目录下的配置文件中几个堆内存的大小
cd /opt/gnode/config
cat gbase_8a_gbase.cnf |grep heap
内容如下:
gbase_heap_data=36G 主要设计用途是缓存数据(DC),应分配最多的内存
gbase_heap_temp=8G 用于管理不频繁申请、释放的大块儿内存。
gbase_heap_larger=8G 用来分配较为琐碎的和小块儿的临时内存,较少使用
解决方案:
根据以上查询到的信息,得知是参数gbase_heap_data过大导致, 建议将参数gbase_heap_data=36G调小一些,由36G修改成24G
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70000300/viewspace-2773152/ ,如需转载,请注明出处,否则将追究法律责任。