[20210407]完善ti.sql脚本.txt

来源:这里教程网 时间:2026-03-03 16:34:51 作者:

[20210407]完善ti.sql脚本.txt --//tanel poder提供一个脚本ti.sql,更改跟踪文件名称。不过他的脚本要调用saveset,loadset保存和加载sqlplus的设置。 --//首先我的测试他的脚本确实有用,我以前为了避免跟踪文件的混乱,经常选择退出再登录,而且这样的缺点就是不好做系列分析比较。 --//主要还是文件名比较混乱。 --//但是在测试ti.sql时,我个人不是很习惯一些操作: 1.环境: SCOTT@book> @ ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production SYS@book> @ ti Enter value for _ti_sequence: old   1: select trim(to_char( &_ti_sequence + 1 , '0999' )) "_ti_sequence" from dual new   1: select trim(to_char(  + 1 , '0999' )) "_ti_sequence" from dual old   1: alter session set tracefile_identifier="&_ti_sequence" new   1: alter session set tracefile_identifier="0001" New tracefile_identifier=/u01/app/oracle/diag/rdbms/book/book/trace/book_ora_33696_0001.trc SYS@book> @ ti old   1: select trim(to_char( &_ti_sequence + 1 , '0999' )) "_ti_sequence" from dual new   1: select trim(to_char( 0001 + 1 , '0999' )) "_ti_sequence" from dual old   1: alter session set tracefile_identifier="&_ti_sequence" new   1: alter session set tracefile_identifier="0002" New tracefile_identifier=/u01/app/oracle/diag/rdbms/book/book/trace/book_ora_33696_0002.trc --//首先要求要给_ti_sequence赋值,当然不赋值也可以。很讨厌的是我给盲打几个回车。 --//实际上主要问题,我改名目录里面的login.sql文件,这样启动sqlplus时不会调用。里面会调用init.sql --//里面就存在_ti_sequence的定义。 -- some internal variables required for TPT scripts     define _ti_sequence=0     define _tptmode=normal     define _xt_seq=0 --//如果我改名login.sql回来,每次登录就会显示如下: USERNAME             INST_NAME            HOST_NAME                 SID   SERIAL#  VERSION    STARTED  SPID            OPID  CPID            SADDR            PADDR -------------------- -------------------- ------------------------- ----- -------- ---------- -------- --------------- ----- --------------- ---------------- ---------------- SYS                  book                 xxxxydg4                  48    417      11.2.0.4.0 20210406 34253           27    34252           0000000086382890 000000008620F338 SYS@book> @ ti New tracefile_identifier=/u01/app/oracle/diag/rdbms/book/book/trace/book_ora_34253_0001.trc SYS@book> @ ti New tracefile_identifier=/u01/app/oracle/diag/rdbms/book/book/trace/book_ora_34253_0002.trc --//我个人并喜欢这样操作。最简单的方式调用前执行改名的login.sql,在调用ti。 SYS@book> @ login.sql.old USERNAME             INST_NAME            HOST_NAME                 SID   SERIAL#  VERSION    STARTED  SPID            OPID  CPID            SADDR            PADDR -------------------- -------------------- ------------------------- ----- -------- ---------- -------- --------------- ----- --------------- ---------------- ---------------- SYS                  book                 xxxxydg4                  48    419      11.2.0.4.0 20210406 34299           27    34298           0000000086382890 000000008620F338 SYS@book> @ ti New tracefile_identifier=/u01/app/oracle/diag/rdbms/book/book/trace/book_ora_34299_0001.trc --//我决定还是自己改写一个。  $ cat tix.sql --@@saveset column _ti_sequence noprint new_value _ti_sequence set feedback off heading off select trim(to_char( &&_ti_sequence + 1 , '0999' )) "_ti_sequence" from dual; alter session set tracefile_identifier="&&_ti_sequence"; set feedback on heading on set termout off column tracefile noprint new_value trc         select value ||'/'||(select instance_name from v$instance) ||'_ora_'||                (select spid||case when traceid is not null then '_'||traceid else null end                 from v$process where addr = (select paddr from v$session                                                  where sid = (select sid from v$mystat                                                             where rownum = 1                                                        )                                             )                ) || '.trc' tracefile         from v$parameter where name = 'user_dump_dest'; set termout on --@@loadset prompt New tracefile_identifier=&&trc col tracefile clear set feedback 6 heading on --//将define _ti_sequence=0定义写入文件: --///u01/app/oracle/product/11.2.0.4/dbhome_1/sqlplus/admin/glogin.sql就ok了。 --//不过12c以后这个脚本就变得无用了,指示的目录名字不对。主要是oracle转储不再放在user_dump_dest定义的目录。

相关推荐