mysql 歸檔日誌 頻繁產生歸檔日誌處理報告

2021-10-19 18:28:00 字數 2516 閱讀 5624

頻繁產生歸檔日誌處理報告

2023年10月27日,客戶資料庫突然間頻繁產生大量歸檔日誌,導致資料庫hang住,影響現場生產!由於oracle歸檔日誌一般由dml語句產生,所以增加太快應該是dml太頻繁。

首先查詢以下每小時連線日誌切換頻率的情況:

select to_char(first_time,'yyyy-mm-ddhh24') first_time,count(*)

from v$log_history

where to_char(first_time, 'yyyymmdd')

group by to_char(first_time,'yyyy-mm-ddhh24') order by first_time desc;

可以看到資料庫每個小時切換的聯機日誌的次數達650多次,每個連線日誌大小是50m,發生切換時會將聯機日誌寫入歸檔日誌,所以歸檔日誌增加很快。一小時產生的歸檔日誌高達30g多。

首先通過awr報告可以看到資料庫的主要負載是產生大量的redo日誌:

關鍵是要找到相應的sql語句,來判斷問題發生的情況。所以我們使用logminer工具來分析相應的歸檔日誌,來找到相應的sql語句:

檢視磁碟上的歸檔日誌檔案的路徑和名稱:

路徑檢視語句:show parameter db_recovery!

在相應的目錄下找到歸檔日誌:

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=> '+recoverydata/orcl/adchivelog/2017_10_27/thread_2_seq_148046.384.958475205',options=> dbms_logmnr.new);

exec sys.dbms_logmnr.start_logmnr(options=> sys.dbms_logmnr.dict_from_online_catalog);

4,查詢分析出來的歸檔日誌內容,例如統計最大修改量的schema

select seg_owner,count(*) fromv$logmnr_contents group by seg_owner;

select count(1),substr(sql_redo,1,30) fromv$logmnr_contents group by substr(sql_redo,1,30) order by count(1) desc ;

通過上圖可以看到資料庫中大量的回滾操作,回滾一般是由於資料庫dml語句失敗所致,所以再去檢視trace日誌,發現資料庫存在大量的報錯資訊!如下圖所示:

ora-1654: unable to extend indexmes.pk_bbm_trace_info by 128 in tablespace               mesdb_base_data01

ora-1654: unable to extend indexmes.pk_bbm_trace_info by 1024 in tablespace               mesdb_base_data01

ora-1654: unable to extend indexmes.pk_bbm_trace_info by 128 in tablespace               mesdb_base_data01

ora-1654: unable to extend indexmes.pk_bbm_trace_info by 1024 in tablespace               mesdb_base_data01

ora-1654: unable to extend indexmes.pk_bbm_trace_info by 128 in tablespace               mesdb_base_data01

ora-1654: unable to extend indexmes.pk_bbm_trace_info by 1024 in tablespace               mesdb_base_data01

ora-1654: unable to extend indexmes.pk_bbm_trace_info by 128 in tablespace               mesdb_base_data01

ora-1654: unable to extend indexmes.pk_bbm_trace_info by 1024 in tablespace               mesdb_base_data01

報錯已經很清楚的說明,是由於在表空間中無法擴大索引所致!查詢相應的表空間,發現表空間只有2g大小,增加表空間到30g,並設定表空間自動增長,最大無限大!

更改完後再次查詢聯機日誌切換頻率如下所示:

此時再查詢歸檔日誌的增加大小發現已經不增加了。

mysql 歸檔日誌 Oracle歸檔日誌總結

1.開啟歸檔日誌 sqlplus as sysdba sql shutdown immediate sql startup mount 開啟控制檔案,不開啟資料檔案 sql alter database archivelog 將資料庫切換為歸檔模式 sql alter database open 將...

mysql 清理歸檔日誌 oracle歸檔日誌清理

在開啟歸檔並沒有截斷日誌的情況下,歸檔日誌會越來越大,在此情況下,我們該如何去清理!兩種方法 1 配置rman自動管理archivelog。也可在rman中將資料備份到磁帶上,然後將過期的archivelog刪除 2 可以手工來處理,步驟如下 1 將 oracle下的相關archivelog日誌檔案...

mysql怎麼刪除歸檔日誌 歸檔日誌刪除需要注意項

delete archivelog all將會毫無保留的刪除所有的歸檔日誌 在控制檔案中有相應記錄的 1 delete archivelog all將會毫無保留的刪除所有的歸檔日誌 在控制檔案中有相應記錄的 2 歸檔日誌的資訊被記錄在控制檔案之中,其生存期和可保留的總數也受到控制檔案建立初以及引數c...