月归档:十一月 2018

文件系统损坏导致数据文件异常恢复

今天接到一个客户的服务请求,由于服务器被强制重启,数据库无法启动
ORA-1200报错
ora-1200


这是一个常见的ORA-1200错误,但是文件大小相差的有离谱实际大小729600个block,但是现在只有149760个block.不像是一般主机重启导致的数据库异常.通过再次咨询客户实际是什么情况,客户那边如实描述:三个磁盘的raid 5由于两个盘掉线,后来使用最后一个好的盘和最后掉线的盘,强制拉起raid,系统启动通过长时间的自检之后,就是出现这样的情况.通过进一步检查发现,发现大多数数据文件异常.
文件系统中数据文件截图
dbf-fs

通过查询数据库确定文件大小情况
df_header_check

对比文件系统中的文件和数据库查询结果,可以发现绿色框中的文件全部大于文件系统中文件,蓝色框中的文件在文件系统中丢失.对于这样的情况,由于被强制online的磁盘中有坏道,导致文件系统损坏,从而出现大量文件大小异常甚至文件丢失;或者是由于选择错了上线的磁盘出现该问题(通过分析存在的文件,判断确定上线的盘没有问题),那就是文件系统故障导致.
底层重组恢复
解决该问题的方法是通过底层block恢复,重组oracle数据文件,并且检查恢复文件坏块情况.参考:Oracle 数据文件大小为0kb或者文件丢失恢复
scan-disk

分析文件坏块原因
block-had

由于文件所在block被覆盖或者磁盘坏道导致这部分block直接被空块填充.
这个客户比较幸运,直接open数据库成功,坏坏块进行分析判断业务表空间数据文件的坏块全部为index,业务数据0丢失.

发表在 非常规恢复 | 标签为 , , , , | 评论关闭

ogg导致v$logfile查询频繁

在某些版本的ogg中发现ogg抽取进程对v$logfile视图查询影响比较大
20181116220104


对应的sql语句为:SELECT 1 FROM V$LOGFILE WHERE(STATUS NOT IN (‘STALE’, ‘INVALID’) OR STATUS IS NULL) AND MEMBER <> :log_name AND EXISTS ( SELECT 1 FROM V$LOG WHERE GROUP# = V$LOGFILE.GROUP# AND THREAD# = :ora_thread AND SEQUENCE# = :ora_seq_no ) AND ROWNUM = 1
查询mos发现相关问题描述:Query On V$logfile Running Excessive Number Of Times After upgrading ogg to 11.2.1.0.32 or 12.1.2.1.5 or later (Doc ID 2116395.1)和Bug 22650790 : CE 12.1.2.1.9: Query on v$logfile running excessive number of times
2116395.1

根据mos描述在ogg对应版本中设置:TRANLOGOPTIONS _ENABLESTREAMLINEDDBLOGREADER

发表在 GoldenGate | 标签为 , | 评论关闭

Oracle 11.2升级到18C

Oracle 18c是12.2的后续版本,不管是从稳定性还是企业级用户的对数据库使用习惯(一般不使用初始版)都是一个可以考虑的选择.另外从11.2的标准服务期限将在2018年底到
DBRoadmap


还有一些客户可能需要使用到一些新功能必须imdb,far sync dg等,考虑把11.2的数据库升级到oracle 18c,结合oracle官方升级文档,这里提供一个手工升级11.2到18c的参考文档:Oracle 18C Non-CDB手工升级文档
主要参考官方文档:Oracle DB 18c – Complete Checklist for Manual Upgrades to Non-CDB Oracle Database 18c(Doc ID 2418045.1)

发表在 Oracle安装升级 | 标签为 , | 评论关闭