-- 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)

        归档进程是一个可选的后台进程

        当数据库处于归档模式下,将自动归档联机日志文件

        数据库所有做出的变化将被完整记录

       

        归档进程在每次发生日志切换时被初始化,在联机日志文件被重新使用前自动对联机日志文件实现归档

        建议开启归档模式

       

    4.关于详细的后台进程描述等,请参考:Oracle实例和Oracle数据库(Oracle体系结构)   

 

四、三大文件的规划

    1.多路复用控制文件

        至少使用个以上的控制文件

        分散放开到不同的磁盘

        控制文件副本应当位于不同的磁盘控制器

        建议使用RMAN定期自动备份

       

    2.多路复用重做日志文件

        每一个日志组至少两个成员

        每一个日志成员应当位于不同的磁盘

        每一个日志成员应当位于不同的磁盘控制器

        组内成员被同时写,带来较大的I/O,应置于高速磁盘

       

    3.归档日志

        应将生产数据库切换到归档模式

        按合理的归档日志命名

        多于一个归档路径

       

五、实例恢复

    请参照:Oracle 实例恢复

   

六、更多

           

Oracle 参数文件

 

SQL基础-->层次化查询(START BY ... CONNECT BY PRIOR)

 

Oracle 用户、对象权限、系统权限

 

Oracle 角色、配置文件

 

SQL 基础--> 集合运算(UNION 与UNION ALL)

时间: 2024-10-27 00:28:46

-- Oracle 常见故障及日常规划----的相关文章

Oracle常见故障——Listener类:Hang、Crash及连接风暴的判断

   目录   监听状态正常,应用反馈时断时连 Listener进程crash ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 11G SCAN LISTENER无法注册服务故障 Listener hang TNS-12535 TNS-00505处理 应用测试连接不上数据库,连接直接报TNS-12547: TNS:lost contact处理 由Oracle的Listener引起的报错很多,很大一部分是由于配置不当导致的.通常,我们要么从tnsnames.ora找原因,要么

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

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

启动Oracle常见疑难问题分析

oracle|问题 启动Oracle常见疑难问题分析 (2003-10-1)  本文出自<网管员世界>2003年第10期"故障诊断"栏目 实例和数据库的启动与关闭是DBA的重要职责之一.只有打开数据库,其他用户才能对数据库中的数据进行操作.一旦数据库关闭,便不能对其操作.对于DBA们来说,关闭和重新启动数据库以便优化.调整应用程序的运行是经常碰到的事情.如果用户已经进入了数据库,使用SHUTDOWN IMMEDIATE 或SHUTDOWN ABORT命令来执行关闭数据库,则

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.数据文件部分溢出等上述几种情况的一种引起了逻辑坏块或者 物理坏块,这时就会报OR

主板常见故障排除办法

  主板常见故障排除方法,如下: 主板是电脑的基础部件之一,尤如一个桥梁,担负着CPU.内存.硬盘.显卡等各种设备的连接,其性能直接关系到整台PC电脑的稳定运行.在日常生活中,我们遇到主板的故障并不少见. 常见主板故障大致有以下几种:一是加电之后无法通过自检.电脑无法正常启动;二是主板上的接口损坏,导致在检测硬盘.光驱等时出现错误;三是BIOS无法自动保存等.很多时候,由于散热不良等因素,还很有可能导致南北桥芯片烧毁,造成主板完全报废.但大部分情况下出现的故障并不可怕,主要是用户粗心大意造成的.

ORACLE常见错误代码的分析与解决(二)_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教程是: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常见疑难问题分析

实例和数据库的启动与关闭是DBA的重要职责之一.只有打开数据库,其他用户才能对数据库中的数据进行操作.一旦数据库关闭,便不能对其操作.对于DBA们来说,关闭和重新启动数据库以便优化.调整应用程序的运行是经常碰到的事情.如果用户已经进入了数据库,使用SHUTDOWN IMMEDIATE 或SHUTDOWN ABORT命令来执行关闭数据库,则用户将失去连接,直到数据库重新启动.经常关闭和启动会对数据库性能造成一定的影响,当然也会影响到用户对数据库的使用.本文从管理数据库的角度来分析在Oracle启动