【空格】前后是非多,它能导致大故障,请看

系统运维从来就是一个精细化的工作,除了规则与规范的约束之外,运维人员的严谨、谨慎也必不可少,有时候一个简单的错误就会导致一场灾难,小到一个字符,一个空格。

本文的案例就是因为一个空格导致的,Oracle RAC遭遇故障重启。


故障现象:客户10.2.0.4 RAC for Solaris 10环境突然出现了实例重启。

故障过程:数据库正常运行到下午3点左右,随后两个节点分别重启,其中一个节点上的实例无法自动启动。检查两个实例的告警日志发现,在节点重启前,两个节点都出现了明显的ORA-27504错误。

错误信息

ORA-27504: IPC error creating OSD context

ORA-27300: OS system dependent operation:

if_not_found failed WITH STATUS: 0

ORA-27301: OS failure message: Error 0

ORA-27302: failure occurred at: skgxpvaddr9

ORA-27303: additional information:

requested interface 192.168.168.3 NOT found.

CHECK output FROM ifconfig command

注意,这里的错误信息提示已经比较明确,请求的IP地址不存在,需要检查ifconfig的输出。


接下来就是IPC超时:

Wed Apr 10 15:08:13 2013

ospid 25678: network interface WITH IP

address 192.168.168.3 no longer operational

requested interface 192.168.168.3 NOT found.

CHECK output FROM ifconfig command

Wed Apr 10 15:08:16 2013

IPC Send timeout detected.Sender: ospid 25748

Receiver: inst 2 binc 430164 ospid 11890


再然后实例驱逐不可避免:

Wed Apr 10 15:16:40 2013

Waiting FOR instances TO leave:

2

导致问题的原因根据错误信息很容易分析出来,节点2上的IP地址被修改,导致心跳通信出现了异常,而节点1试图将节点2踢出集群,但是由于无法和节点2之间进行通信,因此只有等待节点2重启


检查节点2的操作系统日志,获得如下主要信息:

Apr 10 15:00:04 ip: [ID 482227 kern.notice] ip_arp_done: init failed

Had[4135]: [ID 702911 daemon.notice] VCS CRITICAL

CPU usage ON bj-sst IS 92%

sshd[13485]:error: Failed TO allocate internet-DOMAIN X11 display socket.


在15点04秒时出现的ip_arp_done: init failed信息,说明设置网卡接口时使用了主机名信息,且主机的IP地址被在线修改。


最后根据HISTORY确认,发现有人通过root登录系统:

执行ifconfig –a6来检查IPV6的地址,但是命令敲错

执行了ifconfig –a 6,在a和6之间多了一个空格

导致主机所有的IP地址被设置成0.0.0.0

于是导致了上面的整个故障,一个空格导致整个集群瞬间崩溃,这就是一个空格引发的血案。


这个案例给我们的教训是,对于特权用户,任何一个操作,具体到命令级别,也需要小心谨慎,DBA用户和ROOT用户都在此列。


顺便温习一下 ifconfig 命令的用法:

ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。 


语法

ifconfig(参数) 


参数

add<地址>:设置网络设IPv6的ip地址;

del<地址>:删除网络设备IPv6的IP地址;

down:关闭指定的网络设备;

<hw<网络设备类型><硬件地址>:设置网络设备的类型与硬件地址;

io_addr<I/O地址>:设置网络设备的I/O地址;

irq<IRQ地址>:设置网络设备的IRQ;

media<网络媒介类型>:设置网络设备的媒介类型;

mem_start<内存地址>:设置网络设备在主内存所占用的起始地址;

metric<数目>:指定在计算数据包的转送次数时,所要加上的数目;

mtu<字节>:设置网络设备的MTU;

netmask<子网掩码>:设置网络设备的子网掩码;

tunnel<地址>:建立IPv4与IPv6之间的隧道通信地址;

up:启动指定的网络设备;

-broadcast<地址>:将要送往指定地址的数据包当成广播数据包来处理;

-pointopoint<地址>:与指定地址的网络设备建立直接连线,此模式具有保密功能;

-promisc:关闭或启动指定网络设备的promiscuous模式;

IP地址:指定网络设备的IP地址;

网络设备:指定网络设备的名称。 


讲解:

