ORA-01148:cannot refresh file size for datafile ***
ORA-01148: cannot refresh file size for datafile *
1 版本信息
- 操作系统版本:
- -bash-3.00$ uname -a
- SunOS boss-db1 5.10 Generic_138888-06 sun4u sparc SUNW,SPARC-Enterprise
- 数据库版本:
- SQL> select * from v$version;
- BANNER
- ----------------------------------------------------------------
- Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
- PL/SQL Release 10.2.0.4.0 - Production
- CORE 10.2.0.4.0 Production
- TNS for Solaris: Version 10.2.0.4.0 - Production
- NLSRTL Version 10.2.0.4.0 - Production
2 错误信息
- ORA-01110: data file 254: '+DATA2/so_35.dbf'
- ORA-00376: file 254 cannot be read at this time
3 收集错误信息
- 查找数据库trace信息
- -bash-3.00$ cd $ORACLE_BASE/admin/boss/bdump
- -bash-3.00$ grep -i so_35 ./*
- ./boss1_dbw0_25404.trc:ORA-01110: data file 254: '+DATA2/so_35.dbf'
- ./boss1_dbw0_25404.trc:file 254: +DATA2/so_35.dbf
- ./boss1_diag_25354.trc: fname=+DATA2/so_35.dbf
- 确认文件的最后修改时间与问题出现时间一致
- -bash-3.00$ ls -la boss1_dbw0_25404.trc
- -rw-rw---- 1 oracle oinstall 442294 Apr 14 15:25 boss1_dbw0_25404.trc
- 查看trace提供的信息
- ........(省略)
- {***} 2017-04-14 15:20:05.747
- ORA-01148: cannot refresh file size for datafile 254
- ORA-01110: data file 254: '+DATA2/so_35.dbf'
- ORA-09817: Write to audit file failed.
- SVR4 Error: 28: No space left on device =========================> 审计文件所在路径为$ORACLE_BASE/admin/$ORACLE_SID/adump, 空间充足
- Automatic datafile offline due to media error on =========================> 数据文件被offline
- file 254: +DATA2/so_35.dbf
- ........(省略)
4 故障恢复
- 查看文件状态
- SQL> COL FILE_NAME FOR A40
- SQL> SELECT FILE_NAME,STATUS,BYTES FROM DBA_DATA_FILES WHERE FILE_ID=254;
- FILE_NAME STATUS BYTES
- ---------------------------------------- --------- ----------
- +DATA2/so_35.dbf AVAILABLE =======================================> 文件大小为空!
- SQL> COL NAME FOR A17
- SQL> SELECT FILE#,STATUS,ERROR,RECOVER,FUZZY,BYTES,NAME FROM V$DATAFILE_HEADER WHERE FILE#=254;
- FILE# STATUS ERROR REC FUZ BYTES NAME
- ---------- ------- ------------------------------ --- --- ---------- -----------------
- 254 OFFLINE NO YES 1.8765E+10 +DATA2/so_35.dbf ====> status=offline 与trace文件中处理结果一致。
- 这里我们可以看到文件本身的状态是available,但是文件头已经是offline状态,与trace 文件内容一致。
- 尝试恢复数据文件
- SQL> ALTER DATABASE RECOVER DATAFILE 254;
- Database altered.
- online 数据文件
- SQL> ALTER DATABASE DATAFILE 254 ONLINE;
- Database altered.
- SQL> SELECT FILE_NAME,STATUS,BYTES FROM DBA_DATA_FILES WHERE FILE_ID=254;
- FILE_NAME STATUS BYTES
- ---------------------------------------- --------- ----------
- +DATA2/so_35.dbf AVAILABLE 1.8765E+10 ===========================================> 文件大小已正常刷新!
- NOTES
- 数据库最好是在归档状态,如果问题处理不及时,redo 文件被覆盖而又没有开启归档,这种处理方式不会奏效的.
5 问题总结
- 从现象上来看,是由于物理磁盘空间不足引起的。此问题,目前发现的,只有10G,SUNOS 操作系统中会出现。
- 经确认,此问题,属于BUG(Bug 9357097),在数据库版本11.2.0.2 之后得以解决。
6 建议
- 由于此BUG Oracle官方未提供任何补丁及规避方案。因此,将数据库最低升级至11.2.0.4 版本,以避免Oracle 10G 中诸多BUG.
7 高屋建瓴
- 数据库,是一个超级复杂的程序,里面的各种逻辑关系,让人想起来就头皮发麻。在一个复杂到要一个人花数年时间去研究其中的逻辑的程序中,肯定会存在各种各样的问题,包括尚未完善的甚至是缺失的功能。
- Oracle官方在这一点上也做的不错,就是在推广应用、维护的过程中,收集问题,处理问题,优化逻辑,收集BUG,弥补过失。尽力使自己的产品功能完善,减少问题,并尽力跟随世界发展的趋势.
- 毕竟这样一个庞大的数据库想要做体系架构的变动实在是难。
- 新的版本数据,解决了旧版本中各种的BUG,新添加了很多的增强的功能,一方面使数据库性能得以提升,同时,更加便于维护管理。
- 那么我们的客户使用对方的产品,我们作为Oracle的一个合作商,是否有这种魄力,推动客户去做数据库升级呢?而同时,这会又是一个新的项目基点。
- 哪怕没有此种问题,我们是否有向客户提供打补丁的建议?以提高客户满意度?
ORA-01148:cannot refresh file size for datafile ***的更多相关文章
- ORA-27092: size of file exceeds file size limit of the process
停数据库时遇到下述问题: $ ./addbctl.sh stop You are running addbctl.sh version 120.1 Shutting down database UAT ...
- [Intellij IDEA]File size exceeds configured limit(2560000). Code insight features are not available
在使用 IDEA, 发现一个问题File size exceeds configured limit (2560000). Code insight features not available.
- How to calculate a good InnoDB log file size
Peter wrote a post a while ago about choosing a good InnoDB log file size. Not to pick on Peter, b ...
- [Mon Feb 10 15:21:06 2014] [notice] child pid 7101 exit signal File size limit exceeded (25)
今天遇到的问题: LAMP的LOG里报如下错误. 然后IE和FIREFOX里显示连接被重置或是无法访问. 但自己建一个正常的PHP测试探针倒可以. 原来是PHP错误日志太多,无法写入LOG导致. [r ...
- Github 修正上传时“this exceeds GitHub’s file size limit of 100 MB”错误
自己的项目的版本控制用的是Git,代码仓库在github托管.项目里用到了IJKMediaFramework 想把代码push到github上,结果出错了,被拒绝,具体信息是: Total 324 ( ...
- 值得一提:关于 HDFS 的 file size 和 block size
转 http://blog.csdn.net/samhacker/article/details/23089157?utm_source=tuicool&utm_medium=referral ...
- ES部署报错 max file size 和 kibana 报错File size limit exceeded
启动失败一 ERROR: [2] bootstrap checks failed [1]: max file descriptors [4096] for elasticsearch process ...
- linux下core file size设置笔记
现象说明:突然发现一台测试机器的java程序莫名其妙地没了,但是没有core dump!这就需要打开服务器的core文件生成的功能了,(即core dump文件),方便程序调试.1)core文件简介c ...
- 解决访问 jar 包里面的字体报错:OTS parsing error: incorrect file size in WOFF header
前言:jar 包里面的字体加载,浏览器 console 中报警告信息,这里记录一下解决方案. 附:自己的一个 jar 包源码 https://github.com/yuleGH/querydb 错误问 ...
随机推荐
- php判断
<?php $str = '我是张三?'; preg_match("/张三/", $str, $match); if($match) { echo ' 张三在文本中'; } ...
- IDEA springboot maven 项目部署
- vue 设置全局变量、指定请求的 baseurl
一. 基本环境前端vue:2.5.6axios:0.18使用vue脚手架构建项目.参照:webstorm搭建vue项目后台ssm框架前后端数据采用json格式传输二. 前端配置axios配置1.安装: ...
- IPC之mqueue.c源码解读
队列的意思应该大家都清楚,不过还有有一些细节的地方不知道,下面是一个队列的源码,因该说这是队列的一部分,不是全部.而且是linux中队列,其他各种OS中队列大同小异. /* * POSIX messa ...
- 4.java JMS技术
1.什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间, 或分布式系统中发 ...
- loj2424 「NOIP2015」子串[字符串DP]
给定字符串 A,B,要求从 A 中取出互不重叠的 k 个非空子串,按照出现顺序拼起来后等于 B.求方案数.n ≤ 1000,m ≤ 200. 主要是状态的转移.先设计出$f_{i,j,k}$表长度$B ...
- ACID理解
数据库事物的4个特性. A原子性:多次操作要么全部成功,要么全部失败.undo日志是在事务执行失败的时候撤销对数据库的操作,保证了事务的原子性(Atomicity) C一致性:一致性这个最不好理解.数 ...
- PHP类知识----析构方法点滴
网页执行完毕 手动调用析构方法 通过unset() 应用场景:断开mysql的连接 不同情况下,析构方法调用的时机不同,程序执行顺序如下 <?php class mycoach { public ...
- Python3之threading模块
import threading # Tips:一个ThreadLocal变量虽然是全局变量, # 但每个线程都只能读写自己线程的独立副本,互不干扰. # ThreadLocal解决了参数在一个线程中 ...
- Codecombat 游戏攻略——JavaScript编辑语言——关卡(计算机科学四)Ⅱ
第16关:潜伏 // 用findEnemies把敌人存在数组enemies中 // 只攻击萨满巫师,不要攻击牦牛! var enemies = hero.findEnemies(); var enem ...