10g以前,对别的session做10046跟踪,sql_trace跟踪需要用到dbms_system这个包,可以我在10gR2官方文档上面没有找到这个包的解释,然而这个包很重要,下面收集一些有用的过程,有备无患。
dbms_system.get_env(var
IN VARCHAR2, val OUT VARCHAR2)
这个过程返回ORACLE的环境变量
例如:
SQL> declare env varchar2(200);
2 begin
3 dbms_system.get_env('ORACLE_HOME',env);
4 dbms_output.put_line(env);
5 end;
6 /
C:/oracle/product/10.2.0/db_1 ------我的ORACLE_HOME
PL/SQL procedure successfully completed
SQL> declare sid varchar2(200);
2 begin
3 dbms_system.get_env('ORACLE_SID',sid);
4 dbms_output.put_line(sid);
5 end;
6 /
robinson-------我的ORACLE_SID
PL/SQL procedure successfully completed
dbms_system.read_ev
(iev IN BINARY_INTEGER, oev OUT BINARY_INTEGER)
这个过程返回events
level.
例如:
SQL>
declare lev integer;
2 begin
3 dbms_system.read_ev(10046,lev);
4 dbms_output.put_line(lev);
5 end;
6 /
0---0表示没有设置10046跟踪级别,因为10046级别只有1,4,8,12
PL/SQL procedure successfully completed
dbms_system.set_sql_trace_in_session(
sidNUMBER,
serial# NUMBER,
sql_trace BOOLEAN);
这个过程就是我们最常用的给别的SESSION 设置sql_trace跟踪了。
例如:
exec dbms_system.set_sql_trace_in_session(159,15,true);---开启SQL_TRACE跟踪
exec dbms_system.set_sql_trace_in_session(159,15,false);---关闭SQL_TRACE跟踪
dbms_system.set_ev(
si IN BINARY_INTEGER, -- session id
se IN BINARY_INTEGER, -- session serial number
ev IN BINARY_INTEGER, -- event number between 10000 and 10999
le IN BINARY_INTEGER, -- event level
nm IN VARCHAR2);
这个过程就是我们常用的给别的session设置10046跟踪了
例如:
exec
dbms_system.set_ev(159,15,10046,8,'robinson'); ----开启级别为8的跟踪
exec dbms_system.set_ev(159,15,10046,0,'robinson'); -----关闭跟踪
dbms_system.set_int_param_in_session(
sid IN NUMBER,
serial# IN NUMBER,
parnam IN VARCHAR2,
intval IN BINARY_INTEGER);
这个过程给任意session设置integer的参数
例如:
SQL>
exec dbms_system.set_int_param_in_session(159,15,'db_file_multiblock_read_count',128);
PL/SQL
procedure successfully completed
dbms_system.set_bool_param_in_session(
sid IN NUMBER,
serial# IN NUMBER,
parnam IN VARCHAR2,
bval IN BOOLEAN);
这个存储过程给任意的session设置boolean的参数
例如:
SQL>
exec dbms_system.set_bool_param_in_session(159,15,'sql_trace',TRUE);
PL/SQL
procedure successfully completed
SQL>
exec dbms_system.set_bool_param_in_session(159,15,'sql_trace',FALSE);
PL/SQL
procedure successfully completed
General |
Source |
{ORACLE_HOME}/rdbms/admin/prvtutil.plb |
First Available |
7.3.4 |
Constants |
Name |
Value |
trace_file
|
1 |
alert_file
|
2 |
?
|
3 |
|
Dependencies |
SELECT name FROM dba_dependencies WHERE referenced_name = 'DBMS_SYSTEM'
UNION
SELECT referenced_name FROM dba_dependencies WHERE name = 'DBMS_SYSTEM'; |
Security Model |
Execute is granted to OEM_MONITOR |
|
ADD_PARAMETER_VALUE (new in 11g) |
Writes a listed parameter to the spfile following a call to ALTER SYSTEM SET. |
dbms_system.add_parameter_value(
parname IN VARCHAR2,
value IN VARCHAR2,
scope IN VARCHAR2,
sid IN VARCHAR2,
position IN BINARY_INTEGER); |
col value format a100
SELECT value
FROM gv$parameter
WHERE name = 'control_files';
exec dbms_system.add_parameter_value('control_files', 'c:/temp/control04.ctl', 'BOTH', 'orabase', 4);
SELECT value
FROM gv$parameter
WHERE name = 'control_files'; |
|
DIST_TXN_SYNC |
Distributed transaction synchronization used in XA interfaces. Not intended for end-user usage. |
dbms_system.dist_txn_sync(inst_num IN NUMBER); |
execdbms_system.dist_txn_sync(2); |
|
GET_ENV |
Returns the value of environment variables |
dbms_system.get_env(var IN VARCHAR2, val OUT VARCHAR2); |
set serveroutput on
DECLARE
RetVal VARCHAR2(4000);
BEGIN dbms_system.get_env('ORACLE_SID', RetVal);
dbms_output.put_line(RetVal);
END;
/
DECLARE
RetVal VARCHAR2(100);
BEGIN dbms_system.get_env('ORACLE_HOME', RetVal);
dbms_output.put_line(RetVal);
END;
/ |
|
KCFRMS |
Resets the timers displayed by MAX_WAIT in GV$SESSION_EVENT and MAXIORTM and MAXIOWTM in GV$FILESTAT (X$KCFIO) |
dbms_system.kcfrms; |
SELECT max_wait FROM gv_$session_event;
SELECT maxiortm, maxiowtm FROM gv_$filestat;
execdbms_system.kcfrms;
SELECT max_wait FROM gv_$session_event;
SELECT maxiortm, maxiowtm FROM gv_$filestat; |
|
KSDDDT |
Prints the date stamp to the target file (alert log and/or trace file) |
dbms_system.ksdddt; |
execdbms_system.ksdddt; |
|
KSDFLS |
Flushes any pending output to the target alert log or trace file |
dbms_system.ksdfls; |
execdbms_system.ksdfls; |
|
KSDIND |
Does an 'indent' before the next write (ksdwrt) by printing that many colons (:) before the next write. |
dbms_system.ksdind(lvl IN BINARY_INTEGER);
Range ofvalid values from 0 to 30. |
execdbms_system.ksdind(5);
exec dbms_system.ksdwrt(3, 'Test Message'); |
|
KSDWRT |
Prints a message to the target file (alert log and/or trace file) |
dbms_system.ksdwrt (dest IN BINARY_INTEGER,tst IN VARCHAR2);
1: Write to the standard trace file
2: Write to the alert log
3: Write to both files at once |
execdbms_system.ksdwrt(3, '-- Start Message --');
execdbms_system.ksdwrt(3, 'Test Message');
execdbms_system.ksdwrt(3, '-- End Message --'); |
|
READ_EV |
Get the level for events set in the current session |
dbms_system.read_ev (iev IN BINARY_INTEGER, oev OUT BINARY_INTEGER);
lev: event numbers 10000 to 10999
event level: default is 0 if not set |
ALTER SYSTEM SET SQL_TRACE=TRUE;
set serveroutput on
DECLARE
lev BINARY_INTEGER;
BEGIN dbms_system.read_ev(10046, lev);
dbms_output.put_line(lev);
END;
/ |
|
REMOVE_PARAMETER_VALUE (new in 11g) |
Removes a listed parameter to the spfile following a call to ALTER SYSTEM SET.
Overload 1 |
dbms_system.remove_parameter_value(
parname IN VARCHAR2,
value IN VARCHAR2,
scope IN VARCHAR2,
sid IN VARCHAR2); |
TBD |
Overload 2 |
dbms_system.remove_parameter_value(
parname IN VARCHAR2,
position IN BINARY_INTEGER,
scope IN VARCHAR2,
sid IN VARCHAR2); |
TBD |
|
SET_BOOL_PARAM_IN_SESSION |
Sets boolean-type init.ora parameters in any session |
dbms_system.set_bool_param_in_session(
sid IN NUMBER,
serial# IN NUMBER,
parnam IN VARCHAR2,
bval IN BOOLEAN); |
execdbms_system.set_bool_param_in_session(10, 161, 'sql_trace', TRUE); |
|
SET_EV |
Set event trace level |
dbms_system.set_ev(
si IN BINARY_INTEGER, -- session id
se IN BINARY_INTEGER, -- session serial number
ev IN BINARY_INTEGER, -- event number between 10000 and 10999
le IN BINARY_INTEGER, -- event level
nm IN VARCHAR2);
Level |
Waits |
Binds |
1 |
False |
False |
4 |
False |
True |
8 |
True |
False |
12 |
True |
True |
|
execdbms_system.set_ev(10, 1008, 10046, 12, NULL); |
|
SET_INT_PARAM_IN_SESSION |
Sets integer-type init.ora parameters in any session |
dbms_system.set_int_param_in_session(
sid IN NUMBER,
serial# IN NUMBER,
parnam IN VARCHAR2,
intval IN BINARY_INTEGER); |
execdbms_system.set_int_param_in_session(10, 161, 'sort_area_size', 1048576); |
|
SET_SQL_TRACE_IN_SESSION |
Turn tracing on or off in any session |
dbms_system.set_sql_trace_in_session(
sidNUMBER,
serial# NUMBER,
sql_trace BOOLEAN); |
execdbms_system.set_sql_trace_in_session(10, 1008, TRUE);
execdbms_system.set_sql_trace_in_session(10, 1008, FALSE); |
|
WAIT_FOR_EVENT |
Puts the current session into a wait state for any named wait event |
dbms_system.wait_for_event(
event VARCHAR2,
extended_id BINARY_INTEGER,
timeout BINARY_INTEGER);
extended_id is placed into the P1 column of gv_$session_wait |
execdbms_system.wait_for_event('rdbms ipc message', 50, 20);
SELECT sid, event, p1, seconds_in_wait, state
FROM gv_$session_wait
WHERE sid = 10; |
|
|
分享到:
相关推荐
8.5.2 使用 DBMS_SYSTEM 设置用户 会话外的跟踪 8.5.3 生成系统跟踪 8.5.4 使用 tkprof 解释跟踪文件 8.5.5 使用 AUTOTRACE 获得 SQL 语句 执行计划和统计数据 8.6 优化回退段 8.6.1 最小化回退段争用 8.6.2...
1.切换当前日志到新的日志组 alter system switch logfile; alter system switch logfile; ...方法一:使用alter database clear logfile group 1 1)正常关闭 2)del删除 3)startup …… …… ……
1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 ...su - oracle -c "exp system/manager full=y inctype=cumulative file=/oracle/export/db_cumu$rq.dmp...
(二)使用 DBMS_REPAIR 包,由 dbmsrpr.sql 与 prvtrpr.plb 生成该包在特定表中生成损坏块的信息。 1. DBMS_REPAIR.ADMIN_TABLES 用于创建与删除存储损坏块的表。其中 TABLE_TYPE 为:REPAIR_TABLE(表),ORPHAN_...
exec dbms_system.set_sql_trace_in_session(sid,serial#,&sql_trace); select sid,serial# from v$session where sid = (select sid from v$mystat where rownum = 1); exec dbms_system.set_ev(&sid,&serial#,&...
1. 打开SQLDeveloper,建立system链接、bs+学号连接登录ORCL数据库。 2. 在SQLDeveloper中,用密码tiger解锁scott账号。 3. 触发器注意事项 (1)触发器可以声明为在对记录进行操作之前,在之前(检查约束之前和 ...
AWR 报告的核心组件是 dbms_workload_repository 包,位于 $ORACLE_HOME/rdbms/admin 目录下。AWR 报告可以通过运行 awrrpt.sql 脚本生成,该脚本位于 $ORACLE_HOME/rdbms/admin 目录下。 AWR 报告的主要组成部分...
sql> alter system set job_queue_processes=n;(n>0) job_queue_processes最大值为1000 查看job queue 后台进程 sql>select name,description from v$bgprocess; 二,dbms_job package 用法...
9. 使用LogMiner分析重做日志文件:使用DBMS_LOGMNR包分析重做日志文件,从而可以追溯数据库的所有变化。 表空间管理 表空间是Oracle数据库中用于存储数据的逻辑存储单位。表空间管理包括创建表空间、管理表空间...
第十七章 创建包和使用包 287 §17.1 引言 287 §17.2 包的定义 288 §17.3 包的开发步骤 289 §17.4 包的头部说明 289 §17.5 包体的说明 290 §17.6 删除过程、函数和包 293 §17.7 包的管理 293 §17.7.1 包有关...
2. 使用DBMS_METADATA.GET_DDL包 6. 查看数据库引擎报错的方法: 查看alert log。 7. truncate和delete命令的区别: truncate是DDL操作,它移动HWK,不需要rollback segment。delete是DML操作,需要rollback ...
* 两种检查表结构的方法:DESCRIBE命令和DBMS_METADATA.GET_DDL包。 * 生成explain plan:可以使用utlxplan.sql和utlxplp.sql脚本。 * column可以用来区别V$视图和GV$视图:INST_ID指明集群环境中具体的某个instance...
由于在System表空间中已经记录了新的信息, 因此用当前的System信息是不能恢复过来的,在AUL/MyDUL中可以当作没有System时的情况来处理,在下面的命令中, 我们用Truncate后的数据对象号就不能进行恢复, 而使用Truncate...
mssql 微软 只能能运行在windows平台,体积比较庞大,占用许多系统资源, 但使用很方便,支持命令和图形化管理,收费。 中型企业 Mysql 甲骨文 是个开源的数据库server,可运行在多种平台, 特点是响应速度特别快,...
食堂系统 此仓库包含与SL和DBMS mini项目相关的所有文件
数据库管理系统(Database Management System,简称DBMS)是一种系统软件包,用于创建、访问和维护数据库记录。它提供了一个接口,连接数据库和数据库用户之间,包括应用程序员、经理和其他需要信息的人员、操作系统...
可以使用 DESCRIBE 命令或 DBMS_METADATA.GET_DDL 包来检查表结构。 6. 查看数据库引擎报错的方法: 可以查看 alert log 来查看数据库引擎的报错。 7. truncate 和 delete 命令的不同: truncate 是 DDL 操作,不...
学校管理系统课程编号:CS254课程名称:DBMS实验室学期:B. Tech第四学期部分:S1或S2学年:2020-21课程讲师:博士Annappa B和Sharath Yaji先生团队成员: 詹曼什·阿加瓦尔(Janmansh Agarwal),191CS205 克鲁达卡...
2、使用 DBMS_METADATA.GET_DDL 包。 5.查看数据库引擎的报错alert log 可以使用 alert log 查看数据库引擎的报错信息。 6.truncate 和 delete 命令 truncate 和 delete 命令都可以用来删除表中所有的记录。区别...