oracle常见故障类别及规划解析

前言:

上一篇文章中我们了解了oracle分区索引的失效和重建代码示例的相关内容,接下来我们要看的内容是:

对任何数据库系统而言,对显而易见的故障,应当避免发生本文列出了Oracle常见的故障并给出了解决方案,同时列出了一些日常规划。

一、数据库高可用性的几个目标

MTBF(Mean-Time-Between-Failures)

平均失败时间,即数据库出现失败的频繁度,应尽可能增大该值

           应对措施

RAC集群技术:位于多台计算机上的多个实例打开一个物理数据库,降低因一个或多实例失败导致的风险

Streams:利用高级队列技术,通过解析归档日志,将归档日志解析成DDL及DML语句,从而实现数据库之间的同步。相当于

SQL server中的复制技术,可以在对主系统没有任何压力的情况下,实现对数据库对象级甚至整个数据库的同步。

Data Guard:一个主数据库,多个备用数据库,备用数据库是主数据库在事务上一致的副本,可是在主数据宕机的情况下由

备用服务器来继续提供服务。相当于SQL server中的数据库镜像功能。

MTTR(Mean-Time-To-Recover)

平均恢复时间,数据失败后出现的停机时间,应尽可能减小该值

       数据损失最小化 

在减少MTTR的同时,应尽可能的减少数据的损失

二、常见的故障类别

   1.语句级故障,通常为DML,DQL,DCL,DDL等等
       无效数据             -->使用数据符合相关约束,满足值域的数据
       缺少权限             -->给予用户所需的权限
       空间分配问题         -->使用alter session enable resumable,增加用户配额,增加表空间大小
       应用程序逻辑错误     -->修正逻辑错误

   2.用户进程故障
       用户非登出的异常退出
       用户会话异常终止
       程序错误导致会话结束
       对于上述错误,实例后台进程PMON会自动回滚未提交的事务,并释放相关锁资源

   3.网络故障
       侦听器故障         -->配置一个备份的侦听器,connect-time故障转移
       网络接口卡故障     -->使用多个网络接口卡
       网络连接故障(路由)  -->配置一个备份的网络连接

   4.用户错误
       用户意外删除或修改数据 -->回滚或使用闪回查询来恢复
       用户删除表            -->从回收站闪回删除

   5.介质故障
       磁盘故障
       磁盘控制器故障
       删除或损坏数据文件
       可能的解决方案,使用联机事务日志从备份恢复受影响的文件或恢复数据文件到新的物理位置

   6.实例故障
       电源负载故障
       硬件故障
       后台进程失败
       异常关闭数据库

解决方案,使用startup重新启动实例。实例实现自动恢复,根据联机日志文件前滚提交的事务,回滚未提交的事务
           查看告警日志、跟踪日志等找出出现故障的原因

三、实例恢复相关的后台进程

   1.检查点进程(CKPT)
       检查点将当前日志文件的信息更新到数据文件头部,控制文件等
       检查点的目的是同步日志文件与数据文件的不同步,从而可以确定实例恢复从最近的检查点开始
       检查点的触发条件
           在日志切换的时候
           数据库用immediate,transaction ,normal选项shutdown数据库的时候
           根据初始话文件LOG_CHECKPOINT_INTERVAL、LOG_CHECKPOINT_TIMEOUT、FAST_START_IO_TARGET的设置的数值来确定
           用户受手动触发
       检查点存在的理由
           确保在内存中已修改的数据定期写入到数据文件,防止系统或数据库故障引起数据的丢失
           减少实例恢复所需的时间,从最近的检查点到故障时即为所需要进行的恢复
           在数据库关闭时,确保所有提交的数据写入到数据文件
       检查点信息包括
           检查点位置(位于联机日志文件)
           系统改变号(SCN)
           联机日志文件中的位置
           日志信息等

       注:检查点进程不会写入数据块磁盘,也不会写任何日志到联机日志文件

   2.联机日志文件及日志写入进程(LGWR)
       联机日志文件记录数据库的变化情况
       应当被多功复用以避免丢失
       日志写入进程
           在commit时触发
           当日志缓冲/3满时
           每秒触发
           在DBWn之前完成

   3.归档进程(ARCn)
       归档进程是一个可选的后台进程
       当数据库处于归档模式下,将自动归档联机日志文件
       数据库所有做出的变化将被完整记录
       归档进程在每次发生日志切换时被初始化,在联机日志文件被重新使用前自动对联机日志文件实现归档
       建议开启归档模式

