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

來源:互聯網
上載者:User

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

oracle歸檔日誌一般由dml語句產生,所以增加太快應該是dml太頻繁

首先查詢以下每天的歸檔產生的情況:

SELECT TRUNC(FIRST_TIME) "TIME",
             SUM(BLOCK_SIZE * BLOCKS) / 1024 / 1024 / 1024 "SIZE(GB)"
    FROM V$ARCHIVED_LOG
 GROUP BY TRUNC(FIRST_TIME);

從而好判斷那個時間段開始歸檔比較異常


從以下兩種方式分析歸檔日誌的情況


方法一:使用logminer


1,使用指令碼建立相關的包

@$ORACLE_HOME/rdbms/admin/dbmslm.sql
 @$ORACLE_HOME/rdbms/admin/dbmslmd.sql;
第一個指令碼用來建立DBMS_LOGMNR包,該包用來分析記錄檔。
第二個指令碼用來建立DBMS_LOGMNR_D包,該包用來建立資料字典檔案。

2.指定要分析的記錄檔
    exec sys.dbms_logmnr.add_logfile(logfilename => '/archivelog/node/1_771348_78836667000.arc',options => dbms_logmnr.new);

3.使用本地的線上資料字典分析歸檔日誌
    exec sys.dbms_logmnr.start_logmnr(options => sys.dbms_logmnr.dict_from_online_catalog);



4,查詢分析出來的歸檔日誌內容,例如統計最大修改量的Schema
    select seg_owner,count(*) from v$logmnr_contents group by seg_owner;
    select count(1),substr(sql_redo,1,30) from v$logmnr_contents group by substr(sql_redo,1,30) order by count(1) desc ;

5.增加別的記錄檔
    exec sys.dbms_logmnr.add_logfile(logfilename=>'/archivelog/node/1_773333_78836667000.arc');
   exec sys.dbms_logmnr.add_logfile(logfilename=>'/archivelog/node1/1_773334_78836667000.arc');
6.結束分析歸檔日誌
    exec sys.dbms_logmnr.end_logmnr;


方法二:使用toad工具查看日誌資訊

在database 找到logminer 然後把要分析的日誌放進去,裡面有詳細的資料庫執行記錄,很直觀的看到產生歸檔的語句


查出來語句後,然後給開發一塊商量還是否可以降低一些dml語句的執行頻率



怎解決“歸檔日誌已滿問題”

oem開啟oracle 10g 資料庫操作介面,會顯示如下錯誤資訊: “ 由於輸出裝置已滿或不可用, 歸檔程式無法歸檔重做日誌。”資料庫無法使用現將解決辦法稍作總結:方法一:增大歸檔日誌空間的大小可以通過下面的方法來調整系統的回閃恢複區大小:首先是關閉資料庫:以SYS身份連結到oracle,執行>shutdown immediate;啟動資料庫到mount狀態:>startup mount查看回閃恢複區的大小和存放目標:>show parameter db_recovery_file_dest修改回閃恢複區的大小>alter system set db_recovery_file_dest_size = 4G(預設是2G,可以根據實際情況調整大小)最後開啟資料庫:>alter database open; OK , 問題解決。資料庫恢複使用。方法二 :進入oracle清空日誌資訊,把空間釋放出來啟動資料庫到mount狀態: >sqlplus “/as sysdba”>startup mount新起一個終端,用rman進入把歸檔日誌刪除命令>rman target/ (只安裝了一個oracle10g資料庫)命令>crosscheck archivelog all; (列出歸檔日誌資訊)命令>delete expired archivelog all; (將上述列出的歸檔日誌刪除)命令>exit;此時最好將資料庫重新備份一下把資料庫的mount狀態更改為open狀態>alter database open; OK.問題解決,資料庫可以使用。 誤區: 在系統清空歸檔目錄的日誌資訊(即物理刪除歸檔日誌,或將歸檔日誌轉移至別處)不可取,OS雖然刪除了,但oracle系統識別不出來已經清空日誌,只能進入oracle清空日誌資訊,把空間釋放出來,(方法二);或者是把歸檔空間設定更大(方法一)。 建議將兩種方法結合使用,減少工作量,也避免資料庫頻繁掛起。同時定時進行資料庫完全備份或其他重要資料備份
 
怎解決“歸檔日誌已滿問題”

問題描述:所用資料庫為 oracle 10g ,模式為歸檔模式,oracle 系統預設的歸檔空間為2G,由於日誌過多,空間寫滿,資料庫的redo檔案不能歸檔,而出現oracle資料庫掛起的問題。oem開啟oracle 10g 資料庫操作介面,會顯示如下錯誤資訊:由於輸出裝置已滿或不可用, 歸檔程式無法歸檔重做日誌。資料庫無法使用現將解決辦法稍作總結:方法一:增大歸檔日誌空間的大小可以通過下面的方法來調整系統的回閃恢複區大小:首先是關閉資料庫:以SYS身份連結到oracle,執行shutdown immediate;啟動資料庫到mount狀態:startup mount查看回閃恢複區的大小和存放目標:show parameter db_recovery_file_dest修改回閃恢複區的大小alter system set db_recovery_file_dest_size = 4G(預設是2G,可以根據實際情況調整大小)最後開啟資料庫:alter database open;OK , 問題解決。資料庫恢複使用。方法二 :進入oracle清空日誌資訊,把空間釋放出來啟動資料庫到mount狀態:sqlplus /as sysdbastartup mount新起一個終端,用rman進入把歸檔日誌刪除命令rman target/ (只安裝了一個oracle10g資料庫)命令crosscheck archivelog all; (列出歸檔日誌資訊)命令delete expired archivelog all; (將上述列出的歸檔日誌刪除)命令exit;此時最好將資料庫重新備份一下把資料庫的mount狀態更改為open狀態alter database open;OK.問題解決,資料庫可以使用。誤區:在系統清空歸檔目錄的日誌資訊(即物理刪除歸檔日誌,或將歸檔日誌轉移至別處)不可取,OS雖然刪除了,但oracle系統識別不出來已經清空日誌,只能進入oracle清空日誌資訊,把空間釋放出來,(方法二);或者是把歸檔空間設定更大(方法一)。建議將兩種方法結合使用,減少工作量,也避免資料庫頻繁掛起。同時定時進行資料庫完全備份或其他重要資料備份
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.