当前位置:  数据库>oracle
本页文章导读:
    ▪[网摘]如何使用Logminer来分析具体的DML操作日志      如何使用Logminer来分析具体的DML操作日志在Oracle数据库维护中,常常需要分析原来数据库都做了哪些删除、更新、增加数据的操作,所以一般需要用到Logminer这工具来分析归档日志。环境:AIX5..........
    ▪Oracle跟踪生成及Tkprof分析性能实战(附实战Demo)系列一      本文阅读目录如下:1、概述2、Oracle跟踪3、Tkprof分析4、简单实例分析实战 1、概述最近研究了一下Oracle的跟踪和对跟踪的分析,在网上搜索了好多资料终于对这一块有了一个大致的了解,.........
    ▪Oracle监听服务lsnrctl参数及查询状态详解      lsnrctl命令常用参数详解:lsnrctlstart启动指定的监听器stop关闭指定的监听器status显示监听器的状态。status命令显示监听器是不是活动的,日志与跟踪文件的位置,监听器已经持续运行了多长时.........

[1][网摘]如何使用Logminer来分析具体的DML操作日志
    来源:    发布时间: 2013-10-29

如何使用Logminer来分析具体的DML操作日志
在Oracle数据库维护中,常常需要分析原来数据库都做了哪些删除、更新、增加数据的操作,所以一般需要用到Logminer这工具来分析归档日志。
环境:AIX5.3+Oracle10.2.0.1   使用IBM的Tivoli Storage Manager把数据库数据、归档日志备份到带库中

1、确定具体时间的DML操作,把相应的归档日志从带库恢复到数据库中
2、用Logminer来分析相应的归档日志

一.在sqlplus用sys超级用户登陆数据库中,然后把当前的时间改成'yyyy-mm-dd hh24:mi:ss'格式,这样可以看清楚归档日志的起始时间:
SQL>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

二、v$log_history视图的sequence#为归档日志序列号,first_time为该归档日志的开始时间。
SQL>select sequence#,first_time from v$log_history;
记下某天的归档日志序列,比如为3988--4000

三、用rman target/  进入数据库,把相应的归档日志从带库取到数据库中来,/oracle/oms/oradata/temp目录为放归档日志的目录。

RUN
{
  SET ARCHIVELOG DESTINATION TO '/oracle/oms/oradata/temp';
  RESTORE ARCHIVELOG SEQUENCE 3988;        
}

 

注:导出多个归档日志:

RUN
{
  SET ARCHIVELOG DESTINATION TO '/oracle/oms/oradata/temp';
  RESTORE ARCHIVELOG SEQUENCE  between 2895 and 2897;       
}

注:3988为归档日志的序列号,有多个日志,需要运行多个上面的语句。


四、建立日志分析列表,把第一个归档日志放到分析列表
SQL>execute dbms_logmnr.add_logfile(logfilename=>'/oracle/oms/oradata/temp/1_3988_644336885.dbf',options=>dbms_logmnr.new);

五、把第二个归档日志放到分析列表(第二个归档日志以后都是下面的格式)
SQL>execute dbms_logmnr.add_logfile(logfilename=>'/oracle/oms/oradata/temp/1_3989_644336885.dbf',options=>dbms_logmnr.addfile);


六、启动LogMiner
SQL> execute dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);

七、把分析出来的数据放在logminer_test表中,这样方便查询。因为表v$logmnr_contents的数据量很大,选择一个空闲的表空间
SQL>
create table logminer_test tablespace MLOG_NORM_SPACE
as
select   *   from  v$logmnr_contents;

八、把分析日志表logminer_test的查询权限赋予给lhomsread只读的数据库用户,这样使用第三方工具很方便查询(plsql等):
SQL>grant  select  on  logminer_test to  lhomsread;

九、结束logminer
SQL> execute dbms_logmnr.end_logmnr;

 

本文链接


    
[2]Oracle跟踪生成及Tkprof分析性能实战(附实战Demo)系列一
    来源:    发布时间: 2013-10-29

本文阅读目录如下:


