1.日志挖掘(dml)
1.打开补充日志
(归档日志,切换日志时,底层原理是先日志组切换再归档)
desc v$database ------查看该参数SUPPLEMENTAL_LOG_DATA_MIN
select SUPPLEMENTAL_LOG_DATA_MIN from v$database; ---------查看是否打开了最小附加日志
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
进行日志挖掘流程,确定挖掘流程,找到归档日志,当前日志,然后添加归档日志,添加当前日志,进行分析(模拟分析流程为删除数据,切换日志组实现归档,提交,再次进行插入数据)
select name from v$archived_log; ----定位切换的归档日志文件路径
select * from v$log; ----------定位当前日志组
select * from v$logfile; ---------------定位当前日志组路径
execute dbms_logmnr.add_logfile(logfilename=>'/u01/arch/1_23_1108895613.dbf',options=>dbms_logmnr.new); ----------归档日志分析
execute dbms_logmnr.add_logfile(logfilename=>'日志',options=>dbms_logmnr.new);
execute dbms_logmnr.add_logfile(logfilename=>'追加日志',options=>dbms_logmnr.addfile); ----追加当前日志组路径
execute dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog); ----进行分析
select username,scn,timestamp,sql_redo from v$logmnr_contents where seg_name='表名'; ----查看,表名大小写需要严格一致
execute dbms_logmnr.end_logmnr; --------关闭日志分析
2.undo
block–8k,重用机制,自动管理,空间从过期到active到未过期在回来循环
在undo块中,分为四部分,active,unexpired未过期,expired过期,free
第一部分,rollback(事务正在进行,可能回滚),isolation(隔离脏读)
第二部分,commit(保留一段时间),retention保留的时间,支持长查询和闪回
第三部分,
通过show可以参考undo参数
10g是自动调优,空间不足会自动拓展,查看undo空间大小
show parameter undo ----------查看正在使用的undo
desc dba_data_files;
select tablespace_name,sum(bytes/1024/1024) mb from dba_data_files group by tablespace_name;
若觉得太大,进行undo替换
create undo tablespace undotbs2 datafile '/u01/oradata/prod/undotbs02.dbf' size 50m autoextend on;
select xid from v$transaction; --------------查看是否有进行的事务
alter system set undo_tablespace=undotbs2;
drop tablespace undotbs1 including contents and datafiles; --