怎么读oracle日志 oracle怎么查看日志

如何查询Oracle用户操作日志

1 查看值得怀疑的SQL

创新互联建站秉承实现全网价值营销的理念,以专业定制企业官网,网站制作、做网站,小程序设计,网页设计制作,手机网站制作营销型网站帮助传统企业实现“互联网+”转型升级专业定制企业官网,公司注重人才、技术和管理,汇聚了一批优秀的互联网技术人才,对客户都以感恩的心态奉献自己的专业和所长。

select substr(to_char(s.pct,'99.00'),2)||'%'load,

s.executions executes,

p.sql_text

from(select address,

disk_reads,

executions,

pct,

rank() over(order by disk_reads desc) ranking

from(select address,

disk_reads,

executions,

100*ratio_to_report(disk_reads) over() pct

from sys.v_$sql

where command_type!=47)

where disk_reads50*executions) s,

sys.v_$sqltext p

where s.ranking=5

and p.address=s.address

order by 1, s.address, p.piece;

2 查看消耗内存多的sql

select b.username ,a.buffer_gets ,a.executions,

a.disk_reads/decode(a.executions,0,1,a.executions),a.sql_text SQL

from v$sqlarea a,dba_users b

where a.parsing_user_id = b.user_id

and a.disk_reads 10000

order by disk_reads desc;

3 查看逻辑读多的SQL

select*

from(select buffer_gets, sql_text

from v$sqlarea

where buffer_gets500000

order by buffer_gets desc)

where rownum=30;

4 查看执行次数多的SQL

select sql_text, executions

from(select sql_text, executions from v$sqlarea order by executions desc)

where rownum81;

5 查看读硬盘多的SQL

select sql_text, disk_reads

from(select sql_text, disk_reads from v$sqlarea order by disk_reads desc)

where rownum21;

6 查看排序多的SQL

select sql_text, sorts

from(select sql_text, sorts from v$sqlarea order by sorts desc)

where rownum21;

7 分析的次数太多,执行的次数太少,要用绑变量的方法来写sql

set pagesize 600;

set linesize 120;

select substr(sql_text,1,80) "sql",count(*),sum(executions) "totexecs"

from v$sqlarea

where executions5

group by substr(sql_text,1,80)

having count(*)30

order by 2;

8 游标的观察

set pages 300;

select sum(a.value), b.name

from v$sesstat a, v$statname b

where a.statistic#=b.statistic#

and b.name='opened cursors current'

group by b.name;

select count(0) from v$open_cursor;

select user_name, sql_text,count(0)

from v$open_cursor

group by user_name, sql_text

having count(0)30;

9 查看当前用户username执行的SQL

select sql_text

from v$sqltext_with_newlines

where(hash_value, address) in

(select sql_hash_value, sql_address

from v$session

where username='username')

order by address, piece;

oracle如何查看日志文件

oracle日志查看

一.oracle日志的路径:

登录:sqlplus

"/as

sysdba"

查看路径:sql

select

*

from

v$logfile;

sql

select

*

from