eth0表示第一块网卡,其中HWaddr表示网卡的物理地址,可以看到目前这个网卡的物理地址(MAC地址)是00:16:3E:00:1E:51。

inet addr用来表示网卡的IP地址,此网卡的IP地址是10.160.7.81,广播地址Bcast:10.160.15.255,掩码地址Mask:255.255.240.0。

lo是表示主机的回坏地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 httpd服务器的指定到回坏地址,在浏览器输入127.0.0.1就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从知道。

第一行:连接类型:Ethernet(以太网)HWaddr(硬件mac地址)。

第二行:网卡的IP地址、子网、掩码。

第三行:UP(代表网卡开启状态)RUNNING(代表网卡的网线被接上)MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节。

第四、五行:接收、发送数据包情况统计。

第七行:接收、发送数据字节数统计信息。

启动关闭指定网卡:

ifconfig eth0 up

ifconfig eth0 down

ifconfig eth0 up为启动网卡eth0,ifconfig eth0 down为关闭网卡eth0。ssh登陆linux服务器操作要小心,关闭了就不能开启了,除非你有多网卡。


为网卡配置和删除IPv6地址:

ifconfig eth0 add 33ffe:3240:800:1005::2/64

#为网卡eth0配置IPv6地址

ifconfig eth0 del 33ffe:3240:800:1005::2/64

#为网卡eth0删除IPv6地址


用ifconfig修改MAC地址:

ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE


配置IP地址:

[root@localhost ~]# ifconfig eth0 192.168.2.10

[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0

[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255


启用和关闭arp协议:

ifconfig eth0 arp    #开启网卡eth0 的arp协议

ifconfig eth0 -arp  #关闭网卡eth0 的arp协议


设置最大传输单元:

ifconfig eth0 mtu 1500 #设置能通过的最大数据包大小为 1500 bytes 

综合来源:公众号「数据和云」等


更多相关文章阅读

用 Python 开发一个企业级的监控平台

用 Python 代码自动抢火车票

携程运维自动化平台,上万服务器变更也可以很轻松

智能运维就是 由 AI 代替运维人员?

看腾讯运维应对“18岁照片全民怀旧”事件的方案,你一定不后悔!

运行无间:阿里巴巴运维保障体系的一种最佳实践

芳华永在!一个老运维的20年奋斗史

饿了么异地双活数据库实战

运维版《成都》,听哭了多少人...

阿里万亿交易量级下的秒级监控

IT 运维的救赎——顺丰运维的理想践行


想近距离了解腾讯 SNG 团队的运维体系?


来第九届 GOPS 全球运维大会吧。


2018年4月13日-14日的深圳。


为期2天的大会,19个精彩专场,涵盖 AIOps、运维自动化和 DevOps 众多技术领域。



点击阅读原文,进入大会官网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Applies to: Oracle Server - Enterprise Edition - Version: 10.2.0.4 to 11.1.0.6 Information in this document applies to any platform. Description The following errors may be reported: ORA-00603: ORACLE server session terminated by fatal error ORA-27504: IPC error creating OSD context ORA-27300: OS system dependent operation:sskgxp_select failed with status: 3 ORA-27301: OS failure message: No such process ORA-27302: failure occurred at: skgxpvfymmtu ORA-27303: additional information: MTU could not be verified. Did not receive valid message. These errors are caused by more aggressive checking introduced in 10.2.0.4. Likelihood of Occurrence This only affects Oracle Real Application Clusters and can be reported in ASM as well as database instances. The issue was introduced in Oracle 10.2.0.4 so earlier versions are not affected Possible Symptoms The errors above can be reported by Oracle shadow processes or by background processes. Additionally they may be reported in the alert.log. The symptoms can include: - process failure - startup failure - processes spinning in function sskgxp_select with high CPU usage Workaround or Resolution There is no workaround available. However, if the instance fails to start, a reboot of the server supporting the instance will usually allow startup to succeed. Patches At the time of writing, patches were under development on top of 10.2.0.4 on some platforms. Please check Patch 7331323 for availability on your platform. The problem is resolved in 11.1.0.7. References NOTE:419937.1 - Alert.log shows frequently "skgxpvfymmtu: process failed because of a resource problem in the OS" NOTE:419871.1 - Failures due to "skgxpvfymmtu: process failed because of a resource problem in the OS" on 32-bit Linux
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值