文件系统问题导致数据库,监听起不来

昨天碰到一个比较怪异的事,启动数据库时,报这样的错误:
SQL> startup
ORACLE instance started.

Total System Global Area 557842432 bytes
Fixed Size 2085328 bytes
Variable Size 415239728 bytes
Database Buffers 104857600 bytes
Redo Buffers 35659776 bytes
ORA-00221: error on write to control file
ORA-00206: error in writing (block 1, # blocks 1) of control file
ORA-00202: control file: 'PATH/control01.'
ORA-27041: unable to open file
IBM AIX RISC System/6000 Error: 13: Permission denied
Additional information: 3

[@more@]

从错误上来看,好像文件权限的问题,赶紧查看一下控制文件权限和owner,没什么异常。会不会是这个控制文件出现了坏块呢,试着先把这个控制文件从spfile里删除,第一步是先把spfile导出来,但发现在dbs目录没相应权限,于是确认下文件权限:
$ ls -l spfile.ora
-rwxr-xr-x 1 200 dba 3584 Mar 23 12:07 spfile.ora
$id
uid=222(oracle) gid=200(dba) groups=1002(db)

从这里来看,ls -l的结果是有异常的,本来显示用户名的,怎么显示数字200了?问一下OS组,反馈是NAS出了问题.

ls -l PATH/control01.
-rwxr-xr-x 1 oracle dba 7806976 Mar 26 07:34 PATH/control01.

把整个Oracle目录更改一下属性,数据库可以启动了。从开头的提示来看,一直以为是控制文件出坏块了,再一次被一开头的错误提示欺骗了。不过后面的错误提示,还是很有用的。
貌似一切都好了,接着去启动监听,结果又报类似的错误:

TNSLSNR for IBM/AIX RISC System/6000: Version 10.2.0.4.0 - Production
System parameter file is PATH/listener.ora
Log messages written to PATH/tns_.log
Error listening on: (ADDRESS=(PROTOCOL=IPC)(KEY=))
TNS-12555: TNS:permission denied
TNS-12560: TNS:protocol adapter error
TNS-00525: Insufficient privilege for operation
IBM/AIX RISC System/6000 Error: 1: Not owner

从最后一行的提示信息,试着去确认一下文件的属主,但上面的列的两个文件属主都没错的。肯定有一个或者多个文件,在监听启动的时候被用到,而这些文件可能跟启动数据库时碰到同样的问题.现在的问题是如何找出这些文件,试着用truss去跟踪

发现下面可疑之处:
connext(3, 0x0FFFFFFFFFFF6FD0, 106) Err#79 ECONNREFUSED
access("/tmp/.oracle/s", 0) = 0
_poll(0x0000000000000000, 0, 100) = 0
close(3) = 0
socket(1, 1, 0) = 3
connext(3, 0x0FFFFFFFFFFF6FD0, 106) Err#79 ECONNREFUSED
....
connext(3, 0x0FFFFFFFFFFF6FD0, 106) Err#79 ECONNREFUSED
access("/tmp/.oracle/s.world", 0) = 0
_poll(0x0000000000000000, 0, 40) = 0
close(3) = 0
socket(1, 1, 0) = 3
connext(3, 0x0FFFFFFFFFFF6FD0, 106) Err#79 ECONNREFUSED

确认一下文件的属性:

$ ls -l /tmp/.oracle/s
srwxrwxrwx 1 200 dba 0 Mar 23 12:18 /tmp/.oracle/s
$ ls -al /tmp/.oracle/s.world
srwxrwxrwx 1 200 dba 0 Mar 23 12:18 /tmp/.oracle/s.world

这两个文件是socket类型(这个是不是跟mysql一样的功能?目前没找到相关资料),应是用于通信用的。把这两个文件属性改好,listener就可以正常启动了。从这次事故来看,主是要文件系统属性变更,导致数据库出了问题,至于NAS为什么会这个问题,OS组至今也没给个说法。

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

转载于:http://blog.itpub.net/45188/viewspace-1032907/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值