当前位置:文档之家› ORACLE 常见故障处理

ORACLE 常见故障处理

ORACLE 常见故障处理
ORACLE 常见故障处理

Oracle发展历程

Oracle数据库发展历程 一、oracle数据库的发展历程 本节中,我们主要介绍Oracle的发展历程。 1977年,Larry Ellison、Bob Miner和Ed Oates等人组建了Relational软件公司(Relational Software Inc.,RSI)。他们决定使用C语言和SQL界面构建一个关系数据库管理系统(Relational Database Management System,RDBMS),并很快发布了第一个版本(仅是原型系统)。 1979年,RSI首次向客户发布了产品,即第2版。该版本的RDBMS可以在装有RSX-11操作系统的PDP-11机器上运行,后来又移植到了DEC VAX系统。 1983年,发布的第3个版本中加入了SQL语言,而且性能也有所提升,其他功能也得到增强。与前几个版本不同的是,这个版本是完全用C语言编写的。同年,RSI更名为Oracle Corporation,也就是今天的Oracle公司。 1984年,Oracle的第4版发布。该版本既支持VAX系统,也支持IBM VM操作系统。这也是第一个加入了读一致性(Read-consistency)的版本。 1985年,Oracle的第5版发布。该版本可称作是Oracle发展史上的里程碑,因为它通过SQL*Net引入了客户端/服务器的计算机模式,同时它也是第一个打破640KB内存限制的MS-DOS 产品。 1988年,Oracle的第6版发布。该版本除了改进性能、增强序列生成与延迟写入(Deferred Writes)功能以外,还引入了底层锁。除此之外,该版本还加入了PL/SQL和热备份等功能。这时Oracle已经可以在许多平台和操作系统上运行。 1991年,Oracle RDBMS的6.1版在DEC VAX平台中引入了Parallel Server选项,很快该选项也可用于许多其他平台。 1992年,Oracle 7发布。Oracle 7在对内存、CPU和I/O的利用方面作了许多体系结构上的变动,这是一个功能完整的关系数据库管理系统,在易用性方面也作了许多改进,引入了SQL*DBA工具和database角色。

2020年(Oracle管理)Oracle SQL性能优化方法

(Oracle管理)Oracle SQL性能优化方法

OracleSQL性能优化方法探讨 Oracle性能优化方法(SQL篇)1 1综述2 2表分区的应用2 3访问Table的方式3 4共享SQL语句3 5选择最有效率的表名顺序5 6WHERE子句中的连接顺序.6 7SELECT子句中避免使用’*’6 8减少访问数据库的次数6 9使用DECODE函数来减少处理时间7 10整合简单,无关联的数据库访问8 11删除重复记录8 12用TRUNCATE替代DELETE9 13尽量多使用COMMIT9 14计算记录条数9 15用Where子句替换HAVING子句9 16减少对表的查询10 17通过内部函数提高SQL效率.11 18使用表的别名(Alias)12 19用EXISTS替代IN12 20用NOT EXISTS替代NOT IN13 21识别低效执行的SQL语句13

22使用TKPROF 工具来查询SQL性能状态14 23用EXPLAIN PLAN 分析SQL语句14 24实时批量的处理16