1、概述


2、Oracle跟踪


3、Tkprof分析


4、简单实例分析实战


 


1、概述


最近研究了一下Oracle的跟踪和对跟踪的分析,在网上搜索了好多资料终于对这一块有了一个大致的了解,本人之前用sqlserver用的比较多,感觉Oracle在这一块确实很不方便啊,Oracle根本没有像SqlServer Profiler那样专业性的图形化工具,还有SqlServer在做性能优化的时候在查询分析器里面能够估算的执行计划和实际计划,sqlserver在这方面确实非常独到啊哈哈,有一些复杂的sql语句、存储过程、函数等在查询分析器里面一估算就能看出在哪个地方出现了问题,而且直接给出修改的建议,我们这个非DBA级别的研发人员用这些工具也可以做DBA的工作了-_-,当然还有DBCC命令等,当然本文不是讲sqlserver的跟踪和优化的,言归正传,本文主要讲解Oracle的跟踪和分析的。


2、Oracle跟踪


2、1 sql脚本跟踪


主要是通过查看v$sql和v$sqlarea两个内置视图来监视所有sql的执行过程。


v$sqlarea和v$sql两个视图的不同之处在于,v$sql中为每一条SQL保留一个条目,而v$sqlarea中根据sql_text进行group by,通过version_count计算子指针的个数。下面对这个问题进行一点延伸探讨。


首先介绍一下v$sql视图,v$sql视图列举了共享SQL区(Shared SQL Area)中的SQL统计信息,这个视图中的信息未经分组,每个SQL指针都包含一条独立的记录。这个视图的主要字段如下:






Column




Datatype




Descrption






SQL_TEXT




VARCHAR2(1000)




当前SQL指针的前1000个字符(也就是说这里记录的SQL是不完整的)






EXECUTIONS




NUMBER




执行次数






DISK_READS




NUMBER




这个子指针Disk Read的次数






BUFFER_GETS




NUMBER




这个子指针的Buffer Gets数量






OPTIMIZER_MODE




VARCHAR2(10)




SQL执行的优化器模式






OPTIMIZER_COST




NUMBER




SQL执行成本






HASH_VALUE




NUMBER




在Library Cache中父指针的Hash Value值






 具体sql查看语句,如下:



select SQL_TEXT,EXECUTIONS,DISK_READS,BUFFER_GETS,OPTIMIZER_MODE,OPTIMIZER_COST,HASH_VALUE,a.MODULE,a.first_load_time from v$sqlarea a
where 1=1
--and a.LAST_ACTIVE_TIME >= to_date( '2013-04-18 14:35:00','yyyy-MM-dd HH24:mi:ss')
--and a.LAST_ACTIVE_TIME < to_date( '2013-04-18 18:24:00','yyyy-MM-dd HH24:mi:ss')
--and a.MODULE_HASH <> 0
and a.MODULE = 'w3wp.exe'
order by a.first_load_time desc 


其中a.MODULE 的类型是w3wp.exe时代表监视的是iis站点访问数据库的情况,这个sql脚本跟踪类似于sqlserver profiler中的sql分析;


2、2 sql_trace跟踪


当SQL语句出现性能问题时,我们可以用SQL_TRACE来跟踪SQL的执行情况,通过跟踪,我们可以了解一条SQL或者PL/SQL包的运行情况,SQL_TRACE命令会将SQL执行的整个过程输出到一个trace文件中,我们可以读这个trace 文件来了解在这个

    
[3]Oracle监听服务lsnrctl参数及查询状态详解
    来源:    发布时间: 2013-10-29

lsnrctl命令常用参数详解:

lsnrctl
start
启动指定的监听器

stop
关闭指定的监听器

status
显示监听器的状态。status命令显示监听器是不是活动的,日志与跟踪文件的位置,监听器已经持续运行了多长时间,以及监听器所监听的任务。


services
列举监听器的服务信息,比如这些服务是否有任何专用的预生成服务器进程或与之相关的调度进程,以及每个服务已有多少连接被接受或拒绝。这种方法用来检查一个监听器是否在监听一个指定服务。
列出服务的一个汇总表及为每个协议服务处理程序所建立和拒绝的连接信息个数。

