Oracle日誌文件管理與查看

Oracle日誌文件管理與查看

from:http://hi.baidu.com/shuker/item/25ee611ee960c7426826bb1fsql

  1.查詢系統使用的是哪一組日誌文件:數據庫

  select * from v$log;服務器

  2.查詢正在使用的組所對應的日誌文件:session

  select * from v$logfile;oracle

  3.強制日誌切換:工具

  alter system switch logfile;性能

  4.查詢歷史日誌:ui

  select * from v$log_history;spa

  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 v$logfile;SQL> select * from v$logfile;(#日誌文件路徑)二.Oracle日誌文件包含哪些內容:(日誌的數量可能略有不一樣)control01.ctl example01.dbf redo02.log   sysaux01.dbf undotbs01.dbfcontrol02.ctl redo03.log   system01.dbf users01.dbfcontrol03.ctl redo01.log     SHTTEST.dbf temp01.dbf三.Oracle日誌的查看方法:SQL>select * from v$sql   (#查看最近所做的操做)SQL>select * fromv $sqlarea(#查看最近所做的操做)Oracle 數據庫的全部更改都記錄在日誌中,從目前來看,分析Oracle日誌的惟一方法就是使用Oracle公司提供的LogMiner來進行,由於原始的日誌信 息咱們根本沒法看懂,Oracle8i後續版本中自帶了LogMiner,而LogMiner就是讓咱們看懂日誌信息的工具,經過這個工具能夠:查明數據 庫的邏輯更改,偵察並更正用戶的誤操做,執行過後審計,執行變化分析。 四.LogMiner的使用:一、建立數據字典文件(data-dictionary)1).首先在init.ora初始化參數文件中,添加一個參數UTL_FILE_DIR,該參數值爲服務器中放置數據字典文件的目錄。如:UTL_FILE_DIR = ($ORACLE_HOME\logs) ,從新啓動數據庫,使新加的參數生效:SQL> shutdown;SQL>startup;2).而後建立數據字典文件    SQL> connect /as sysdba    SQL> execute dbms_logmnr_d.build(dictionary_filename => 'dict.ora',dictionary_location => '/data1/oracle/logs');PL/SQL procedure successfully completed二、建立要分析的日誌文件列表    1).建立分析列表,即所要分析的日誌      SQL>execute dbms logmnr.add logfile(LogFileName => '/data1/oracle/oradata/akazamdb/redo01.log',Options => dbms_logmnr.new);      PL/SQL procedure successfully completeds       2).添加分析日誌文件,一次添加1個爲宜      SQL>execute dbms_ logmnr.add_ logfile(LogFileName => '/data1/oracle/oradata/akazamdb/redo01.log',Options => dbms_logmnr.ADDFILE);      PL/SQL procedure successfully completed三、使用LogMiner進行日誌分析(具體要查詢什麼內容能夠本身修改)(1)無限制條件SQL> EXECUTE dbms_logmnr.start_logmnr(DictFileName=>'/data1/oracle/logs/v816dict.ora '); (2)有限制條件     經過對過程DBMS_ LOGMNR.START_LOGMNR中幾個不一樣參數的設置,能夠縮小要分析日誌文件的範圍。經過設置起始時間和終止時間參數咱們能夠限制只分析某一時間範圍的日誌。以下面的例子,咱們僅僅分析2007年9月18日的日誌:SQL> EXECUTE dbms_logmnr.start_logmnr(DictFileName => ' /data1/oracle/logs/ v816dict.ora ', StartTime => to_date('2007-9-18 00:00:00','YYYY-MM-DD HH24:MI:SS')EndTime => to_date(''2007-9-18 23:59:59','YYYY-MM-DD HH24:MI:SS ')); 也能夠經過設置起始SCN和截至SCN來限制要分析日誌的範圍:SQL> EXECUTE dbms_logmnr.start_logmnr(DictFileName => ' /data1/oracle/logs/ v816dict.ora ',StartScn => 20,EndScn => 50); 四、觀察分析結果(v$logmnr_contents)到如今爲止,咱們已經分析獲得了重做日誌文件中的內容。動態性能視圖v$logmnr_contents包含LogMiner分析獲得的全部的信息。SELECT sql_redo FROM v$logmnr_contents; 若是咱們僅僅想知道某個用戶對於某張表的操做,能夠經過下面的SQL查詢獲得,該查詢能夠獲得用戶DB_ZGXT對錶SB_DJJL所做的一切工做。SQL> SELECT sql_redo FROM v$logmnr_contents WHERE username='DB_ZGXT' AND tablename='SB_DJJL'; 需 要強調一點的是,視圖v$logmnr_contents中的分析結果僅在咱們運行過程'dbms_logmrn.start_logmnr'這個會話的 生命期中存在。這是由於全部的LogMiner存儲都在PGA內存中,全部其餘的進程是看不到它的,同時隨着進程的結束,分析結果也隨之消失。最後,使用過程DBMS_LOGMNR.END_LOGMNR終止日誌分析事務,此時PGA內存區域被清除,分析結果也隨之再也不存在。五、查看LogMiner工具分析結果 SQL> select * from dict t where t.table_name like '%LOGMNR%';-看全部與logmnr相關的視圖 TABLE_NAME                       COMMENTS ------------------------------ -------------------------------------------------------------------------------- GV$LOGMNR_CALLBACK               Synonym for GV_$LOGMNR_CALLBACK GV$LOGMNR_CONTENTS               Synonym for GV_$LOGMNR_CONTENTS GV$LOGMNR_DICTIONARY             Synonym for GV_$LOGMNR_DICTIONARY GV$LOGMNR_LOGFILE               Synonym for GV_$LOGMNR_LOGFILE GV$LOGMNR_LOGS                   Synonym for GV_$LOGMNR_LOGS GV$LOGMNR_PARAMETERS             Synonym for GV_$LOGMNR_PARAMETERS GV$LOGMNR_PROCESS               Synonym for GV_$LOGMNR_PROCESS GV$LOGMNR_REGION                 Synonym for GV_$LOGMNR_REGION GV$LOGMNR_SESSION               Synonym for GV_$LOGMNR_SESSION GV$LOGMNR_STATS                 Synonym for GV_$LOGMNR_STATS GV$LOGMNR_TRANSACTION           Synonym for GV_$LOGMNR_TRANSACTION V$LOGMNR_CALLBACK               Synonym for V_$LOGMNR_CALLBACK V$LOGMNR_CONTENTS               Synonym for V_$LOGMNR_CONTENTS V$LOGMNR_DICTIONARY             Synonym for V_$LOGMNR_DICTIONARY V$LOGMNR_LOGFILE                 Synonym for V_$LOGMNR_LOGFILE V$LOGMNR_LOGS                   Synonym for V_$LOGMNR_LOGS V$LOGMNR_PARAMETERS             Synonym for V_$LOGMNR_PARAMETERS V$LOGMNR_PROCESS                 Synonym for V_$LOGMNR_PROCESS V$LOGMNR_REGION                 Synonym for V_$LOGMNR_REGION V$LOGMNR_SESSION                 Synonym for V_$LOGMNR_SESSION TABLE_NAME                       COMMENTS ------------------------------ -------------------------------------------------------------------------------- V$LOGMNR_STATS                   Synonym for V_$LOGMNR_STATS V$LOGMNR_TRANSACTION             Synonym for V_$LOGMNR_TRANSACTION GV$LOGMNR_LOGS 是分析日誌列表視圖 分析結果在GV$LOGMNR_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%'; 若是不能正常查詢GV$LOGMNR_CONTENTS視圖,並報如下錯誤,ORA-01306: 在從 v$logmnr_contents 中選擇以前必須調用 dbms_logmnr.start_logmnr() 。可採用以下方法: create table logmnr3 as select * from GV$LOGMNR_CONTENTS;Oracle端口:1521

相關文章
相關標籤/搜索