1综述 ORACLE数据库的性能调整是个重要,却又有难度的话题,如何有效地进行调整,需要经过反反复复的过程。在数据库建立时,就能根据应用的需要合理设计分配表空间以及存储参数、内存使用初始化参数,对以后的数据库性能有很大的益处,建立好后,又需要在应用中不断进行应用程序的优化和调整,这需要在大量的实践工作中不断地积累经验,从而更好地进行数据库的调优。 数据库性能调优的方法 ●调整内存 ●调整I/O ●调整资源的争用问题 ●调整操作系统参数 ●调整数据库的设计 ●调整应用程序 本文针对应用程序的调整,来说明对数据库性能如何进行优化。 2表分区的应用 对于海量数据的表,可以考虑建立分区以提高操作效率。建立分区一般以关键字为分区的标志,也可以以其他字段作为分区的标志,但效率不如关键字高。建立分区的语句在建表时可以进行说明: createtableTABLENAME() partitionbyrange(PutOutNo) (partitionPART1valueslessthan(200312319999) partitionPART2valueslessthan(200412319999)

系统参数设置-Oracle性能优化(精)

一、SGA 1、Shared pool tunning Shared pool的优化应该放在优先考虑,因为一个cache miss在shared pool中发生比在data buffer中发生导致的成本更高,由于dictionary数据一般比library cache中的数据在内存中保存的时间长,所以关键是library cache的优化。 Gets:(parse)在namespace中查找对象的次数; Pins:(execution)在namespace中读取或执行对象的次数; Reloads:(reparse在执行阶段library cache misses的次数,导致sql需要重新解析。 1)检查v$librarycache中sql area的gethitratio是否超过90%,如果未超过90%,应该检查应用代码,提高应用代码的效率。Select gethitratio from v$librarycache where namespace=’sql area’; 2 v$librarycache中reloads/pins的比率应该小于1%,如果大于1%,应该增加参数shared_pool_size的值。Select sum(pins “executions”,sum(reloads “cache misses”,sum(reloads/sum(pins from v$librarycache; reloads/pins>1%有两种可能,一种是library cache空间不足,一种是sql中引用的对象不合法。 3)shared pool reserved size一般是shared pool size的10%,不能超过50%。 V$shared_pool_reserved中的request misses=0或没有持续增长,或者free_memory 大于shared pool reserved size的50%,表明shared pool reserved size过大,可以压缩。 4)将大的匿名pl/sql代码块转换成小的匿名pl/sql代码块调用存储过程。 5)从9i开始,可以将execution plan与sql语句一起保存在library cache中,方便进行性能诊断。从v$sql_plan中可以看到execution plans。 6)保留大的对象在shared pool中。大的对象是造成内存碎片的主要原因,为了腾出空间许多小对象需要移出内存,从而影响了用户的性能。因此需要将一些常用的大的对象保留在shared pool中,下列对象需要保留在shared pool中: a. 经常使用的存储过程; b. 经常操作的表上的已编译的触发器 c. Sequence,因为Sequence移出shared pool后可能产生号码丢失。查找没有保存在library cache中的大对象: Select * from v$db_object_cache where sharable_mem>10000 and type in ('PACKAGE','PROCEDURE','FUNCTION','PACKAGE BODY' and kept='NO'; 将这些对象保存在library cache中:Execute dbms_shared_pool.keep(‘package_name’; 对应脚本:dbmspool.sql 7查找是否存在过大的匿名pl/sql代码块。两种解决方案:A.转换成小的匿名块调用存储过程 B.将其保留在shared pool中查找是否存在过

Oracle数据库10g备份与恢复(技术白皮书)

Oracle数据库10g备份和恢复:RMAN和闪回技术 Oracle 白皮书 2004 年 6 月

发展和革命 (3) 恢复管理器 (3) 快速恢复区 (4) 自动存储管理 (6) 更改跟踪文件 (6) 增量更新备份 (7) Oracle 建议的策略 (7) 备份管理 (9) 跨平台的传输 (10) 革命还未结束 (11) RMAN 比对用户管理的恢复 (11) 网格集群 (13) 人为错误的挑战 (13) 人为错误纠正—闪回技术 (13) 人为错误的传统恢复 (14) 恢复时间目标 (14) 何时使用闪回与传统恢复的对比 (14) 闪回数据库 (15) 闪回表 (17) 闪回删除 (18) 什么是回收站? (18) 闪回查询 (18) 闪回版本查询 (20) 闪回事务查询 (20) 实例 (21) 结论 (22)

发展和革命 数据库备份可能是防止 Oracle 数据库发生介质故障的唯一方式。使用提供给 DBA 的大量工具和方法来恢复关键数据的重要性是毋庸置疑的。保护 Oracle 数据的成本和复杂性包括,从简单的每周备份到磁带,到记录更加繁复的文件快照或备用数据库。Oracle Data Guard1.的体系结构有助于企业恢复对 Oracle 数据库造成不利影响的灾难、人为错误和损坏。每个工具和选项都有其自己的持续可用性优势,并且可以快速备份和/或恢复 Oracle 数据库。 为了保护和恢复数据所采纳的方法或工具应该具有: 可靠性。所有需要恢复的文件都进行了备份,且通过恢复操作能够方便地恢复文件。 灵活性。Oracle 数据库可以在数据库、表空间、数据文件和块级上备份或恢复。 可管理性组织和管理备份文件以便用于恢复操作。 可用性。备份操作不应该干扰数据库事务处理过程同时恢复操作应该快速、有效。 Oracle 恢复管理器通过新的版本和 Oracle 数据库 10g 包含的革命性技 术进步继续得以完善,并提供您一直期待的简单、可靠和自动的恢复工具。此白皮书列出了 Oracle 数据库 10g 用于备份和恢复文件管理的新功能,增强的增量备份和异构平台上相同表空间数据的共享。让革命开始吧! 恢复管理器 恢复管理器 (RMAN) 是管理备份和更重要的数据库恢复的 Oracle 公用程序。提供数据库高级的性能和可用性的同时消除了操作的复杂性。从 Oracle8 开始,恢复管理器为 DBA 提供了集成的备份和恢复解决方案。 1有关 Data Guard 的详细信息,请访问 https://www.doczj.com/doc/653951886.html,/deploy/availability/htdocs/odg_overview.html。

OracleSQL性能优化方法

OracleSQL性能优化方法 Oracle性能优化方法(SQL篇) (1) 1综述 (2) 2表分区的应用 (2) 3访咨询Table的方式 (3) 4共享SQL语句 (3) 5选择最有效率的表名顺序 (5) 6WHERE子句中的连接顺序. (6) 7SELECT子句中幸免使用’*’ (6) 8减少访咨询数据库的次数 (6) 9使用DECODE函数来减少处理时刻 (7) 10整合简单,无关联的数据库访咨询 (8) 11删除重复记录 (8) 12用TRUNCATE替代DELETE (9) 13尽量多使用COMMIT (9) 14运算记录条数 (9) 15用Where子句替换HA VING子句 (9) 16减少对表的查询 (10) 17通过内部函数提高SQL效率 (11) 18使用表的不名(Alias) (12) 19用EXISTS替代IN (12) 20用NOT EXISTS替代NOT IN (13) 21识不低效执行的SQL语句 (13) 22使用TKPROF 工具来查询SQL性能状态 (14) 23用EXPLAIN PLAN 分析SQL语句 (14) 24实时批量的处理 (16)

1综述 ORACLE数据库的性能调整是个重要,却又有难度的话题,如何有效地进行调整,需要通过反反复复的过程。在数据库建立时,就能依照顾用的需要合理设计分配表空间以及储备参数、内存使用初始化参数,对以后的数据库性能有专门大的益处,建立好后,又需要在应用中不断进行应用程序的优化和调整,这需要在大量的实践工作中不断地积存体会,从而更好地进行数据库的调优。 数据库性能调优的方法 ●调整内存 ●调整I/O ●调整资源的争用咨询题 ●调整操作系统参数 ●调整数据库的设计 ●调整应用程序 本文针对应用程序的调整,来讲明对数据库性能如何进行优化。 2表分区的应用 关于海量数据的表,能够考虑建立分区以提高操作效率。建立分区一样以关键字为分区的标志,也能够以其他字段作为分区的标志,但效率不如关键字高。建立分区的语句在建表时能够进行讲明: create table TABLENAME() partition by range (PutOutNo) (partition PART1 values lessthan (200312319999) partition PART2 values lessthan (200412319999) 。。。。。。 如此,在进行大部分数据查询,数据更新和数据插入时,Oracle自动判定操作应该在哪个分区进行,幸免了整表操作,提高了执行的效率

( O管理)ORACLESL性能优化(内部培训资料)

(O管理)ORACLESL性能优化(内部培训资料)

ORACLESQL性能优化系列(一) 1.选用适合的ORACLE优化器 ORACLE的优化器共有3种: a.RULE(基于规则) b.COST(基于成本) c.CHOOSE(选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS.你当然也在SQL句级或是会话(session)级对其进行覆盖. 为了使用基于成本的优化器(CBO,Cost-BasedOptimizer),你必须经常运行analyze命令,以增加数据库中的对象统计信息(objectstatistics)的准确性. 如果数据库的优化器模式设置为选择性(CHOOSE),那么实际的优化器模式将和是否运行过analyze命令有关.如果table已经被analyze过,优化器模式将自动成为CBO,反之,数据库将采用RULE形式的优化器. 在缺省情况下,ORACLE采用CHOOSE优化器,为了避免那些不必要的全表扫描(fulltablescan),你必须尽量避免使用CHOOSE优化器,而直接采用基于规则或者基于成本的优化器.

2.访问Table的方式 ORACLE采用两种访问表中记录的方式: a.全表扫描 全表扫描就是顺序地访问表中每条记录.ORACLE采用一次读入多个数据块(databaseblock)的方式优化全表扫描. b.通过ROWID访问表 你可以采用基于ROWID的访问方式情况,提高访问表的效率,,ROWID包含了表中记录的物理位置信息..ORACLE采用索引(INDEX)实现了数据和存放数据的物理位置(ROWID)之间的联系.通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高. 3.共享SQL语句 为了不重复解析相同的SQL语句,在第一次解析之后,ORACLE将SQL语句存放在内存中.这块位于系统全局区域SGA(systemglobalarea)的共享池(sharedbufferpool)中的内存可以被所有的数据库用户共享.因此,当你执行一个SQL语句(有时被称为一个游标)时,如果它和之前的执行过的语句完全相同,ORACLE就能很快获得已经被解析的语句以及最好的执行路

Oracle SQL性能优化方法研究

Oracle SQL性能优化方法探讨 Oracle性能优化方法(SQL篇) (1) 1综述 (2) 2表分区的应用 (2) 3访问Table的方式 (3) 4共享SQL语句 (3) 5选择最有效率的表名顺序 (5) 6WHERE子句中的连接顺序. (6) 7SELECT子句中幸免使用’*’ (6) 8减少访问数据库的次数 (6) 9使用DECODE函数来减少处理时刻 (7) 10整合简单,无关联的数据库访问 (8) 11删除重复记录 (8) 12用TRUNCATE替代DELETE (9) 13尽量多使用COMMIT (9) 14计算记录条数 (9) 15用Where子句替换HAVING子句 (9) 16减少对表的查询 (10) 17通过内部函数提高SQL效率 (11)

18使用表的不名(Alias) (12) 19用EXISTS替代IN (12) 20用NOT EXISTS替代NOT IN (13) 21识不低效执行的SQL语句 (13) 22使用TKPROF 工具来查询SQL性能状态 (14) 23用EXPLAIN PLAN 分析SQL语句 (14) 24实时批量的处理 (16)

1综述 ORACLE数据库的性能调整是个重要,却又有难度的话题,如何有效地进行调整,需要通过反反复复的过程。在数据库建立时,就能依照顾用的需要合理设计分配表空间以及存储参数、内存使用初始化参数,对以后的数据库性能有专门大的益处,建立好后,又需要在应用中不断进行应用程序的优化和调整,这需要在大量的实践工作中不断地积存经验,从而更好地进行数据库的调优。 数据库性能调优的方法 ●调整内存 ●调整I/O ●调整资源的争用问题 ●调整操作系统参数 ●调整数据库的设计 ●调整应用程序 本文针对应用程序的调整,来讲明对数据库性能如何进行优化。 2表分区的应用 关于海量数据的表,能够考虑建立分区以提高操作效率。建

Oracle闪回特性

在Oracle的操作工程中,会不可避免地出现操作失误或者用户失误,例如不小心删除了一个表等,这些失误和错误可能会造成重要数据的丢失,最终导致Oracle数据库停止。 闪回的基本概念 在Oracle的操作工程中,会不可避免地出现操作失误或者用户失误,例如不小心删除了一个表等,这些失误和错误可能会造成重要数据的丢失,最终导致Oracle数据库停止。在传统意义上,当发生数据丢失、数据错误问题时,解决的主要办法是数据的导入导出、备份恢复技术,这些方法都需要在发生错误前,有一个正确的备份才能进行恢复。为了减少这方面的损失,Oracle提供了闪回技术。有了闪回技术,就可以实现数据的快速恢复,而且不需要数据备份。闪回的类型: 闪回表(flashback table) :恢复到过去的一个是时间点 闪回删除(flashback drop) :回收站中将已删除的对象恢复到删除之前的状态 闪回版本查询(flashback version query) :查看用户提交了的增删改的操作以及相应操作时间的记录 闪回事务查询(flashback transaction query) :查询某个事务甚至撤销一个已经 提交的事务 闪回的益处 恢复中,闪回技术是革命性的进步 传统的恢复技术缓慢: ?它是整个数据库或者一个文件恢复,不只恢复损坏的数据 ?在数据库日志中每个修改都必须被检查 闪回速度快: ?通过行和事务把改变编入索引 ?仅仅改变了的数据会被恢复 闪回命令很容易: ?没有复杂棘手的多步程序 闪回表 闪回表,实际上是将表中的数据快速恢复到过去的一个是时间点或者系统改变号SCN 上。实现表的闪回,需要使用到与撤销表空间相关的undo信息,通过show parameter undo 命令可以了解这些信息。 用户对表数据的修改操作,都记录在撤销表空间中,这为表的闪回提供了数据恢复的基础。例如,某个修改操作在提交后被记录在撤销表空间中,保留时间为900秒,用户可以 在这900秒的时间内对表进行闪回操作,从而将表中的数据恢复到修改之前的状态。 闪回表的步骤: 1.执行表的闪回要设置用户权限:grant flashback any table to scott; 2. 获取要恢复的点(SCN号): select sysdate 时间, timestamp_to_scn(sysdate) SCN from dual; 3. 将表的行移动功能打开:alter table flshback_table enable row movement; 4. 执行闪回表:flashback table flashback_table to scn 945018(获取到的scn号,也可指定在某个时间段恢复); 闪回删除 闪回删除,实际上从系统的回收站中将已删除的对象,恢复到删除之前的状态。系统的回收站只对普通用户有作用。回收站是所有被删除对象及其相依对象的逻辑存储容器,例如当一个表被删除(drop)时,该表及其相依对象并不会马上被数据库彻底删除,而是被保

Oracle 11g数据库管理及其开发技术(doc 8页)

Oracle 11g数据库管理及其开发技术(doc 8页)

课程摘要:本课程主要介绍Oracle数据库的基本概念、安装方法及数据库的启动与关闭、与数据库设计、开发和管理密切相关的SQL语言,以及Oracle对SQL语言应用进行增强的PLSQL语言和SQL*Plus管理工具,并结合大量的实例帮助学员学习Oracle数据库系统的相关知识;数据库的备份与恢复技术,包括基础知识、RMAN工具、闪回、OEN 及逻辑备份工具(数据泵技术)、数据库优化、SQL优化和系统调整方面的知识;

内容大纲: 数据库的基础知识 数据库的产生、数据库的特征 数据库的组成、数据库的管理系统、关系数据库 初识Oracle Oracle 数据库系统的特点、发展历史 Oracle 版本号的含义、Oracle 11g 的新特性 Oracle 11g 数据库安装/启动/关闭 Oracle 11g 在Windows 下的安装概述 在Windows 环境下安装Oracle 11g 在Linux 环境下安装前的准备、在Linux 环境下安装Oracle 11g Oracle 11g 数据库实例的创建 在Windows 环境下创建数据库 在Linux 环境下用DBCA 创建数据库 Oracle 11g 实例启动与关闭 Linux 环境下Oracle 实例的关闭、Linux 环境下Oracle 监听进程的启动和关闭 SQL 语言概述 使用SQL*Plus 用SQL*Plus 与数据库交互 SQL*Plus 的主要功能、启动SQL*Plus 连接数据库 1. 管理表 建表时的考量、列数据类型、创建表的语法、创建表的实例、查看表的信息 、修改表结构、重命名表、监控表的存储空间、修改表空间的存储设置、删除表、外部表的管理

oracle性能调优-管理oracle日志之Oracle日志运行机制

理解Oracle的日志机制 ? Oracle的日志是用来记录用户对数据库的改变,这样,当出现服务器硬件故障或者用户错误而丢失数据时,可以通过重做这些日志来恢复已提交的事务,Oracle日志机制包含以下组件: ?日志缓存SGA的一部分,用于缓存服务器进程产生的日志,包括DML和DDL; ? LGWR进程这个后台进程负责将日志缓存的数据写到联机日志文件,每个实例只有一个; ?数据库检查点检查点用于同步数据文件和日志文件,一个检查点事件的完成,代表在这个事件开始之前发生的所有对数据文件的改变都已实际记录到了数据文件,数据库在这个时间点是一致的,在实例恢复的时候,只有在最后一个检查点之后的日志才需要重做; ?联机日志文件用于存放从日志缓存中写出的日志数据,每个数据库最少需要两个日志文件,当前日志文件填满以后,发生日志切换,然后才可以继续写下一个日志文件; ?日志归档LGWR写满所有组的联机日志文件以后,会回头再写第一个组的日志文件,在非归档模式下,被重用的日志文件中的日志会被丢弃,在归档模式下,日志文件被重用前会被ARC0进程复制到归档日志文件; ? 一些可选的日志机制,如归档和Standby,因为附加的I/O会降低系统的性能,同时提供了可靠的灾难恢复能力,不建议因这些性能的下降而关闭生产系统的归档功能。 调整日志缓存 ? 日志缓存的管理机制可以类似理解成一个漏斗,日志数据不断地从漏斗上方加入,然后偶尔打开漏斗下方的开关将加入的数据清空,这个开关就是LGWR进程,为了日志缓存有空间容纳不断加进来的日志数据,LGWR在下面列出的任何一个条件下都会执行写出日志缓存的操作: ?应用程序发出Commit命令时; ?三秒间隔已到时; ?日志缓存三分之一满时; ?日志缓存达到1M时; ?数据库检查点发生时; ? 测量日志缓存的性能通过服务器进程放置日志条到日志缓存时发生等待的次数和时间来测量; Select Name, Value From V$sysstat Where Name In ('redo entries', 'redo buffer allocation retries','redo log space requests'); redo entries 服务器进程放进日志缓存的日志条的总数量; redo buffer allocation retries 服务器放置日志条时必须等待然后再重试的次数; redo log space requests LGWR进程写出日志缓存时等待日志切换的次数; 这个查询用于计算日志缓存重试率,这个比率应该小于百分之一; Select Retries.Value / Entries.Value "Redo log Buffer Retry Ratio" From V$sysstat Entries, V$sysstat Retries Where https://www.doczj.com/doc/653951886.html, = 'redo entries' And https://www.doczj.com/doc/653951886.html, = 'redo buffer allocation retries'; 这个查询用来显示哪些会话的LGWR正在进行写等待;

ORACLE 11g 技术白皮书

ORACLE 11g 技术白皮书 1概要 过去30年来。信息技术成熟到全球经济几乎全都仰赖电子撷取、分析与分享信息的地步。 各企业持续扩大自己的信息基础架构,想要满足以更短时间存取信息而且不断成长的业务需求。然而,企图勉强结合青黄不接的技术与流程,导致各企业信息技术(IT)基础架构普遍的严重复杂性与效率不彰。由于日常作业完全仰赖信息技术基础架构,这种复杂性威胁到了企业快速应变的能力。 Oracle Database 11g提供绝佳创新,使各企业能够更快速应变。高成本的负担与瞬息万变的业务需求息息相关,各企业可以仰赖Oracle Database 11g帮助创新,以妥善掌控、具备成本效益的方式执行IT变革。 Oracle Database 11g解决阻碍各IT组织进步的核心问题:自信满怀地执行变革的能力。运用Oracle Database 11g,各企业可以统合所有信息,而简化自己的信息基层架构。Oracle Database 11g也不断地为更高价值的规划工作而释出宝贵的技术资源,使管理工作自动化进而建置崭新的业务流程。 Oracle Database 11g彻底改变了具有前瞻视野的公司对于数据库平台的需求。由于Oracle Database 11g与企业级网格运算,各企业现在可以毫无羁绊地追求创新。 2增益网格实力 Oracle倡导企业网格(enterprise grids),挑战建置和维护企业IT基础架构的高昂成本。企业网格运用Oracle Database 11g以及商用服务器和存储,让各企业能够简化自己的基础架构,进而顺应变革,而非管理昂贵的垂直扩展服务器孤岛;Oracle企业网格以最低成本独家提供效能、可用性与基础架构灵活性的绝妙组合。 Oracle企业网格包括Oracle Fusion Middleware可以扩展应用软件、Oracle Real Application Clusters (Oracle R AC)以提供扩展性和高可用性,还有Automatic Storage Management (ASM)以简化管理基本存储基础架构的工作,并使其自动化。Enterprise Manager Grid Control简化企业网格和一体化业务流程的管理,以确保快速、安全而且可靠的服务品质。 网格运算

oracle闪回技术

亚存整理 闪回作用 自动的基于磁盘的备份与恢复,能把表恢复到过去的某个时间点 查看闪回区 Show parameter db_recovery_file_dest 查看闪回区详细信息 Select flashback_on from v$database 查看闪回区是否开启 2,修改闪回功能 SQL> startup mount 数据库启动到mount下 SQL> alter database flashback on (off); 开启关闭闪回区 注:如遇到38706事件错误,可能是因为归档不正确。先启用归档 SQL>alter database archivelog SQL> alter system set db_flashback_retention_target=2880 修改闪回时间,默认是1440 闪回时间是指数据库能回退的时间 闪回使用实例:(注:sys用户下不可用闪回) 1,闪回drop的表 在非sys用户下创建表和表上索引,插入相关数据 create table abc (f number(9)); create index idx_test on abc(f); insert into abc values(1); insert into abc values(2); insert into abc values(3); 删除表 drop table abc; 删除表之后,表并没有被真正删除,而是重命名之后放在同一用户下的回收站内,同时表上的索引等也会被如此处理。回收站满后以先进先出的原则管理 查看表语句select * from tab; 查看索引语句select index_name, index_type, table_name from ind; 查看回收站语句show recyclebin 清空回收站语句PURGE RECYCLEBIN; 注:没有放入回收站的表不能被闪回 闪回之后,即可再次看到表 flashback table abc to before drop; 但是表闪回后相应的索引等需要重新编译 2,闪回DML语句 Flashback table abc to timestamp to_timestamp(‘2014-02-14 16:00:00’,’yyyy-mm-dd hh24:mi:ss’) 闪回可能会遇到08189错误,执行下列语句

Oracle性能优化总结

个人理解,数据库性能最关键的因素在于IO,因为操作内存是快速的,但是读写磁盘是速度很慢的,优化数据库最关键的问题在于减少磁盘的IO,就个人理解应该分为物理的和逻辑的优化,物理的是指oracle产品本身的一些优化,逻辑优化是指应用程序级别的优化物理优化: 一、优化内存

V$ROWCACHE视图结构

3.管理员可以通过下述语句来查看数据缓冲区的使用情况 select name,value from v$sysstat where name in ('db block gets', 'consistent gets ', 'physical reads'); 数据缓冲区使用命中率(physical reads除以db block gets加consistent gets之和)一定要小于10%,否则需要增加数据缓冲区大小 4.管理员可以通过执行下述语句,查看日志缓冲区的使用情况 select name,value from v$sysstat where name in ('redo entries','redo log space requests') 根据查询出的结果可以计算出日志缓冲区的申请失败率:requests除以entries 申请失败率应该解决与0,否则说明日志缓冲区开设太小,需要增加Oracle数据库的日志缓冲区 二、物理I/0的优化 1.在磁盘上建立数据文件前首先运行磁盘碎片整理程序 为了安全地整理磁盘碎片,需关闭打开数据文件的实例,并且停止服务。如果有足够的连续磁盘空间建立数据文件,那么就容易避免数据文件产生碎片。 2.不要使用磁盘压缩(Oracle文件不支持磁盘压缩) 3.不要使用磁盘加密

oracle闪回

闪回基本参数 企业版才支持数据闪回 打开重置日志ALTER DATABASE OPEN RESETLOGS 必须在归档模式archive log list; 开启mount状态startup mount exclusive; 查看闪回参数show parameter db_recovery show parameter flashback 设置闪回空间alter system set db_recovery_file_dest='/u01/app/oracle/flashback_area' scope=spfile; 设置闪回区大小alter system set db_recovery_file_dest_size=20g scope=spfile; 设置保留时间 alter system set db_flashback_retention_target=4320; 开启闪回alter database flashback on; 查看闪回开启select flashback_on from v$database; 具体闪回待添加----搭建rac之后 创建可靠还原点 sys@WZXIS>create restore point b1 guarantee flashback database;

闪回表 scott@DJJXIS>drop table emp; Table dropped. scott@DJJXIS>select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- BIN$R+Kc8tW4kBTgVQAAAAAAAQ==$0 TABLE BONUS TABLE DEPT TABLE SALGRADE TABLE 查看回收站 scott@DJJXIS>show recyclebin; ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME ---------------- ------------------------------ ------------ -------- EMP BIN$R+Kc8tW4kBTgVQAAAAAAAQ==$0 TABLE 2017-02-07:03:31:11 scott@DJJXIS>flashback table emp to before drop; Flashback complete. 彻底删除表:purge选项 scott@DJJXIS>drop table T purge; Table dropped. scott@DJJXIS>select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- BIN$R+Kc8tW4kBTgVQAAAAAAAQ==$0 TABLE BONUS TABLE DEPT TABLE SALGRADE TABLE 闪回查询 这个可能用EM来做更加方便

Oracle性能优化学习心得byLYH

Oracle性能优化学习心得 一,优化总的原则 1,查看系统的使用情况 2,查看SGA分配情况,结合系统具体情况进行分析。 3,表的设计分析 4,SQL语句分析 实施要则 1,查看系统的使用情况,CPU占用,内存,I/O读取等 Oracle10G提供的Oracle Enterprise Manager图形化工具中的ADDM 和SQL Tuning Advisor等可以方便的查看系统状况 2,OPS上负载均衡,不同查询用不同Instance 3,提供脚本查看SGA使用情况 4,分析SQL执行情况(trace及其他工具) 实施细节 1,外部调整:我们应该记住Oracle并不是单独运行的。因此我们将查看一下通过调整Oracle服务器以得到高的性能。 2,Row re-sequencing以减少磁盘I/O:我们应该懂得Oracle调优最重要的目标是减少I/O。 3,Oracle SQL调整。Oracle SQL调整是Oracle调整中最重要的领域之一,只要通过一些简单的SQL调优规则就可以大幅度地提升SQL语句的性能,这是一点都不奇怪的。 4,调整Oracle排序:排序对于Oracle性能也是有很大影响的。 5,调整Oracle的竞争:表和索引的参数设置对于UPDATE和INSERT的性能有很大的影响。 二,调优分类: 对Oracle数据库进行性能调整时,应当按照一定的顺序进行,因为系统在前面步骤中进行的调整可以避免后面的一些不必要调整或者代价很大的调整。一般来说可以从两个阶段入手: 1、设计阶段:对其逻辑结构和物理结构进行优化设计,使之在满足需求条件的情况下,系统性能达到最佳,系统开销达到最小; 2、数据库运行阶段:采取操作系统级、数据库级的一些优化措施来使系统性能最佳; ㈠设计阶段: A,数据库设计优化 较多修改较少查询的数据和较多查询较少修改的数据分别对待。 a,结构优化 1,根据应用程序进行数据库设计。 即应用程序采用的是传统的C/S两层体系结构,还是B/W/D三层体系结构。不同的应用程序体系结构要求的数据库资源是不同的。 2,遵循3大范式规范化数据结构,减少不必要的冗余。 3,反规范设计,增加必要冗余,提高查询速度。 4,针对变化较少的数据,合理创建临时表和视图,需注意对临时表和视图的及时同步更新

oracle性能优化简介

ORACLE SQL性能优化 我要讲的题目是Oracle SQL性能优化,只是Oracle性能优化中的一项。Oracle的性能优化包含很多方面,比如调整物理存取,调整逻辑存取,调整内存使用,减少网络流量等。这里选择SQL性能优化是因为这部分内容我们测试人员最容易接触到,另外开发人员写SQL脚本时有时很随意,不知不觉就会造成程序性能上的下降。 1.选择最有效率的表名顺序(只在基于规则的优化器中有效) ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表 driving table)将被最先处理. 在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基 础表.当ORACLE处理多个表时, 会运用排序及合并的方式连接它们.首先,扫描第一个表(FROM子句中最后的那个表)并对记录进行派序,然后扫描 第二个表(FROM子句中最后第二个表),最后将所有从第二个表中检索出 的记录与第一个表中合适记录进行合并. 例如: 表 TAB1 16,384 条记录 表 TAB2 1 条记录 选择TAB2作为基础表 (最好的方法) select count(*) from tab1,tab2 执行时间0.96秒 选择TAB2作为基础表 (不佳的方法)

select count(*) from tab2,tab1 执行时间26.09秒 如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. 例如: EMP表描述了LOCATION表和CATEGORY表的交集. SELECT * FROM LOCATION L , CATEGORY C, EMP E WHERE E.EMP_NO BETWEEN 1000 AND 2000 AND E.CAT_NO = C.CAT_NO AND E.LOCN = L.LOCN 将比下列SQL更有效率 SELECT * FROM EMP E , LOCATION L , CATEGORY C WHERE E.CAT_NO = C.CAT_NO AND E.LOCN = L.LOCN AND E.EMP_NO BETWEEN 1000 AND 2000 2.WHERE子句中的连接顺序. ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾.

Oracle性能优化总结

个人理解,数据库性能最关键的因素在于IO,因为操作存是快速的,但是读写磁盘是速度很慢的,优化数据库最关键的问题在于减少磁盘的IO,就个人理解应该分为物理的和逻辑的优化,物理的是指oracle产品本身的一些优化,逻辑优化是指应用程序级别的优化 物理优化: 一、优化存

3.管理员可以通过下述语句来查看数据缓冲区的使用情况 select name,value from v$sysstat where name in('db block gets','consistent gets','physica l reads'); 数据缓冲区使用命中率(physical reads除以db block gets加consistent gets之和)一定要小于10%,否则需要增加数据缓冲区大小 4.管理员可以通过执行下述语句,查看日志缓冲区的使用情况 select name,value from v$sysstat where name in ('redo entries','redo log space requests') 根据查询出的结果可以计算出日志缓冲区的申请失败率:requests除以entries 申请失败率应该解决与0,否则说明日志缓冲区开设太小,需要增加Oracle数据库的日志缓冲区 二、物理I/0的优化 1.在磁盘上建立数据文件前首先运行磁盘碎片整理程序 为了安全地整理磁盘碎片,需关闭打开数据文件的实例,并且停止服务。如果有足够的连续磁盘空间建立数据文件,那么就容易避免数据文件产生碎片。 2.不要使用磁盘压缩(Oracle文件不支持磁盘压缩) 3.不要使用磁盘加密 加密像磁盘压缩一样加了一个处理层,降低磁盘读写速度。如果担心自己的数据可能泄露,可以使用dbms_obfuscation包和label security选择性地加密数据的敏感部分 4.使用RAID raid使用应注意: 选择硬件raid超过软件raid;日志文件不要放在raid5卷上,因为raid5读性能高而写性能差;把日志文件和归档日志放在与控制文件和数据文件分离的磁盘控制系统上 5.分离页面交换文件到多个磁盘物理卷 跨越至少两个磁盘建立两个页面文件。可以建立四个页面文件并在性能上受益,确保所有页面文件的大小之和至少是物理存的两倍。

相关主题
文本预览
相关文档 最新文档