1. 程式人生 > >oracle 歸檔日誌檢視方法--logminer

oracle 歸檔日誌檢視方法--logminer

故障: 資料庫頻繁出現歸檔日誌空間不夠,導致資料庫無法登陸的故障。一查發現原因是歸檔日誌切換頻繁,作業系統空間不夠。 確定原因:
  1. [[email protected]]/oracle>df -g
  2. Filesystem GB blocks Free %Used Iused %Iused Mounted on
  3. /dev/hd4 0.50 0.28 44% 13674 17% /
  4. /dev/hd2 3.00 0.67 78% 49208 23% /usr
  5. /dev/hd9var 1.00 0.37 63% 9285 10% /var
  6. /dev/hd3 2.00 1.03 49% 2407 1% /tmp
  7. /dev/fwdump 1.
    00 0.99 2% 30 1% /var/adm/ras/platform
  8. /dev/hd1 0.25 0.18 28% 465 2% /home
  9. /dev/hd11admin 0.25 0.25 1% 5 1% /admin
  10. /proc - - - - - /proc
  11. /dev/hd10opt 0.50 0.28 44% 10241 14% /opt
  12. /dev/livedump 0.25 0.25 1% 12 1% /var/adm/ras/livedump
  13. /dev/oraclelv 30.00 11.29 63% 161681 6% /oracle
  14. /dev/installlv 15.00 3.38 78% 6478 1% /install
  15. /dev/crslv 10.
    00 3.35 67% 7807 1% /crs
  16. /dev/wmsapplv 30.00 17.49 42% 15537 1% /wmprod
  17. /dev/archivelv 29.25 29.25 1% 4 1% /arch1
  18. /dev/backuplv 400.00 107.13 74% 306 1% /sysbackup
  19. aix02:arch2 30.25 0.64 99% 3 1% /arch2

可以看到,/arch2裡檔案系統空間已經達到99%,/arch2是用來存放歸檔日誌的檔案系統,進而導致資料庫出錯。

提出問題:
這下問題來了,/arch2的空間是30G,每天備份指令碼都會自動rman備份歸檔日誌,並自動清除歸檔日誌檔案,按照正常情況下,資料庫不可能一天產生這麼大的歸檔日誌量。

如何查詢歸檔日誌都是由什麼應用產生的,這就是logminer的用途。

使用方法:

  1. -- 1.指定要分析的日誌檔案
  2. exec sys.dbms_logmnr.add_logfile(logfilename => '/arch2/2_825_733092736.dbf',options => dbms_logmnr.new);
  3. -- 2.使用本地的線上資料字典分析歸檔日誌
  4. exec sys.dbms_logmnr.start_logmnr(options => sys.dbms_logmnr.dict_from_online_catalog);
  5. -- 3.查詢分析出來的歸檔日誌內容,例如統計最大修改量的Schema
  6. select seg_owner,count(*) from v$logmnr_contents group by seg_owner;
  7. -- 4.增加別的日誌檔案
  8. exec sys.dbms_logmnr.add_logfile(logfilename=>'/arch2/2_825_733092736.dbf');
  9. -- 5.結束分析歸檔日誌
  10. exec sys.dbms_logmnr.end_logmnr;

下面是具體的過程:

  1. SQL> exec sys.dbms_logmnr.add_logfile(logfilename => '/arch2/2_825_733092736.dbf',options => dbms_logmnr.new);
  2. PL/SQL procedure successfully completed
  3. SQL> exec sys.dbms_logmnr.start_logmnr(options => sys.dbms_logmnr.dict_from_online_catalog);
  4. PL/SQL procedure successfully completed 
SQL> select seg_owner,count(*) from v$logmnr_contents group by seg_owner;
 
SEG_OWNER                          COUNT(*)
-------------------------------- ----------
                                       2237
SYS                                     688
TMS                                      60
SPHSY                                    70
SINOSYNEW                                30
SINOSY                                  381
WAS                                 4551934
 
7 rows selected
 SQL> execute dbms_logmnr.end_logmnr ;
 
PL/SQL procedure successfully completed

結論:
從上面查詢結果可以看出操作量最大的使用者是WAS使用者,再具體看下v$logmnr_contents可以發現基本修改的內容是一致的。
與開發人員溝通後,最終確認是一個執行update過程存在問題,where條件未正確定位到記錄,每執行一次都會導致大規模的修改資料。

延伸:
LogMiner使用示例

相關推薦

oracle 歸檔日誌檢視方法--logminer

故障: 資料庫頻繁出現歸檔日誌空間不夠,導致資料庫無法登陸的故障。一查發現原因是歸檔日誌切換頻繁,作業系統空間不夠。 確定原因: [[email protected]]/oracle>df -g Filesystem GB blocks Fr

ORACLE 歸檔日誌打開關閉方法(轉載)

後臺進程 for oracl ins pfile clas 切換 med 轉載 一 設置為歸檔方式 1 sql> archive log list; #查看是不是歸檔方式 2 sql> alter system set log_arch

ORACLE 正確刪除歸檔日誌方法

我們都知道在controlfile中記錄著每一個archivelog檔案的相關資訊,當然們在OS下把這些物理檔案delete掉後,在我們的controlfile中仍然記錄著這些archivelog檔案的相關資訊,在oracle的OEM管理器中有視覺化的日誌展現出,當我們手

oracle歸檔日誌增長過快處理方法

oracle歸檔日誌一般由dml語句產生,所以增加太快應該是dml太頻繁 首先查詢以下每天的歸檔產生的情況: SELECT TRUNC(FIRST_TIME) "TIME",              SUM(BLOCK_SIZE * BLOCKS) / 1024 / 10

