ITPub博客

首页 > 数据库 > Oracle > 【YashanDB知识库】EXP导致主机卡死问题

【YashanDB知识库】EXP导致主机卡死问题

原创 Oracle 作者:崖山数据库系统YashanDB 时间:2024-07-23 14:59:00 0 删除 编辑

问题现象

问题单:exp导出全库1主2备主节点执行,DMP文件30G左右系统卡死,发生主备切换

现象:

  • exp sys/Cod-2022 file=bim20240402.dmp full=y 服务器卡死,ssh连接不上服务器。

  • 等待一两个小时后,可以重新连接上。

  • 备用节点升主正常,查看run.log,心跳发送不到主节点。

  • 重连后,yasdb不在,查看run.log没有问题。未生成core文件,yasagent进程等正常。

问题风险及影响

不能exp数据,数据迁移失败

问题影响的版本

客户测试环境版本:23.1.4.101

问题发生原因

exp导出数据时,大量数据从磁盘放到data buff,导致实际使用内存增长,超过系统限定后,触发oom导致yasdb被杀。

问题分析和处理过程

分析:

  • 因为磁盘是nfs,初步怀疑是否是nfs导致网络问题。但换其它磁盘后,也出现同样问题。

  • 因为数据是从22.2.7.2使用exp导出,imp导入23.1。现在exp导出出问题,怀疑是否是兼容性问题。本地同样方式操作,未复现成功。pstack查看堆栈空间,gdb调试显示正常,也没有core文件生成。

  • 查看服务器message信息,发现yasdb都是被killed。怀疑是yasdb使用太多内存资源导致的问题,最终确认是这个原因。

查看服务器内存资源

free -h

查看yasd buff情况

测试

在10.34.70.91节点:

尝试如下:

● 开启swap空间为20G,DATA_BUFFER_SIZE由23528M 改到10240M

exp sys/Cod-2022 file=bim20240402.dmp full=y 导出成功,没有异常状态

● SWAP空间关闭。DATA_BUFFER_SIZE由23528M 改到10240M

exp sys/Cod-2022 file=bim20240402.dmp full=y 导出成功,没有异常状态

● 开启swap空间为40G。DATA_BUFFER_SIZE为23528M

exp sys/Cod-2022 file=bim20240402.dmp full=y 导出成功,没有异常状态

● swap不开,DATA_BUFFER_SIZE为23528M

exp sys/Cod-2022 file=bim20240402.dmp full=y 服务器卡死,直到yasdb被killed,才能重新连接上去

在10.34.70.78节点:

尝试如下:

● swap空间为30G,

exp sys/Cod-2022 file=bim20240402.dmp full=y 导出成功,没有异常状态

解决方法和规避

规避方法

有两种,可以单独配置,也可以两个同时做:

  • 开启swap空间

swapoff -a
dd if=/dev/zero of=/swap bs=1M count=30720
mkswap /swap
chmod 600 /swap
swapon /swap
sysctl -w vm.swappiness=60
 
开启swap:
vi /etc/fstab添加如下:
/swap swap swap defaults 0 0
  • 把DATA_BUFFER_SIZE调低,不要超过总内存的60%。

alter system set DATA_BUFFER_SIZE=xxx SCOPE=SPFILE;
  • core文件配置

echo "ulimit -c unlimited" >> /etc/profile
source /etc/profile
mkdir -p /data/corefile
chmod 777 /data/corefile/
echo "/data/corefile/core-%e-%p-%t" >> /proc/sys/kernel/core_pattern
echo "kernel.core_pattern=/data/corefile/core-%e-%p-%t" >> /etc/sysctl.conf
sysctl -p /etc/sysctl.conf

经验总结

  • yasdb数据内存使用一般设定在系统的60%左右较好,data buff一般设置为yasdb内存的80%。

  • 遇上yasdb不存在了,但是没有生成core。很有可能就是被系统kill掉了,这时可以先去看/var/log/message信息,核实改问题。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3023160/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,融入原创理论,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,为客户提供一站式的企业级融合数据管理解决方案。

注册时间:2023-04-11

  • 博文量
    722
  • 访问量
    639729