Author: mac

  • 了解你所不知道的SMON功能(十一):OFFLINE UNDO SEGMENT

    SMON这个老牌的后台关键进程的作用还包括对UNDO/ROLLBACK SEGMENT的维护, 这种维护主要体现在2个方面: OFFLINE和SHRINK  UNDO/ROLLBACK SEGMENT, 今天我们主要介绍OFFLINE ROLLBACK SEGMENT。   你肯定要问,Oracle为什么OFFLINE UNDO/ROLLBACK SEGMENT? 最主要的目的是减轻高并发事务环境中对UDNO SPACE撤销空间使用的压力。   触发场景   在10g之前的9i中每12个小时SMON会根据V$UNDOSTAT中记录来决定在现有基础上要OFFLINE多少个UNDO SEGMENT,又要保留多少个UNDO SEGMENT; 在9i中被OFFLINED UNDO SEGMENT 还会被SMON DROP掉,以进一步回收空间。   具体保留多少个UNDO SEGMENT,取决于过去12个小时内的V$UNDOSTAT动态视图记录的最大并发事务数量在加上1,具体公式可以参考下面的SQL:     SQL> select max(MAXCONCURRENCY)+1 from v$undostat where begin_time> (sysdate-1/2); MAX(MAXCONCURRENCY)+1 ——————— 4   若你在alert.log中发现类似以下的信息则说明OFFLINE UNDO SEGS已经在你的系统中发生过了:   SMON offlining US=13 Freeing IMU pool for usn…

  • 11g新特性:RDBMS Component TRACE

    11g新特性UTS TRACE是比10g中引入的KST TRACE更强力内部诊断工具, 有了UTS和KST这2现代化个debugger工具, 我们差不多可以扔掉gdb和dtrace的拐杖了。   今后会继续介绍UTS和KST TRACE的使用方法,让任何人都有机会了解Oracle的内部运行原理。   以下是UTS trace events 的列表,可以利用oradebug doc component rdbms列出:   SQL> select * from v$version; BANNER ——————————————————————————– Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit Production PL/SQL Release 11.2.0.3.0 – Production CORE    11.2.0.3.0      Production TNS for Linux: Version 11.2.0.3.0 – Production NLSRTL Version 11.2.0.3.0 – Production SQL>…

  • SCN Headroom与时光倒流到1988年的Oracle数据库

    最近一阵关于scn headroom的讨论很热,  这是由于在最新的2012 Apr的PSU中例如10.2.0.5上的PSU 13632743和 patch  13916709: SCN: HIGH CALLS TO KCMGAS AFTER APPLYING SCN PATCHES 中引入了对scn增长过快的FIX修复。 Oracle SCN(System Change Number)也叫做系统变更号,Oracle中的Commit操作与SCN紧密相关。 引入SCN的最根本目的在于: 为读一致性所用 为redolog中的记录排序,以及恢复     SCN由SCN Base和Scn Wrap组成,是一种6个字节的结构(structure)。其中SCN Base占用4个字节,而SCN wrap占用2个字节。但在实际存储时SCN-like的stucture常会占用8个字节。   ub4 kscnbas ub2 kscnwrp struct kcvfhcrs, 8 bytes                 @100                              Creation Checkpointed at scn ub4 kscnbas                        @100      0x000a8849              www.askmac.cn ub2 kscnwrp                        @104      0x0000  …

  • Script:诊断SYSAUX表空间使用情况

    Script:以下脚本可以用于诊断SYSAUX表空间使用情况   ./opatch lsinventory -detail @?/rdbms/admin/awrinfo select dbms_stats.get_stats_history_retention from dual; select dbms_stats.get_stats_history_availability from dual; select min(SAVTIME), max(SAVTIME) from WRI$_OPTSTAT_TAB_HISTORY; select min(SAVTIME), max(SAVTIME) from sys.wri$_optstat_ind_history; select min(SAVTIME), max(SAVTIME) from sys.wri$_optstat_histhead_history; select min(SAVTIME), max(SAVTIME) from sys.wri$_optstat_histgrm_history; select min(SAVTIME), max(SAVTIME) from sys.wri$_optstat_aux_history; select count(*) from sys.wri$_optstat_tab_history; select count(*) from sys.wri$_optstat_ind_history; select count(*) from sys.wri$_optstat_histhead_history; select count(*) from sys.wri$_optstat_histgrm_history;…

  • 【Exadata一体机】Dcli工具使用

    Dcli工具可以从一台服务器上发起命令控制多台服务器, 但是dcli不支持远程应用使用交互式的方式。   以下为Dcli的语法:   –version Shows the version number of the program and then exits. -c cells Specifies a comma-delimited list of target cells to which commands are sent. -d destfile Specifies the target destination directory or file on remote cells to be used when copying files or directories using the -f option. -f…

  • Oracle备用数据库恢复过程中解决ORA-752 或 ORA-600[3020]

      如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复! 诗檀软件专业数据库修复团队 服务热线 : 13764045638 QQ号:47079569 邮箱:[email protected] ORA-00752: 恢复操作检测到数据块写入丢失 ORA-00752: recovery detected a lost write of a data block oerr ora 752 00752, 00000, “recovery detected a lost write of a data block” // *Cause: A write of a data block to storage was lost during // normal database operation on the primary database.…

  • 【ASM内部原理】_asm_kill_unresponsive_clients & _asm_healthcheck_timeout

    SQL> SQL> select * From V$VERSION; BANNER ——————————————————————————– Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit Production PL/SQL Release 11.2.0.3.0 – Production CORE 11.2.0.3.0 Production TNS for Linux: Version 11.2.0.3.0 – Production NLSRTL Version 11.2.0.3.0 – Production SQL>select pid,pname from v$process PID PNAME ———- —– 1 2 PMON 3 PSP0 4 VKTM 5 GEN0…

  • 如何找回被create or replace覆盖的PL/SQL对象

    有同学在T.askmac.cn上提问关于10gR2下原存储过程procedure,因为开发人员误操作create or replace 使用同样的过程名导致原存储过程被覆盖,希望通过Oracle技术手段在不停机的前提下找回原存储过程procedure。   这里Maclean 提供2种10gR2以后可以在线挽救被覆盖PL/SQL对象的方案:   方案1: 利用Flashback Query 闪回特性,该方案并不要求数据库已启用flashback database,唯一和最关键的要求是create or replace时递归SQL删除source$数据字典基础表相关的undo data,不要因为时间过久而被重用:   SQL> select * from V$version; BANNER —————————————————————- Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 – 64bi PL/SQL Release 10.2.0.5.0 – Production CORE 10.2.0.5.0 Production TNS for Linux: Version 10.2.0.5.0 – Production NLSRTL Version 10.2.0.5.0 – Production SQL> select…

  • 【教学视频】Maclean教你一步一步使用Vbox在Linux 5上安装Oracle 11gR2 RAC

      https://zcdn.askmac.cn/dbDao_install%2011gr2%20RAC%20on%20Linux%205.7%20in%20vbox.pdf

  • 微观ORACLE(一):PMON Release Lock

    我们在学习Oracle基础知识的时候肯定了解过PMON后台进程的功能,包括轮训其他ORACLE PROCESS,清理cleanup dead process并释放锁release enqueue lock ,及清理cleanup latch。   虽然这些理论在你耳边萦绕了千百回, 但你是否有亲眼见证过一次Pmon cleanup dead process并release lock呢?大多数人可能没有。   微观Oracle=> MicroOracle, Maclean带领你见证微观视角下的Oracle behavior:     SQL> select * from v$version; BANNER ——————————————————————————– Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit Production PL/SQL Release 11.2.0.3.0 – Production CORE    11.2.0.3.0      Production TNS for Linux: Version 11.2.0.3.0 – Production NLSRTL…