v$logfile;(#日志文件路径)

二.oracle日志文件包含哪些内容:(日志的数量可能略有不同)

control01.ctl

example01.dbf

redo02.log

sysaux01.dbf

undotbs01.dbf

control02.ctl

redo03.log

system01.dbf

users01.dbf

control03.ctl

redo01.log

shttest.dbf

temp01.dbf

三.oracle日志的查看方法:

sqlselect

*

from

v$sql

(#查看最近所作的操作)

sqlselect

*

fromv

$sqlarea(#查看最近所作的操作)

oracle

数据库的所有更改都记录在日志中,从目前来看,分析oracle日志的唯一方法就是使用oracle公司提供的logminer来进行,因为原始的日志信息我们根本无法看懂,oracle8i后续版本中自带了logminer,而logminer就是让我们看懂日志信息的工具,通过这个工具可以:查明数据库的逻辑更改,侦察并更正用户的误操作,执行事后审计,执行变化分析。

如何查看oracle监听日志文件

1、因为oracle运行在Linux系统下,首先,要连接Linux系统。

2、切换到oracle安装用户下。 我的用户是 oracle。

3、运行oracle的环境变量,在oracle 的根目录下面,运行 soruce .bash_prfile 命令, 以便输入相关命令。

4、运行命令: cd $ORACLE_HOME 进入oracle的安装目录。

5、在此输入命令: find -name listener.log ,查找监控日志文件。

6、运行命令 cd 到查看到的日志文件目录。

7、运行cat listener.log命令 查看日志文件。

oracle 看报错日志怎么看

首先了解什么是外部表,与其它表的区别,建立一个简单的外部表(主要看操作过程),最后我们用外部表查看ORACLE报警日志

1.了解oracle外部表

外部表定义:结构被存放在数据字典,而表数据被放在OS文件中的表

作用:在数据库中查询OS文件的数据,还可以将OS文件数据装载到数据库中

与其它表的区别:在外部表上不能执行DML操作,也不能在外部表上建索引,只能执行select操用

2.建一个简单的外部表1.建一个OS上的文件

因为外部表主要是查看OS上的文件,首先在OS上建一个文件

mkdir -p /oracle/ext

vi /oracle/ext/ext.dat

10,20,30

40,50,60

70,80,90

2.授予用户权限,并建立目录对象

在此我们先建一个新用户

create user test identified by “123” default tablespace test quota unlimited on test;

用户授权

SQL grant create any directory to test;

建立目录对象

SQL conn test / 123

Connected.

SQL create directory ext as '/oracle/ext';

Directory created.

3.建立外部表

SQL create table exttable(

id number,name varchar2(10),i number

)organization external

(type oracle_loader

default directory ext

access parameters

(records delimited by newline

fields terminated by ','

)location('ext.dat')

);

4.测试

SQL select * from exttable;

ID NAMEI

---------- ---------- ----------

10 20 30

40 50 60

70 80 90

测试成功,可见在数据库中可以查询OS文件的数据

2. 使用外部表查看oracle报警日志

由于在上面实验中已建立了一个用户,并赋相应的权限,而且也有了OS文件(即报警文件alert_SID.log),所以在此直接建立目录对象并建立外部表就可以了。

1.建立目录对象

SQL conn test / 123

Connected.

SQL create directory bdump as '/oracle/u01/app/oracle/admin/db2/bdump';

Directory created.

2.建立外部表

SQL create table alert_log(

text varchar2(400)

)organization external

(type oracle_loader

default directory bdump

access parameters

(records delimited by newline

)location('alert_db2.log')

);

3.测试

首先查看能否查到alert_db2.log的内容

SQL select * from alert_log where rownum 10;

TEXT

--------------------------------------------------------------------------------

Thu Jun 11 00:51:46 2009

Starting ORACLE instance (normal)

Cannot determine all dependent dynamic libraries for /proc/self/exe

Unable to find dynamic library libocr10.so in search paths

RPATH = /ade/aime1_build2101/oracle/has/lib/:/ade/aime1_build2101/oracle/lib/:/a

de/aime1_build2101/oracle/has/lib/:

LD_LIBRARY_PATH is not set!

The default library directories are /lib and /usr/lib

Unable to find dynamic library libocrb10.so in search paths

Unable to find dynamic library libocrutl10.so in search paths

9 rows selected.

测试成功

然后我们测试查报警信息’ORA-%’

SQL select * from alert_log where text like 'ORA-%';

TEXT

--------------------------------------------------------------------------------

ORA-00202: control file: '/oracle/u01/app/oracle/product/10.2.0/db2/dbs/cntrldb2

.dbf'

ORA-27037: unable to obtain file status

ORA-205 signalled during: ALTER DATABASE MOUNT…

ORA-00301: error in adding log file '/home/oracle/oracle/oradata/testdb/redo01.l

og' - file cannot be created

ORA-27040: file create error

ORA-1501 signalled during: CREATE DATABASE db2

ORA-00200: control file could not be created

TEXT

--------------------------------------------------------------------------------

ORA-00202: control file: '/oracle/u01/app/oracle/product/10.2.0/db2/dbs/cntrldb2

.dbf'

ORA-27038: created file already exists

ORA-1501 signalled during: CREATE DATABASE db2

ORA-00200: control file could not be created

ORA-00202: control file: '/oracle/u01/app/oracle/product/10.2.0/db2/dbs/cntrldb2

.dbf'

ORA-27038: created file already exists

ORA-1501 signalled during: CREATE DATABASE db2

测试成功,

可见我们可以使用外部表来方便的查看ORACLE的报警信息

如何查看oracle的日志文件

Oracle日志文件查看方法:

1、以sysdba权限用户登录数据库。

2、执行sql语句:

select * from v$logfile;

3、结果显示即为日志路径:

4、另外还有其他的操作日志可用以下两个sql语句查询:

select * from v$sql;--(#查看最近所作的操作)

select * fromv $sqlarea;--(#查看最近所作的操作)

如何查看oracle 数据库的操作日志

方法1:使用LogMiner工具

优点:可以完全挖掘日志内容,找出所有执行过的SQL语句

缺点:

1. 如果没有启用归档日志,则只能对联机日志进行挖掘

2. 需要掌握LogMiner的用法


本文题目:怎么读oracle日志 oracle怎么查看日志
文章出自:http://myzitong.com/article/hihogg.html