扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
windows下
成都创新互联公司成立于2013年,先为高坪等服务建站,高坪等地企业,进行企业商务咨询服务。为高坪企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
控制面板---管理工具---时间查看器---windows日志---应用程序---右键清除日志
或者cmd下
eventvwr ---应用程序---右键清除日志
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命令 查看日志文件。
一、前提条件
系统必须是使用LOG4J进行日志管理,否则方法无效。
系统必须包含commons-logging-xxx.jar,log4j-xxx.jar这两个JAR包,XXX为版本号。
二、操作步骤
1、创建日志表
要把日志持久化,必须在数据库中创建一张用来存储日志信息的表,表内字段为日志
的一个主要属性包括:操作类,执行方法,打印时间,日志级别,日志内容。
CREATE TABLE RESLOG (LOGID VARCHAR2(20) NOT NULL,
CLASS VARCHAR2(200),
METHOD VARCHAR2(100),
CREATETIME DATE,
LOGLEVEL VARCHAR2(50),
MSG VARCHAR2(4000))
因为存储的类为类的全部路径,所以CLASS字段长度需要比较大。
2、日志管理配置
LOG4J主要有两种配置文件.properties和.xml,这里以properties文件为基础来讲
述,关于XML文件的配置,相信大家看完下面的介绍也一样能轻松完成。
通常在LOG4J.PROPERTIES文件的第一行是:
log4j.rootLogger= XXX,这句是控制日志的输出,如果想吧日志输出到数据库,
则需要在XXX中添加“DB”,如log4j.rootLogger=INFO,stdout,Platform,db。上面
这句就是把日志中级别为INFO的信息输出到STDOUT,PLATFORM和DB
(DATABASE)中。
配置好如上的信息,LOG4J就知道用户是想把信息存入数据库,接下来我们就要来
配置数据库的相关信息(包括缓存,数据库连接信息,和执行SQL),配置信息如下:
###JDBCAppender
log4j.appender.db = org.apache.log4j.jdbc.JDBCAppender
//这个配置是选择使用JDBCAppender方法,将日志信息存储到数据库。当然,如果你还要做其他操作,可以自己写个类,继承JDBCAppender就OK了。
log4j.appender.db.BufferSize=1
//这个配置是告诉LOG4J,有多少条日志信息后才存入数据库,我这里是1,就是说有一条就查一条,显然这样在生产环境下是很影响系统性能的。
log4j.appender.db.driver=oracle.jdbc.driver.OracleDriver
//这个配置是告诉LOG4J,做数据库存储所用的驱动。
log4j.appender.db.URL=jdbc:oracle:thin:@ip:port:sid
//这个配置数据库连接的URL,不用说也都知道。
log4j.appender.db.user=XXX
log4j.appender.db.password=XXX
//上面两个是数据库连接时的用户名和密码
log4j.appender.db.sql=insert into RESLOG
(LogId,Class,Method,createTime,LogLevel,MSG)
values (SQ_RESLOG_LOGID.Nextval,'%C','%M',
to_date('%d{yyyy-MM-dd HH:mm:ss}','yyyy-MM-dd
HH24:mi:ss'),'%p','%m')
//这个配置是告诉当LOG4J吧日志存储数据库时用的SQL语句。SQ_RESLOG_LOGID.Nextval是我建的一个SEQUENCE;‘%C’是日志中的CLASS;‘%M’是打印日志是执行到类里的方法;‘%d’是打印的时间,它支持格式化;‘%P’是日志级别,包括INFO、DEBUG、ERROR等;‘%m’是MSG,日志内容。注意这里的参数区分大小写。
log4j.appender.db.layout=org.apache.log4j.PatternLayout
通过上面的配置,现在再启动服务,LOG4J就会自动把原来存储在.LOG文件中的信息,同时存储到数据库了。
方法1:使用LogMiner工具
优点:可以完全挖掘日志内容,找出所有执行过的SQL语句
缺点:
1. 如果没有启用归档日志,则只能对联机日志进行挖掘
2. 需要掌握LogMiner的用法
访法2:查看HIST视图
优点:简单,只要使用普通的select语句查询
缺点:Oracle保留约1周的历史,所以要查太早的就不可能了
-- 找出哪个数据库用户用什么程序在最近三天执行过delete或truncate table的操作
举例如下:
SELECT c.username,
a.program,
b.sql_text,
b.command_type,
a.sample_time
FROM dba_hist_active_sess_history a
JOIN dba_hist_sqltext b
ON a.sql_id = b.sql_id
JOIN dba_users c
ON a.user_id = c.user_id
WHERE a.sample_time BETWEEN SYSDATE - 3 AND SYSDATE
AND b.command_type IN (7, 85)
ORDER BY a.sample_time DESC;
Oracle日志文件查看方法:
1、以sysdba权限用户登录数据库。
2、执行sql语句:
select * from v$logfile;
3、结果显示即为日志路径:
4、另外还有其他的操作日志可用以下两个sql语句查询:
select * from v$sql;--(#查看最近所作的操作)
select * fromv $sqlarea;--(#查看最近所作的操作)
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流