Author: mac

  • ora-00704,ora-00604,ora- 01555的错Oracle数据库损坏恢复需求

    如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复! 诗檀软件专业数据库修复团队 服务热线 : 13764045638 QQ号:47079569 邮箱:[email protected]     查询被删除的数据,备份工具使用rman, 数据库备份到磁带上。 环境: 生产库 oracle10204 集群 + AIX5.3 +裸设备 测试库 oracle10204 单实例 + AIX5.3 +裸设备 问题描述: 测试库配置TSM连接到磁带上,直接通过磁带恢复到测试库,在恢复阶段,数据文件已成功restore到测试库上, 但archivelog没有restore过来,找不到磁带上的归档,数据库无法recover,由于备份保留天数65天,不存在归档被删除的可能; 后面尝试在没有recover的情况下通过修改参数_allow_resetlogs_corruption=true强制打开数据库,报ora-00704,ora–00604,ora– 01555的错, 然后通过设置event事件推进SCN值,又通过oradebug修改scn值,仍然报ora-00704,ora–00604,ora–01555的错,问题无 法解决。   此场景中一般需要用到 bbed修改数据块包括例如undo等数据块来绕过部分系统检测,故一般的技术人员无法操作,需要对oracle底层有所了解的工程师支持。

  • SQL Performance Analyzer SPA常用脚本汇总

    SPA常用脚本汇总 附件为 一个SPA报告 spa_buffergets_summary   SQL 性能分析器 SQL Performance Analyzer SPA Oracle Database 11g 引入了 SQL 性能分析器;使用该工具可以准确地评估更改对组成工作量的 SQL 语句的影响。SQL 性能分析器可帮助预测潜在的更改对 SQL 查询工作量的性能影响。这种功能可向 DBA 提供有关 SQL 语句性能的详细信息,例如,执行前后的统计信息,提高或降低性能的语句。这样一来,您就可以执行诸如以下操作的操作:在测试环境中进行更改,以确定数据库升级是否会改进工作量性能。   11g 的新增功能 目标用户:DBA、QA、应用程序开发人员 帮助预测系统更改对 SQL 工作量响应时间的影响 建立不同版本的 SQL 工作量性能(即 SQL 执行计划和执行统计信息) 以串行方式执行 SQL(不考虑并发性) 分析性能差异 提供对单个 SQL 的细粒度性能分析 与 SQL 优化指导集成在一起以优化回归 SQL 性能分析器:使用情形 SQL 性能分析器可用于预测和防止会影响 SQL 执行计划结构的任何数据库环境更改所带来的潜在性能问题。这些更改可以包括(但不限于)以下任何一种更改: 数据库升级 实施优化建议 更改方案 收集统计信息…

  • 为什么说log file sync(其实是写redo慢)会造成buffer busy wait?

    在《gc buffer busy/gcs log flush sync与log file sync》一文中我介绍了 redo flush慢造成RAC中gc buffer busy争用的原理, 而在《【技术分享】开Oracle调优鹰眼,深入理解AWR性能报告》 中我又介绍了 log file sync(其实本质是lgwr 写redo慢)也会造成单实例single instance环境中的buffer busy wait等待, 这是为什么呢?   我们来做一个演示说明该问题:   示例用表: conn maclean/oracle create table  maclog (t1 int);   打开一个Session A 并获得它的OS进程号 [oracle@vrh8 ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.5.0 – Production on Sat Mar 9 09:32:25 2013 Copyright (c)…

  • 解决ORACLE报ora-600[2662]错误: 数据块的SCN大于当前的SCN

    如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复! 诗檀软件专业数据库修复团队 服务热线 : 13764045638 QQ号:47079569 邮箱:[email protected]       目的: 这篇文章讨论的是内部错误“ora-600[2662]”的含义和解决办法,只能对下列版本有指导作用。   报错: 格式:ora-600[2662][a][b][c][d][e] 版本:6.0到12.1   描述: 数据块的SCN大于当前的SCN。 主要是和存储在UGA变量中的dependent SCN进行比较,如果当前的SCN小于它,数据库就会产生这个ORA-600 [2662]的错误了。 参数: Arg [a] Current SCN WRAP Arg [b] Current SCN BASE Arg [c] dependent SCN WRAP Arg [d] dependent SCN BASE Arg [e] Where present this is the DBA where the dependent SCN…

  • Oracle 使用allow_resetlogs_corrution在自动undo管理下强制开库

    如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复! 诗檀软件专业数据库修复团队 服务热线 : 13764045638 QQ号:47079569 邮箱:[email protected]     尝试强制打开数据的步骤: 1)在数据库关闭的时候备份数据库 如果在进行后续操作之前 ,你没备份的话,可能会由于其他操作而丢失数据库。 2)如果你的数据文件是不同时间点的,你最好使用和最老数据文件相近时间错的system表空间数据文件。这个会减少在开库节点bootstrap节点出现错误的机会。 3)编辑你的*init<sid>.ora文件来变更undo_management和增加2个参数: •将undo_management=auto改变到undo_management=manual •移除或注释掉 undo_tablespace 和undo_retention •增加_allow_resetlogs_corruption=true,_corrupted_rollback_segments=(由逗号组成的自动undo端的列表) 例如: _corrupted_rollback_segments=(SYSSMU1$,SYSMU2$, SYSMU3$, SYSMU4$, SYSMU5$, SYSMU6$, SYSMU7$ SYSMU8$, SYSMU9$, SYSMU10$)   注意:在alert.log中会告诉你 哪些自动undo段被使用。使用SYSS搜索。如果alter.log中没找到。格式是_SYSMU_$,例如: _SYSSMU1_3423929671$ _SYSSMU2_3471197032$ _SYSSMU3_1940572779$ _SYSSMU4_703930491$ _SYSSMU5_2293911943$ _SYSSMU6_2782670761$ _SYSSMU7_3176421677$ _SYSSMU8_1585569843$ _SYSSMU9_1242704454$ _SYSSMU10_777531512$   在UNIX中,你可以使用下列命令来得到undo段的名称: strings SYSTEM01.DBF|grep _SYSSMU | awk -F “$” ‘{print $1″$”}’ |…

  • Java Jdbc减少交互提升批量处理性能,到底该如何优化才好?

    不拾掇Java有好几年了(N>3吧),之所以写这篇文章其实是纯粹是为了给开发人员一些好的使用jdbc真正去减少交互和提升批量处理batch update性能的例子;  如果你是DBA,那么工作之余你可以把这篇文章推荐给开发看一下, 也许这些例子他已经知道了, 倘若他不知道,那么也算一种福利了。   能考虑到在应用程序client和 数据库服务器DB server间减少交互时间,批量更新处理的绝对是有助于重构和优化代码的好同志;  但这种优化一定要注意方法,如果是自行去重新发明一种轮子的话, 效果往往是不如人意的。   例如Tom Kytes曾在他的著作里提到这样2个例子,他去协助开发的2家企业的在研发应用的过程中,分别通过应用程序自己去在Oracle中实现了user profile和advanced queue的功能, 有一定经验的朋友肯定会知道这2样功能其实Oracle Enterprise Edition企业版软件都是原生态支持的,而自己在DB中去实现它们,最终结果自然是项目的失败。   类似的有朋友在开发过程中,为了优化Oracle JDBC中的批量更新update操作,想到了这样的方式,例如要插入INSERT 15000行数据,则在JAVA层面 将15000条INSERT语句拼接在一个PL/SQL block里,这15000条SQL涉及到的变量仍使用PreparedStatement.setXXX方法带入,其在JAVA层面的SQL STRING,如:     begin –我是一个拼接起来的SQL匿名块 insert into insertit values(?,?,?,?); insert into insertit values(?,?,?,?); insert into insertit values(?,?,?,?); insert into insertit values(?,?,?,?); insert into insertit values(?,?,?,?); insert into insertit values(?,?,?,?); insert…

  • 在表空间有足够free space的情况下出现ORA-1652

    版本10.2.0.5之前存在这样的问题,当打开recyclebin回收站功能的情况下, Tablespace 上有足够的Free Space空闲空间,但是因为这些Free Space属于回收站中的对象,在并行INSERT数据 或者并行CTAS的情况下 PARALLEL启用的情况下可能遇到ORA-1652错误:     oracle@localhost:~$ oerr ora 1652 01652, 00000, “unable to extend temp segment by %s in tablespace %s” // *Cause: Failed to allocate an extent of the required number of blocks for // a temporary segment in the tablespace indicated. // *Action: Use ALTER TABLESPACE ADD DATAFILE statement…

  • 解决ORACLE在不同服务器上恢复数据库副本报ORA-1113和ORA-1110错误

    如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复! 诗檀软件专业数据库修复团队 服务热线 : 13764045638 QQ号:47079569 邮箱:[email protected]     适用于 Oracle数据库 –企业版 – 9.2.0.5 版本及更高版本 本文档内容适用于各个平台   症状 将数据库设置成备份模式,复制所有数据文件和重建控制文件,并应用几个归档日志文件让数据库比备份模式时更新一些,当尝试用alter database open resetlogs打开数据库时报下面错误: SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-01113: file 1 needs media recovery ORA-01110: data file 1: ‘/oracle/PRDDAT/DATA1/tables/PRDDAT.SYSTEM.data1.dbf’ 下面的查询和结果: select distinct(fhscn) from x$kcvfh; just one value…

  • 解决在IBM AIX on POWER Systems上的ORA-00204,ORA-00202,ORA-27072错误

    如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复! 诗檀软件专业数据库修复团队 服务热线 : 13764045638 QQ号:47079569 邮箱:[email protected]       适用于 Oracle数据库 – 企业版- 11.1.0.7 版本和更高版本 IBM AIX on POWER Systems (64-bit) 症状 当你执行下面查询时发现问题: SQL> select group#||’,’||members||’ , ‘||status from v$log order by 1; select group#||’,’||members||’ , ‘||status from v$log order by 1 * ERROR at line 1: ORA-00204: error in reading (block 1, #…

  • ORACLE警告日志报ORA-00204,ORA-00202, ORA-15081错误影响ASM的访问

    如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复! 诗檀软件专业数据库修复团队 服务热线 : 13764045638 QQ号:47079569 邮箱:[email protected]       适用于 Oracle数据库 – 企业版 – 10.1.0.2 到11.2.0.3 版本[Release 10.1 to 11.2] 本文档内容适用于各个平台I 症状 RAC – 2 node – 11.2.0.3.0 (asm) – 11.2.0.3.0 (db) – Linux x86-64 (RHEL5) 远程连接SQL*Plus和访问数据库时报下面的错误:Getting the below error when connected to SQL*Plus remotely and accessing the database: $sqlplus Connected to: Oracle Database…