四、三大文件的规划

   1.多路复用控制文件
       至少使用个以上的控制文件
       分散放开到不同的磁盘
       控制文件副本应当位于不同的磁盘控制器
       建议使用RMAN定期自动备份

   2.多路复用重做日志文件
       每一个日志组至少两个成员
       每一个日志成员应当位于不同的磁盘
       每一个日志成员应当位于不同的磁盘控制器
       组内成员被同时写,带来较大的I/O,应置于高速磁盘

   3.归档日志
       应将生产数据库切换到归档模式
       按合理的归档日志命名
       多于一个归档路径

总结

以上就是本文关于oracle常见故障及规划解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:ORACLE SQL语句优化技术要点解析、浅谈oracle rac和分布式数据库的区别、oracle 数据库启动阶段分析等,有什么问题可以随时留言,小编会及时回复大家的。这里推荐几本oracle方面的书籍供大家学习参考。

Oracle精髓(第四版) 中文 PDF版

http://www.jb51.net/books/62033.html

Oracle 11g 从入门到精通 钱慎一 PDF完整版

http://www.jb51.net/books/74876.html

希望大家喜欢!

(0)

相关推荐

  • Oracle数据库系统紧急故障处理方法

    正在看的ORACLE教程是:Oracle数据库系统紧急故障处理方法.Oracle物理结构故障是指构成数据库的各个物理文件损坏而导致的各种数据库故障.这些故障可能是由于硬件故障造成的,也可能是人为误操作而引起.所以我们首先要判断问题的起因,如果是硬件故障则首先要解决硬件问题.在无硬件问题的前提下我们才能按照下面的处理方发来进一步处理. 控制文件损坏: 控制文件记录了关于oracle的重要配置信息,如数据库名.字符集名字.各个数据文件.日志文件的位置等等信息.控制文件的损坏,会导致数据库异常关闭.一

  • Oracle ASM数据库故障数据恢复解决方案

    一.故障描述 ASM磁盘组掉线 ,ASM实例不能mount.ASM磁盘组有4个500G的磁盘组成,数据库和ASM软件为10.2.0.1,急需恢复oracle数据库. 二.故障分析 分析组成ASM磁盘组的磁盘,取出ASM元数据,对元数据进行分析:ASM存储元数据损坏,导致diskgroup无法mount.重组ASM存储空间,从ASM磁盘组中导出数据库文件,然后对数据库文件进行检测,修复.如果数据库文件完好,可以利用从ASM磁盘组中导出的数据库文件启动数据库.如果数据库文件损坏,这底层解析这些数据库

  • oracle常见故障类别及规划解析

    前言: 上一篇文章中我们了解了oracle分区索引的失效和重建代码示例的相关内容,接下来我们要看的内容是: 对任何数据库系统而言,对显而易见的故障,应当避免发生本文列出了Oracle常见的故障并给出了解决方案,同时列出了一些日常规划. 一.数据库高可用性的几个目标 MTBF(Mean-Time-Between-Failures) 平均失败时间,即数据库出现失败的频繁度,应尽可能增大该值            应对措施 RAC集群技术:位于多台计算机上的多个实例打开一个物理数据库,降低因一个或多实

  • oracle数据库导入导出命令解析

    Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失). Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接(通过Net Configuration Assistant添加正确的服务命名,其实你可以想成是客户端与服务器端 修了条路,然后数据就可以被拉过来了) 这样你可以把数据导出到本地,虽然可能服务器离你很远.

  • ORACLE常见错误代码的分析与解决(二)

    正在看的ORACLE教程是:ORACLE常见错误代码的分析与解决(二). ORA-01578:Oracle data block corrupted(file # num,block # num) 产生原因:当ORACLE访问一个数据块时,由于1.硬件的I/O错误:2.操作系统的I/O错误或缓冲问题:3.内存或paging问题:4.ORACLE试图访问一个未被格式化的系统块失败:5.数据文件部分溢出等上述几种情况的一种引起了逻辑坏块或者物理坏块,这时就会报ORA-01578的错误. 解决方式:由

  • ORACLE常见错误代码的分析与解决(三)

    正在看的ORACLE教程是:ORACLE常见错误代码的分析与解决(三). ORA-00600:internal error code,arguments:[num],[?],[?],[?],[?] 产生原因:这种错误通常为ORACLE的内部错误,只对OSS和ORACLE开发有用.ORA-600的错误经常伴随跟踪文件的状态转储(系统状态和进程状态),系统状态存储将包括ORACLE RDBMS持有的当前对象的信息,进程状态转储则将显示特殊进程持有的对象,当进程符合了某错误条件时,经常是由于一些信息取

  • Oracle常见错误诊断

    正在看的ORACLE教程是:Oracle常见错误诊断.ORACLE的这类错误在ORALCE的文档中有详细说明,但原因及措施说明不详细,本文当着重说明如何解决这类错误. 1.ORA-12571.ORA-03113.ORA-03114.ORA-01041 特征:客户端(代理或应用服务器)有时报这类断连错误 原因:如果偶尔出现一次,则可能为网络原因或用户异常中止,如果经常出现则为客户端与服务端的字符集不一致. 措施:如果偶尔出现,可在服务端的协议配置文件PROTOCOL.ORA中增加一行 TCP.NO

  • ORACLE常见错误代码的分析与解决(一)

    正在看的ORACLE教程是:ORACLE常见错误代码的分析与解决(一). 在使用ORACLE的过程过,我们会经常遇到一些ORACLE产生的错误,对于初学者而言,这些错误可能有点模糊,而且可能一时不知怎么去处理产生的这些错误,本人就使用中出现比较频繁的错误代码一一做出分析,希望能够帮助你找到一个合理解决这些错误的方法,同时也希望你能够提出你的不同看法.毕竟作为一种交流的手段,个人意见难免过于偏颇,而且也必定存在着不足,出错之处在所难免.写这篇文章的目的就是想通过相互之间的交流共同促进,共同进步.

  • ORACLE常见错误代码的分析与解决二

    正在看的ORACLE教程是:ORACLE常见错误代码的分析与解决二. -------------------------------------------------------------------------------- p align="JUSTIFY">ORA-01578:Oracle data block corrupted(file # num,block # num) 产生原因:当ORACLE访问一个数据块时,由于1.硬件的I/O错误:2.操作系统的I/O错误

  • Oracle常见错误代码的分析与解决

    正在看的ORACLE教程是:Oracle常见错误代码的分析与解决. 在使用ORACLE的过程过,我们会经常遇到一些ORACLE产生的错误,对于初学者而言,这些错误可能有点模糊,而且可能一时不知怎么去处理产生的这些错误,本人就使用中出现比较频繁的错误代码一一做出分析,希望能够帮助你找到一个合理解决这些错误的方法,同时也希望你能够提出你的不同看法.毕竟作为一种交流的手段,个人意见难免过于偏颇,而且也必定存在着不足,出错之处在所难免.写这篇文章的目的就是想通过相互之间的交流共同促进,共同进步. 产生原

  • 新手学oracle常见疑问

    新手在初学oracle时,都会遇到两大疑问:第一,索引范围扫描(index range scan),第二,索引唯一扫描(index unique scan),下面就这两种疑问通过图文并茂的方式给大家详细介绍下: 1.索引范围扫描(index range scan) 复制代码 代码如下: select empno,ename from emp where empno >1orderby empno 这种情况下不会使用索引范围扫描? 第二.索引唯一扫描(index unique scan) 当数据类

  • ORACLE常见错误代码的分析与解决三

    正在看的ORACLE教程是:ORACLE常见错误代码的分析与解决三. -------------------------------------------------------------------------------- p align="JUSTIFY">ORA-00600:internal error code,arguments:[num],[?],[?],[?],[?] 产生原因:这种错误通常为ORACLE的内部错误,只对OSS和ORACLE开发有用.ORA-6

随机推荐