Month: October 2014

  • Oracle Optimizer Hint优化器提示分类表

    Oracle Optimizer Hint优化器提示分类表       分类 9i R1 9i R2 10g R1 10g R2 11g R1 11g R2 优化器模式 ALL_ROWS ALL_ROWS ALL_ROWS ALL_ROWS ALL_ROWS ALL_ROWS FIRST_ROWS(n) FIRST_ROWS(n) FIRST_ROWS(n) FIRST_ROWS(n) FIRST_ROWS(n) FIRST_ROWS(n) CHOOSE CHOOSE RULE RULE RULE ※askmac.cn Hints OPTIMIZER_FEATURES_ENABLE 针对访问路径 FULL FULL FULL FULL FULL FULL access path的HINT ROWID ROWID CLUSTER CLUSTER CLUSTER CLUSTER…

  • PRM-DUL成功案例:帮助北京某政府机构恢复硬盘损坏的Windows服务器上的oracle数据库

    PRM-DUL成功案例:帮助北京某政府机构恢复硬盘损坏的Windows服务器上的oracle数据库。   该数据库版本为11.2.0.1,由于硬盘机械故障 存在较多的坏道,导致ORACLE实例无法正常启动 打开数据库,OPEN会因为ORA-01115、ORA-01110、ORA-27070、OSD-04006、O/S-Error:等错误而终止:   ORA-01115: IO error reading block from file (block # ) ORA-01110: data file 3: ‘ORCL\UNDOTBS01.DBF’ ORA-27070: async read/write failed OSD-04006: ReadFile() 失败, 无法读取文件 O/S-Error: (OS 23) 数据错误(循环冗余检查)。   通过PRM-DUL直接使用字典模式加载所有数据文件后,直接绕过了无法读取的坏道数据块数据,成功加载数据字典,并恢复了用户Schema下的数据:           如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复! 诗檀软件专业数据库修复团队 服务热线 : 13764045638   QQ号:47079569    邮箱:[email protected] ORACLE PRM是诗檀软件独立研发的ORACLE数据库灾难恢复软件,其具有全程图形化界面、简单高效等特点。 欢迎下载使用ORACLE PRM。 下载地址:http://parnassusdata.com/sites/default/files/ParnassusData_PRMForOracle_3206.zip PRM用户使用手册。http://www.parnassusdata.com/sites/default/files/ParnassusData%20Recovery%20Manager%20For%20Oracle%20Database%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C%20v0.3.pdf  

  • 津岛博士的性能讲座 第五回 优化与优化统计的收集

    津岛博士的性能讲座 第5次 优化与优化统计的收集   这次我将对于优化统计的收集进行说明(用Statspack等等收集的话情报会有区别,所以为了生成优化的执行计划所要用到的东西,我将称之为优化统计信息)。最近,我有听到如下关于优化统计信息的问题,我将在此进行说明。   “因为近来变得只有CBO了,所以就必须进行优化统计收集,对象太多的话就不能小看收集时间了。为了缩短收集时间,就缩小样本尺寸,减少收集频率,从而导致执行计划不是最合适的情况,实在让人困扰。请告诉我优化统计的收集的方法。 对此,因为没有说“只要这么做就万事大吉”的方法,我想大家都应该对此挺烦恼的。对此,我整理了我的想法,希望能作为大家的参考。   首先我们说明下到底优化器optimizer是什么。从optimizer statistics 统计信息开始计算成本,然后选出其中成本最低的执行计划来执行就是CBO。(对此,直接由SQL文本所决定的执行计划就是RBO。以前的版本两种说法都可以使用,但现在只推荐用CBO了。 优化器统计信息分为如下几种 Table表统计(行数、块数、平均行长等等) 列统计(基数,NULL数,最大值,最小值,历史数据等等。没有历史数据 情况时,用最小值和最大值将数据分布均一化。) 索引统计(叶块数Leaf block、树tree的高度、集群化洗漱等等索引的有效性。) 系统统计(CPU性能、I/O性能等等)   使用这个概念,CBO就是怎样考虑的(全扫描或索引扫描,以怎样的顺序怎样结合等等),以及如何使得成本最小化(使得访问行数最少)。如果这里出现纰漏的话,就做不出较好的执行计划(比如如图A的的数据分布,因为没有收集偏差部分的历史数据,就无法判断是否均一)。优化统计信息对于性能是非常重要的情报。     图(数据分布) 上述表的行A和行B是分别由各自的索引被制成的状态,假设用下述的1和2的SQL文执行的话,从选择率上来看,使用1的索引的B效率会更好。2是使用A的缩影效率会更好。如果A的数据分布均一化了请选择1的A索引。   那么要怎么去收集优化统计才好呢?基本上,使用如之后所述的准则来实行。因为其中有性能劣化的情况,我将在之后对此进行说明。 使用DBMS_STATS包package   ANALUZE命令也因为下位互换的原因被留下来了,所以请使用DBMS_STATS包package(将正确的统计情报会被效率地收集起来,历史管理也会自动执行。 对每个对象指定合适的收集频率 对于对象的变更量,根据因此优化统计变得不正确的等级来决定收集频率。这时,请注意对于静态的数据不要做没用的收集。我想这样表述大家还是很难明白,通常请按照下面的方法执行。(适合在Oracle里执行。) 存储暂时表和挥发性很高的数据的Table表频繁地大量行的DELETE或者被TRUNCATE的Table)是用动态的采样来执行(删除统计情报后,ROCK可以经常执行动态采样。观察以下的SQL文,我们可以确认统计ROCK状态的对象, Table有合适的样本尺寸统计 因为在Table的统计收集中有必要执行分类处理,大规模的Table之中,这样的操作非常耗费时间。因此我们会设定Table的样本 尺寸来执行。(通常有5%的样本尺寸就没问题了)。 DBMS_STATS包的参数的值也,从Oracle Database 10g开始默认变成是estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE(依存于对象的行数的估计采样尺寸),所以我认为这里不存在问题(收集优化统计的的时候的样本尺寸是用以下SQL文来确认。)   索引中的完全统计 因为索引已经完成分类了(没必要分类处理),可以完全(100%)收集。 从Oracle Database 10g开始,制作索引或者再构筑时,优化统计会被自动收集。(Oracle9i中索引制作或者再构筑时,通过指定COMPUTE STATISTICS选项来完成收集)所以没有必要制作完成后再次收集。 这边的DBMS_STATS 包的参数值也是,Oracle Database 10g默认是cascade=>DBMS_STATS.AUTO_CASCADE(是否有必要去收集索引的统计以及醉适合的样本尺寸是什么是由Oracle决定的),我认为这里没有问题。用以下的SQL文来确认索引的优化统计。     数据中有偏差的列用直方图统计 像在WHERE语句的条件中 使用数据分布中有偏差的列的SQL文有不是最合适的执行计划的可能一样(像上次课程一样,姓是铃木和林的搜索结果不同一样,最适合的实行计划也有不同的可能性,有必要收集正确的数据分布。)…

  • Oracle数据库技术交流和知识转移

      序号 名称 天数 服务对象 特点及主要内容  1 数据库和SQL语言基础课程 2 初级开发人员 面向初级开发人员的入门级课程,讲述数据库基本原理、SQL基本操作,介绍SQL应用优化基本原理、常见性能问题和案例分析 2 PL/SQL语言基础课程 2 初、中级开发人员 介绍PL/SQL概述、PL/SQL变量声明、常用SQL语句编写、条件和循环语句编写、复合数据类型处理、游标使用、异常处理等,并介绍PL/SQL编写经验和相关案例 3 PL/SQL语言高级课程 3 高级开发人员 系统介绍PL/SQL开发高级技术。包括存储过程、函数、包的编写,Oracle主要内置包的介绍,动态SQL语句编写,大对象管理等,并介绍PL/SQL高级技术运用经验和相关案例 4 数据库逻辑设计及建模 2 数据库设计、开发人员和DBA 系统介绍数据库规范化设计理论,并通过SQL Developer Data Modeler工具的运用,结合案例讲述数据流程图设计和实体关系图(E-R)设计过程,提高客户数据库设计水平 序号 名称 天数 服务对象 特点及主要内容  5 数据库物理设计 2 数据库设计、开发人员和DBA 全面介绍Oracle数据库物理设计过程,包括表空间、表、索引等物理设计,适合于海量数据管理的分区、ASM等技术和方案设计,10g/11g相关新特性,并介绍若干实际案例 6 DBA基础课程 3 初、中级DBA 介绍Oracle数据库体系结构,以及DBA日常运行维护操作。如数据库对象管理、备份/恢复、安全性基本管理、网络管理、性能监控和分析,以及AWR、ADDM等基本工具使用和分析 7 DBA高级课程 3 高级DBA 面向高级DBA,结合大量实战案例,在系统级和SQL应用级分别介绍性能优化高级技术,并讲述分区技术方案,故障诊断方法和实用技巧,以及Oracle最大高可用性(MAA)体系结构及技术方案 8 SQL应用优化高级课程 3 中高级DBA和应用开发人员 基于Oracle性能优化方法论,结合大量实战案例,系统介绍SQL应用优化技术,如索引策略、优化器原理,针对OLTP和OLAP不同类型系统的优化技术运用过程等  …

  • ORACLE DB数据库常见问题解决及诊断技巧集锦 – ORACLE DBA故障修复必备手册

    ORACLE DBA故障修复必备手册 本文地址:https://www.askmac.cn/archives/oracle-troubleshooting.html     关于Oracle数据库问题诊断信息获取 在对Oracle数据库相关情况及问题进行诊断及信息捕获时, 请:   请确认MAX_DUMP_FILE_SIZE 参数设置, 这将避免用以诊断的追踪文件(trace file)因为空间不足而被截断 !!!   上传alert.log文件。11g中,文本形式的alert.log是放在ADR home相应”trace”目录下。而XML形式的alert.log则是放在ADR home下的”alert”目录下。如需验证ADR home确切位置,可以执行”select * from v$diag_info” 并从其输出中找到。 请看下页诊断追踪文件目录地址信息。   获取RDA收集信息 (版本4.2x以上更佳). 请查看MOS文档 330363.1 及 314422.1以了解更多信息。   请对所遇问题提供详尽描述以便于分析并更快找到问题原因。 对于 较为严重的问题, 请提供: 相关业务及技术评估 两名24×7联系人,并提供相关人员邮件及电话联系方式(askmac.cn)。 一名相关管理联系人,需提供其邮件及电话联系方式。   问题细节描述: 受影响日期时间 相关报错号及其文本信息。 相关问题影响 – 数据库实例奔溃, 进程失败等.? 错误出现频率? 错误是否可重演。 错误是否总在特定日期时间发生? 错误发生是否与数据库相关活动有关?如备份或高负载处理时. 错误是否总是来自于某个应用或某位用户? 第一次产生此错误是在何时?当时是否正在做何改动? 当时是否有其他错误发生(例如ORA-7445 或…

  • PRM-DUL成功助力安徽某乙方恢复了用户数据库

    PRM-DUL成功助理安徽某乙方恢复了用户涉及到大量图片BLOB的数据库,该数据库由于存储异常且无任何备份导致无法打开和恢复:   最新版PRM-DUL下载地址: http://parnassusdata.com/sites/default/files/ParnassusData_PRMForOracle_3206.zip 免费的PRM-DUL License :http://www.parnassusdata.com/zh-hans/node/122     

  • 【Oracle数据库恢复】ORA-00600 [4194]: 内部错误代码, 参数: [4194]又一例

    某用户11.1.0.6的系统在系统断电重启后遭遇了ORA-600 [4194]错误:   Starting background process QMNC Wed Dec 10 21:26:24 2014 QMNC started with pid=21, OS id=2932 Errors in file d:\app\administrator\diag\rdbms\erp\erp\trace\erp_smon_3612.trc (incident=33600227): ORA-00600: 内部错误代码, 参数: [4194], [60], [59], [], [], [], [], [] Incident details in: d:\app\administrator\diag\rdbms\erp\erp\incident\incdir_33600227\erp_smon_3612_i33600227.trc Doing block recovery for file 3 block 4378 Block recovery from logseq 1, block 127 to scn…

  • Oracle 12.1.0.2新特性 Approximate Count Distinct

    [oracle@PD009 ~]$ grep -i approx_count oracle.str settings for approx_count_distinct optimizations qkaGBPushdown: estimated memory without GPD = groupSize (%.2f) * aclsum (%u) = %.2f; estimated memory with GPD = optHllEntry (%u) * # of approx_count_distinct (%d) * parallelDegree (%.0f) = %.2f APPROX_COUNT_DISTINCT APPROX_COUNT_DISTINCT APPROX_COUNT_DISTINCT _approx_cnt_distinct_gby_pushdown = choose _approx_cnt_distinct_optimization = 0 alter system flush shared_pool; alter session…

  • PRM: Warning:scaned 10MB data, couldn’t find file header

    PRM: Warning:scaned 10MB data, couldn’t find file header ,如果在使用PRM-DUL过程中遇到了该问题,则可能是:   1、选择了错误的 BLOCK_SIZE   2、选择了错误的endian ,AIX、HPUX 、Solaris Sparc上的datafile均为Big Endian。 其他的操作系统Windows、Linux、Solaris X86基本都为Little Endian,如上图   3、启动PRM的用户没有足够的权限读取数据文件,这个情况下WIndows下可能出现   4、加入的数据文件的文件头真的丢失 或者损坏了,这个情况请联系我们  [email protected]  

  • more about osysmond.bin

    We have some questions on this guess: 1.What kind of operation osysmond.bin will do when a new disk device is scaned by os? Currently osysmond detects disks only when it starts. If osysmond is running and a new disk is added to system, Osymond will not detect it right away. It will detect it only…