首页 > 数据库 > Oracle > 【YashanDB知识库】EXP导致主机卡死问题
问题单: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


在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/ ,如需转载,请注明出处,否则将追究法律责任。