Version
显示oracle net软件与协议适配器的版本。

reload
重新装入监听器,重新读取listener.ora文件,但不关闭监听器。如果该文件发生了变化,重新刷新监听器。

save_config
当从lsnrctl工具中对listener.ora文件进行了修改时,复制一个叫做listener.bak的listener.ora的文件。

trace
打开监听器的跟踪特性。

change_password
允许用户修改关闭监听器所需要的密码。

quit
退出lsnrctl工具。

exit
退出lsnrctl工具。

set*
password
指定在lsnrctl命令行工具中执行管理任务所需要的密码。

rawmode
displaymode
trc_file
指定监听器跟踪信息的位置。默认设置是$ORACLE_HOMEnetworktracelistener.trc

trc_directory
trc_level
跟踪级别
OFF – 未启用跟踪功能。OFF 为默认设置。
USER – 将跟踪设置为用户的相应级别。跟踪以标识用户导致的错误条件。
ADMIN – 将跟踪设置为数据库管理员的相应级别。跟踪以标识特定的安装问题。
SUPPORT – 将跟踪设置为客户支持人员的相应级别。 跟踪文件可能会变得很大。
Oracle Corporation 建议在不进行网络问题诊断时关闭跟踪功能。

log_file
指定一个监听器将把日志信息写到哪里。这个参数在默认的情况下是ON,并默认为%oracle_home%networkloglistener.log

log_directory
log_status
current_listener
inbound_connect_timeout
定义监听器在一个会话得到启动时将等待的有效响应时间。默认设置为10秒。

startup_waittime
定义监听器在响应lsnrctl命令行工具中的一条status命令之前将等待多长时间。

save_config_on_stop
指定在一个lsnrctl会话期内所发生的修改在退出时是否应该被保存起来。

show*
rawmode
显示关于status和service的较详细信息(当他们设置成on时)值为ON或OFF。

displaymode
把lsnrctl工具的显示模式设置成raw、compact、normal或verbose
服务显示模式为NORMAL

rules
trc_file
指定监听器跟踪信息的位置。默认设置是$ORACLE_HOMEnetworktracelistener.trc

current_listener
目前的监听器为 listener2
inbound_connect_timeout
定义监听器在一个会话得到启动时将等待的有效响应时间。默认设置为10秒。

startup_waittime
定义监听器在响应lsnrctl命令行工具中的一条status命令之前将等待多长时间。

snmp_visible
save_config_on_stop
指定在一个lsnrctl会话期内所发生的修改在退出时是否应该被保存起来。

lsnrctl部分查询状态详解:

LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ocm1.oracle.domain)(PORT=1521)))
STATUS of the LISTENER
————————
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.1.0 – Production
Start Date                17-MAY-2011 21:03:40
Uptime                    0 days 0 hr. 2 min. 49 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/10.2.1/db/network/admin/listener.ora
Listener Log File         /u01/app/oracle/product/10.2.1/db/network/log/listener.log
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ocm1.oracle.domain)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ocm1.oracle.domain)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ocm1.oracle.domain)(PORT=1600)))
Services Summary…
Service “POD” has 1 instance(s).
Instance “POD”, status READY, has 1 handler(s) for this service…
Service “POD1″ has 1 instance(s).
Instance “POD”, status UNKNOWN, has 1 handler(s) for this service…
Service “PODS” has 1 instance(s).
Instance “POD”, status READY, has 2 handler(s) for this service…
Service “pod_XPT” has 1 instance(s).
Instance “POD”, status READY, has 1 handler(s) for this service…
Service “repos” has 2 instance(s).
Instance “repos”, status UNKNOWN, has 1 handler(s) for this service…
Instance “repos”, status READY, has 1 handler(s) for this service…
Service “repos_XPT” has 1 instance(s).
Instance “repos”, status READY, has 1 handler(s) for this service…
The command completed successfully

 

 status详解

Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ocm1.oracle.domain)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ocm1.oracle.domain)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ocm1.oracle.domain)(PORT=1600)))

