1.查询系统使用的是哪一组日志文件:
select * from v$log;
2.查询正在使用的组所对应的日志文件:
select * from v$logfile;
3.强制日志切换:
alter system switch logfile;
4.查询历史日志:
select * from v$log_history;
5.查询日志的归档模式:
select dbid,name,created,log_mode from v$database;
6.查询归档日志的信息:
select recid,stamp,thread#,sequence#,name from v$archived_log;
7.增加与删除日志文件组
alter database add logfile group 1 ('/home1/oracle/oradata/ora8i/log1a.log'),'/home2/oracle/oradata/ora8i/log1b.log') size 100M;
alter database drop logfile group 1;
8.增加与删除日志成员
alter database add logfile member '/home1/oracle/oradata/ora8i/log1a.log' to group 1,'/home1/oracle/oradata/ora8i/log2a.log' to group 2;
alter database drop logfile member '/home1/oracle/oradata/ora8i/log1a.log' ;
9.日志文件移动
alter database rename file '/home1/oracle/oradata/ora8i/log1a.log' to '/home2/oracle/oradata/ora8i/log1a.log';
执行该命令之前必须保证该日志文件物理上已经移动到新目录
10.清除日志文件
alter database clear logfile '/home1/oracle/oradata/ora8i/log1a.log';
该命令用于不能用删除组及组成员命令删除日志时使用
======================================================
Oracle日志查看
一.Oracle日志的路径:
登录:sqlplus "/as sysdba"
查看路径:SQL> select * from vlogfile;SQL>select∗fromvlogfile;(#日志文件路径)
二.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日志的查看方法:
SQL>select * from vsql (#查看最近所作的操作) SQL>select * fromvsqlarea(#查看最近所作的操作)
Oracle 数据库的所有更改都记录在日志中,从目前来看,分析Oracle日志的唯一方法就是使用Oracle公司提供的LogMiner来进行,因为原始的日志信息我们根本无法看懂,Oracle8i后续版本中自带了LogMiner,而LogMiner就是让我们看懂日志信息的工具,通过这个工具可以:查明数据库的逻辑更改,侦察并更正用户的误操作,执行事后审计,执行变化分析。
四.LogMiner的使用:
1、创建数据字典文件(data-dictionary)
1).首先在init.ora初始化参数文件中,添加一个参数UTL_FILE_DIR,该参数值为服务器中放置数据字典文件的目录。如:UTL_FILE_DIR = (ORACLEHOME\logs),重新启动数据库,使新加的参数生效:SQL>shutdown;SQL>startup;2).然后创建数据字典文件SQL>connect/assysdbaSQL>executedbmslogmnrd.build(dictionaryfilename=>′dict.ora′,dictionarylocation=>′/data1/oracle/logs′);PL/SQLproceduresuccessfullycompleted2、创建要分析的日志文件列表1).创建分析列表,即所要分析的日志SQL>executedbmslogmnr.addlogfile(LogFileName=>′/data1/oracle/oradata/akazamdb/redo01.log′,Options=>dbmslogmnr.new);PL/SQLproceduresuccessfullycompleteds2).添加分析日志文件,一次添加1个为宜SQL>executedbmslogmnr.addlogfile(LogFileName=>′/data1/oracle/oradata/akazamdb/redo01.log′,Options=>dbmslogmnr.ADDFILE);PL/SQLproceduresuccessfullycompleted3、使用LogMiner进行日志分析(具体要查询什么内容可以自己修改)(1)无限制条件SQL>EXECUTEdbmslogmnr.startlogmnr(DictFileName=>′/data1/oracle/logs/v816dict.ora′);(2)有限制条件通过对过程DBMSLOGMNR.STARTLOGMNR中几个不同参数的设置,可以缩小要分析日志文件的范围。通过设置起始时间和终止时间参数我们可以限制只分析某一时间范围的日志。如下面的例子,我们仅仅分析2007年9月18日的日志:SQL>EXECUTEdbmslogmnr.startlogmnr(DictFileName=>′/data1/oracle/logs/v816dict.ora′,StartTime=>todate(′2007−9−1800:00:00′,′YYYY−MM−DDHH24:MI:SS′)EndTime=>todate(′′2007−9−1823:59:59′,′YYYY−MM−DDHH24:MI:SS′));也可以通过设置起始SCN和截至SCN来限制要分析日志的范围:SQL>EXECUTEdbmslogmnr.startlogmnr(DictFileName=>′/data1/oracle/logs/v816dict.ora′,StartScn=>20,EndScn=>50);4、观察分析结果(vlogmnr_contents)
到现在为止,我们已经分析得到了重作日志文件中的内容。动态性能视图vlogmnrcontents包含LogMiner分析得到的所有的信息。SELECTsqlredoFROMvlogmnr_contents;
如果我们仅仅想知道某个用户对于某张表的操作,可以通过下面的SQL查询得到,该查询可以得到用户DB_ZGXT对表SB_DJJL所作的一切工作。
SQL> SELECT sql_redo FROM vlogmnrcontentsWHEREusername=′DBZGXT′ANDtablename=′SBDJJL′;需要强调一点的是,视图vlogmnr_contents中的分析结果仅在我们运行过程'dbms_logmrn.start_logmnr'这个会话的生命期中存在。这是因为所有的LogMiner存储都在PGA内存中,所有其他的进程是看不到它的,同时随着进程的结束,分析结果也随之消失。
最后,使用过程DBMS_LOGMNR.END_LOGMNR终止日志分析事务,此时PGA内存区域被清除,分析结果也随之不再存在。
5、查看LogMiner工具分析结果
SQL> select * from dict t where t.table_name like '%LOGMNR%';-看所有与logmnr相关的视图
TABLE_NAME COMMENTS
------------------------------ --------------------------------------------------------------------------------
GVLOGMNR_CALLBACK Synonym for GV_LOGMNR_CALLBACK
GVLOGMNR_CONTENTS Synonym for GV_LOGMNR_CONTENTS
GVLOGMNR_DICTIONARY Synonym for GV_LOGMNR_DICTIONARY
GVLOGMNR_LOGFILE Synonym for GV_LOGMNR_LOGFILE
GVLOGMNR_LOGS Synonym for GV_LOGMNR_LOGS
GVLOGMNR_PARAMETERS Synonym for GV_LOGMNR_PARAMETERS
GVLOGMNR_PROCESS Synonym for GV_LOGMNR_PROCESS
GVLOGMNR_REGION Synonym for GV_LOGMNR_REGION
GVLOGMNR_SESSION Synonym for GV_LOGMNR_SESSION
GVLOGMNR_STATS Synonym for GV_LOGMNR_STATS
GVLOGMNR_TRANSACTION Synonym for GV_LOGMNR_TRANSACTION
VLOGMNR_CALLBACK Synonym for V_LOGMNR_CALLBACK
VLOGMNR_CONTENTS Synonym for V_LOGMNR_CONTENTS
VLOGMNR_DICTIONARY Synonym for V_LOGMNR_DICTIONARY
VLOGMNR_LOGFILE Synonym for V_LOGMNR_LOGFILE
VLOGMNR_LOGS Synonym for V_LOGMNR_LOGS
VLOGMNR_PARAMETERS Synonym for V_LOGMNR_PARAMETERS
VLOGMNR_PROCESS Synonym for V_LOGMNR_PROCESS
VLOGMNR_REGION Synonym for V_LOGMNR_REGION
VLOGMNR_SESSION Synonym for V_LOGMNR_SESSION
TABLE_NAME COMMENTS
------------------------------ --------------------------------------------------------------------------------
VLOGMNR_STATS Synonym for V_LOGMNR_STATS
VLOGMNR_TRANSACTION Synonym for V_LOGMNR_TRANSACTION
GVLOGMNRLOGS是分析日志列表视图分析结果在GVLOGMNR_CONTENTS 视图中,可按以下语句查询:
select scn,timestamp,log_id,seg_owner,seg_type,table_space,data_blk#,data_obj#,data_objd#,
session#,serial#,username,session_info,sql_redo,sql_undo from logmnr3 t where t.sql_redo like 'create%';
如果不能正常查询GVLOGMNRCONTENTS视图,并报以下错误,ORA−01306:在从vlogmnr_contents 中选择之前必须调用 dbms_logmnr.start_logmnr() 。可采用如下方法:
create table logmnr3 as select * from GV$LOGMNR_CONTENTS;
Oracle端口:1521
出处:http://hi.baidu.com/shuker/item/25ee611ee960c7426826bb1f
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?