oracle数据库使用nfs数据文件异常时加锁的删除
来源:互联网 发布:菊正宗化妆水 知乎 编辑:程序博客网 时间:2024/05/17 15:57
以前曾经遇到过这个问题,当时解决后没有记录下来, 结果今天又遇到了.
同事调整网络,结果数据库机器无法访问NAS,导致许多数据库异常, 重新启动后, 也提示一些文件被别人使用.
实际上与NFS的锁定有关. 由于NFS文件在访问时,在nfs的客户端,提出锁的要求,而在nfs服务器上, 保留着这些锁定信息.
当nfs客户端出现异常时,在某些特殊的情况下,这些锁定信息将会保留下来,从而当oracle数据库需要重新锁定时,导致失败.
例如今天一个数据库其控制文件无法锁定,导致无法mount,利用truss可以观测到:
open("/dbfiles_ssz0001dor/hkwmip01/control01.ctl", O_RDWR|O_DSYNC) = 16
getrlimit(RLIMIT_NOFILE, 0xFFFFFD7FFFDFE710) = 0
fcntl(16, F_DUPFD, 0x00000100) = 256
close(16) = 0
fcntl(256, F_SETFD, 0x00000001) = 0
ioctl(256, 0x0403, 0xFFFFFD7FFFDFE6CC) Err#25 ENOTTY
fstatvfs(256, 0xFFFFFD7FFFDFE698) = 0
ioctl(256, _ION('f', 76, 0), 0x00000000) = 0
fcntl(256, F_GETFL) = 8258
fcntl(256, F_SETLK, 0xFFFFFD7FFFDFE740) Err#11 EAGAIN
fcntl(256, F_GETLK, 0xFFFFFD7FFFDFE740) = 0
close(256) = 0
可以看到F_SETLK提示失败,所以在alert文件中提示控制文件已经被使用.
解决的方法是执行clear_locks来要求nfs服务器释放锁,
#clear_locks -s 192.168.0.226
Clearing locks held for NFS client ssz0001dor on server 192.168.0.226
clear of locks held for ssz0001dor on 192.168.0.226 returned success
处理后,重新mount数据库,随后正常处理即可.
- oracle数据库使用nfs数据文件异常时加锁的删除
- 异常删除oracle数据文件的处理办法
- 使用linux文件句柄恢复误删除的Oracle数据文件
- 使用linux文件句柄恢复误删除的Oracle数据文件
- 使用文件句柄方式恢复误删除的Oracle数据文件
- 使用文件句柄方式恢复误删除的Oracle数据文件
- 在ORACLE数据库中彻底删除数据文件
- 【Oracle】数据库开启状态下删除数据文件
- Oracle 意外删除数据文件的恢复
- oracle数据文件被删除的恢复
- 物理删除oracle数据文件(DBF文件)导致数据库ORA-01033的解决方法
- oracle数据文件被误删除后无法启动数据库的解决办法
- bat命令备份oracle数据库,并且删除7天之前的数据文件
- oracle删除数据文件
- Oracle删除数据文件
- Oracle删除数据文件
- oracle删除数据文件
- oracle删除数据文件
- 微软100道算法题------求子数组的最大和
- gridview实现垂直和水平布局的方法
- Java .class文件保护原理
- UIImage旋转详解
- 触发脏检查
- oracle数据库使用nfs数据文件异常时加锁的删除
- git学习笔记二
- 本地IIS浏览网站出现503错误
- 什么是内存池?
- 函数和原型
- 常用的设计模式(四)——代理模式
- dispatchTouchEvent以及onTouchEvent事件分发
- 云搜宝:网站布局对网站优化影响有多大?
- Linux学习之路(很不错的文章)