#此处说明该主机地址为ocm1.oracle.domain,开启的监听端口有1521,1522,1600


Services Summary…
Service “POD” has 1 instance(s).
Instance “POD”, status READY, has 1 handler(s) for this service…

#此处说明有一个服务名POD的服务,数据库实例名为POD,状态READY说明其目前处于动态注册
Service “POD1″ has 1 instance(s).
Instance “POD”, status UNKNOWN, has 1 handler(s) for this service…

#此处说明有一个服务名为POD1的服务,数据库的实例名为POD,状态UNKNOWN说明其目前是静态注册
Service “PODS” has 1 instance(s).
Instance “POD”, status READY, has 2 handler(s) for this service…

#此处说明有一个服务名为PODS的服务,数据库实例名为POD,状态READY说明其是动态注册

 

Service “repos” has 2 instance(s).
Instance “repos”, status UNKNOWN, has 1 handler(s) for this service…
Instance “repos”, status READY, has 1 handler(s) for this service…
The command completed successfully

#此处说明有一个服务名为repos的服务,对应数据库实例为repos,UNKNOWN,READY状态说明其目前有一个静态注册和一个动态注册

 

 LSNRCTL> services
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ocm1.oracle.domain)(PORT=1521)))
Services Summary…
Service “POD” has 1 instance(s).
Instance “POD”, status READY, has 1 handler(s) for this service…
Handler(s):
“DEDICATED” established:0 refused:0 state:ready
LOCAL SERVER
Service “POD1″ has 1 instance(s).
Instance “POD”, status UNKNOWN, has 1 handler(s) for this service…
Handler(s):
“DEDICATED” established:0 refused:0
LOCAL SERVER
Service “PODS” has 1 instance(s).
Instance “POD”, status READY, has 2 handler(s) for this service…
Handler(s):
“D001″ established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=ocm1.oracle.domain)(PORT=37290))
“D000″ established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=ocm1.oracle.domain)(PORT=37288))
Service “pod_XPT” has 1 instance(s).
Instance “POD”, status READY, has 1 handler(s) for this service…
Handler(s):
“DEDICATED” established:0 refused:0 state:ready
LOCAL SERVER
Servi

    
最新技术文章:
▪current online redo log缺失后的恢复
▪ORA-600 2662错误解决实例
▪ORA-00600 2662错误解决方法
▪Oracle Hidden Parameter:_allow_resetlogs_corruption
▪Oracle诊断事件列表
▪Oracle 隐含参数 _disable_logging 详解
▪ORA-00600 [2662]错误解决过程
▪Oracle里常见的执行计划
▪Oracle里另外一些典型的执行计划
▪Oracle服务器自动备份
▪Oracle固定SQL的执行计划(一)---SQL Profile
▪Oracle固定SQL的执行计划(二)---SPM
▪同一环境下新建Standby RAC库
▪Oracle快速克隆安装
▪Oracle单实例启动多个实例
▪Oracle的PLSQL别名中文出现乱码解决方法
▪ORA-00379: no free buffers available in buffer pool DEFAULT ...
▪RMAN-06023: no backup or copy of datafile 16 found to restor...
▪RMAN还原数据库报错问题解决案例
▪OEL6.8_X86平台部署Oracle 10gR2检测失败问题
▪Oracle 性能优化建议
▪Oracle SQL语句优化心得
▪Oracle慢SQL监控脚本实现
▪Oracle dblink 查询 tns:无法解析指定的连接标识...
▪Red Hat Enterprise Linux 6使用udev配置Oracle ASM总结...
▪Linux6.6及以上版本配置Oracle ASM共享储存-UDEV
▪Oracle 12C 开启数据库归档模式
▪Solairs系统中配置Oracle 12c 开机启动
▪重建DBMS_STATS解决ORA-31626 ORA-21633以及ORA-04063 ORA...
▪Oracle ASMM 与AMM之间相互切换
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3