Windows平臺使用RMAN命令自動刪除Oracle過期歸檔日誌方法

自動刪除Oracle過期歸檔日誌的思路如下: 1、編寫自動執行的bat指令碼檔案; 2、Windows設定定期執行計劃 OracleArchLogClear.bat D:/Oracle/produ

檢視oracle歸檔日誌路徑2

在Oracle中,資料一般是存放在資料檔案中,不過資料庫與Oracle最大的區別之一就是資料庫可以在資料出錯的時候進行恢復。 這個也就是我們常見的Oracle中的重做日誌(REDO FILE)的功能了。在重做日誌分成2部分,一個是線上重做日誌檔案,另外一個就是歸檔日誌檔案。      這裡不詳細說明線上重做日

Oracle 歸檔日誌佔滿儲存空間處理方法(11gR2)

1.如果使用的快速恢復區且磁碟還有空間,調大歸檔 SQL> show parameter recover NAME TYPE VALUE -------------------

Oracle 歸檔日誌

如果 back 通過 data 步驟 沒有 variable 異同 成功 Oracle可以將聯機日誌文件保存到多個不同的位置,將聯機日誌轉換為歸檔日誌的過程稱之為歸檔。相應的日誌被稱為歸檔日誌。 一、歸檔日誌 是聯機重做日誌組文件的一個副本 包含redo

如何正確刪除Oracle 歸檔日誌文件

如何正確刪除oracle 歸檔日誌文件當Oracle中的歸檔日誌空間滿時,則需要把它清空,否則將會影響數據庫正常運行,將無法正常登入ORACLE,需要刪除一部分歸檔日誌才能正常登入ORACLE。一、首先刪除歸檔日誌物理文件,歸檔日誌一般都是位於archive目錄下,在Oracle 10g中AIX系統下文件格式

9. Oracle 歸檔日誌

不同 查看數據庫 rst recover led location 最大 defer 功能 轉載自:http://blog.csdn.net/leshami/article/details/5784713 Oracle可以將聯機日誌文件保存到多個不同的位置,將聯機日誌轉換為

Oracle歸檔日誌 ORA-00257:archiver error解決辦法 清理Oracle歸檔日誌

ORA-00257:archiver error解決辦法   出現ORA-00257錯誤(空間不足錯誤),通過查詢資料,絕大部分說這是由於歸檔日誌太多,佔用了全部的硬碟剩餘空間導致的,通過簡單刪除日誌或加大儲存空間就能夠解決。 工具/原料 資料庫Oracle

Oracle11g日誌檢視方法

oracle11g修改了日誌系統,不在使用oracle9的alert_$ORACLE_SID.log日誌,修改為Diag Alert 和Diag Trace兩個目錄儲存xml格式和文字格式的日誌,這個兩個目錄分別放置於/oracle/oracle/diag/rdbms/rac/rac1/trace和/or

ORACLE歸檔日誌滿後如何正確刪除歸檔日誌

當ORACLE 歸檔日誌滿了後,將無法正常登入ORACLE,需要刪除一部分歸檔日誌才能正常登入ORACLE。 一、首先刪除歸檔日誌物理檔案,歸檔日誌一般都是位於archive目錄下,AIX系統下檔案格式為“1_17884_667758186.dbf”,建議操作前先對資料庫

ORACLE歸檔日誌的切換

、歸檔日誌 1--在系統建立歸檔路徑 mkdir /u01/arch 2--修改資料庫歸檔日誌的路徑引數  alter system set log_archive_dest_1='location=/u01/arch' scope=spfile; 3--修改歸

2017-04-28 DBA日記,各作業系統OS系統日誌檢視方法

背景: 如之前章節所介紹的,資料庫問題分析的一個重要步驟就是收集資料,其中作業系統日誌的收集便是其中一部份,所以為了能夠快速準確收集到該部份的日誌,我們必須瞭解各個作業系統日誌的檢視方式。 問題: 如何能快速有效檢視作業系統的日誌? 解答: 1. LINUX的日誌檢視

刪除ORACLE歸檔日誌

一、檢視歸檔日誌佔用總空間百分比; select * from V$FLASH_RECOVERY_AREA_USAGE; 二、檢視歸檔日誌的目錄; show parameter recover; 三、直接去該目錄下刪除檔案即可 四、在作業系統的命令列下執行:rman t

Oracle歸檔日誌滿了怎麼辦

歸檔滿了 如果伺服器進不去檢視pfile檔案,在pfile檔案裡面有歸檔除存放的路徑 *.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area' 如果伺服器本地可以進去,就可以檢視歸檔目錄 SQ

Oracle歸檔日誌處理

1.alter system switch logfile; ---shutdown abort; 2.然後shutdown im

Linux 6種日誌檢視方法,不會看日誌會被鄙視的

作為一名後端程式設計師,和Linux打交道的地方很多,不會看Linux日誌,非常容易受到來自同事和麵試官的嘲諷,所以掌握一種或者幾種檢視日誌的方法非常重要。 Linux檢視日誌的命令有多種: tail、cat、tac、head、echo等,本文只介紹幾種常用的方法。 1、tail 這個是我最常用的一種檢視

Oracle歸檔日誌所在目錄時間不對&&Oracle叢集日誌時間顯示錯誤

  Oracle歸檔日誌所在目錄時間不對&&Oracle叢集日誌時間顯示錯誤 前言 這個問題在18年的時候遇到了,基本不注意並且叢集或者資料庫執行正常是很難注意到的。 忘記當時怎麼發現的了,最近拿出來重現一下問題。 具體描述一下問題: 比如當前時間是2020年07月03日0點,資料庫