sys_context获取当前会话的属性
修改 USERENV('LANG')返回值SQL> ALTER SESSION SET NLS_LANGUAGE='AMERICAN';Session altered.SQL> select USERENV('LANG') from dual;USERENV('LANG')----------------------------------------------------USSQL> ALTER SESSION SET NLS_LANGUAGE='SIMPLIFIED CHINESE';会...
定时收集gc事件的脚本
通过该过程定时收集产生gc event的语句.create or replace procedure shsnc.gc_event(TBS_NAME VARCHAR2) is T_TABLE VARCHAR2(100) := 'GC_EVENT_TAB'; v_sql01 VARCHAR2(2000); v_sql02 VARCHAR2(2000); v_sql03 VARCHAR2(2000); v_sql04 VARCHAR2(2000); v_sql05 VARCHAR2(2...
shell脚本:$(())与$()还有${}的区别
我们上一章介绍了 ( ) 与 { } 的不同,这次让我们扩展一下,看看更多的变化:$( ) 与 ${ } 又是啥玩意儿呢?在 bash shell 中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的。所谓的命令替换与我们第五章学过的变量替换差不多,都是用来重组命令行:* 完成引号里的命令行,然后将其结...
linux crontab
基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令 crontab文件的一些例子: 30 21 * * * /usr/local/etc/rc.d/li...
一次direct path read 故障处理
2014年11月17日16:30-17:30时营销数据库(toyx1a)出现在大量的direct path read、direct path read temp、direct path write temp、db file scattered read、read by other session事件。通过分析出现所有的等待事件都集中在表UTL.T_C_L_CUST_INFO_M上。ASH 报告中direct path read在整个等待事件里占比为26.24%...
oracle对非使用绑定变量的语句去重
通过如下过程可以对非使用绑定变量的语句去重create or replace procedure query_sql is cursor fms is select FORCE_MATCHING_SIGNATURE as fms, count(1) as count from sys.LARGE2S_TABLE where FORCE_MATCHING_SIGNATURE > 0 and FORCE_MATCHING_SIGNATURE != EXACT_M...
查找数据库里执行大于2s的语句
使用该过程可以定期查找出数据库里执行大于2s的语句CREATE OR REPLACE procedure SYS.versiononline_larges2s_sql is version_table varchar2(50); TEMPCOUNT NUMBER; T_TABLE VARCHAR2(100) := 'LARGE2S_TABLE02'; v_sql01 ...
awk
awk 用法:awk ' pattern {action} ' 变量名 含义 ARGC 命令行变元个数 ARGV 命令行变元数组 FILENAME当前输入文件名 FNR 当前文件中的记录号 FS 输入域分隔符,默认为一个空格 RS 输入记录分隔符 NF 当前记录里域个数 NR...
Troubleshooting High Redo Generation Issues
适用于:该咱方法适合所有的版本,及所有平台。类型:通过产生大量redo的情况共有两类,1.在每天的特定时间内。2.归档突发性的增加在这两种情况下,我们首先要做的就是检查数据库级别是否有做过修改操作(如修改参数及一些其它的运维操作)。再者就是对应用级另进行检查(是否增加了应用程序、或修改了代码、及用户...
How to Find Sessions Generating Lots of Redo or Archive logs
假如需要我们排查哪个会话产生大量redo的时候,通常有以下两种做法。由于一个事物产生undo的时候同时也产生redo因此该种做法也适合排查undo的使用情况。The methods are: 1) Query V$SESS_IO. This view contains the column BLOCK_CHANGES which indicates how much blocks have been changed by the session. High ...
通过v$sql_bind_capture和dba_hist_sqlbind关联诊断gc事件
通常RAC集群里面出到GC事件,我们需要查找出哪个语句导致,这样的情况下我可以考虑用绑定变量值来判断SELECT SQL_ID, NAME, VALUE_STRING, LAST_CAPTURED FROM DBA_HIST_SQLBIND WHERE SQL_ID in (select distinct sql_id from v$session where event = '&event') &...
ogg GGS ERROR 500 Could not find archived log
今天客户一个OGG extract进程STOPED了,查看日志报归档无法找见,出现此种情况往往是归档已经备走或被删除。通常解决的办法有三种:1.查看要传输的数据是否正常。如果正常可以考虑修改extract 进程为begin now来从当前时间开始做捕获或传输。2.如果数据库不准确,需要采用RMAN的方式,还原归档来达到目的。3.修改Recovery C...
oracle 查找未使用绑定变量的sql
从10G开始可以通过如下方式查找未使用绑定变量的语句select FORCE_MATCHING_SIGNATURE, count(1) from v$sql where FORCE_MATCHING_SIGNATURE > 0 and FORCE_MATCHING_SIGNATURE != EXACT_MATCHING_SIGNATURE group by FORCE_MATCHING_SIGNATUREhaving count(1) > &a order by 2;&...
评估失败事物回滚时间
set serveroutput onset feedback offpromptprompt Looking for transactions that are rolling back ...promptdeclare cursor tx is select s.username, t.xidusn, t.xidslot, t.xidsqn, &...
oracle 时间函数sysdate
oracle 时间函数(sysdate)1:取得当前日期是本月的第几周SQL> select to_char(sysdate,'YYYYMMDD W HH24:MI:SS') from dual;TO_CHAR(SYSDATE,'YY-------------------20030327 4 18:16:09SQL> select to_char(sysdate,'W') from dual;T-4...
oracle 9i row cache objects处理案例
概述:一套系统,经持续观察每晚21:00-22:00出现大批量的latch free等待事件,该事件最初是在9月25日部署完短信监控时发现。发现时已及时向领导汇报,经应用厂家确认该事件属于常态化,具体原因是由于每晚21:00-22:00点信用库要进行出账(灵活账期计算),出账其间需要进行大批量的dml操作。因此产生大量的latch free...
latch:cache buffers chains案例
今天一数据库生产大量的latch:cache buffer chains等待事件,且CPU 100%。通过ASH发现该时间段发现latch:cache buffer chains对应的p1为504403190311174992,且对语句为acsdn1wgy2fg7,代入p1转后后的16进制(p1raw)值到x$bh视图里查找出来的热块正好是该语句关联的表。因此最后通过优化此语句来解决此问题Top User Even...
使用strace+pstack利器分析程序性能
有时我们需要对程序进行优化、减少程序响应时间。除了一段段地对代码进行时间复杂度分析,我们还有更便捷的方法吗?若能直接找到影响程序运行时间的函数调用,再有针对地对相关函数进行代码分析和优化,那相比漫无目的地看代码,效率就高多了。将strace和pstack工具结合起来使用,就可以达到以上目的。strace跟踪程序...
oracle 释放undo空间
当undo表空间满的情况下,我们切换了undo空间后,但该空间还是处理100%状态,如果不想让他100%,有没有活动事物的情况下.我们可以采用如下方式,对回滚段进行删除操作.来达到释放空间的作用.1.alter system set "_smu_debug_mode" = 4 scope = memory sid='';2.select 'alter rollback segment "' || s.segment_name || '" of...
oracle undo 使用分析
当undo表空间满了的时间,查询如下内容:select sum(bytes) from dba_free_space where tablespace_name='';select sum(bytes) from dba_data_files where tablespace_name='';select sum(blocks) "UNEXPIRED BLOCKS" from dba_undo_extents where tablespace_name='UN...