欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

DBA必備工具之Oracle環(huán)境中自動刪除歸檔日志

 更新時間:2025年09月18日 09:23:24   作者:認真就輸DBA  
在Oracle數(shù)據(jù)庫中刪除歸檔日志是一個重要的維護任務,以確保數(shù)據(jù)庫的性能和存儲空間的有效利用,這篇文章主要介紹了DBA必備工具之Oracle環(huán)境中自動刪除歸檔日志的相關資料,需要的朋友可以參考下

簡介

delete_archive 是一個用于自動化管理 Oracle 數(shù)據(jù)庫歸檔日志的 Go 語言腳本。

此腳本來源于之前有2個客戶的需求:

  • 一是一次遷移幾百套數(shù)據(jù)庫,其中要用ADG來遷移,即不能影響到客戶當前歸檔刪除策略或者是原來非歸檔數(shù)據(jù)庫中轉為歸檔模式后磁盤空間的容量,又不能因為過度刪除歸檔日志影響到我們遷移的同步,所以當時就寫了shell版本的一鍵自動刪除歸檔的腳本。
  • 而是一個客戶歸檔日志采用了自動刪除策略,但是在還原過程中發(fā)現(xiàn)歸檔日志缺失,最后分析原因是自動刪除策略將未備份的歸檔日志刪除了。

腳本的初衷就是盡可能保留舊的歸檔日志,同時也考慮到空間自定義規(guī)則。

獲取腳本

公眾號回復delete_archive即可獲得下載鏈接

使用方法

語法

Usage: ./delete_archive [options]

參數(shù)說明

  • -s <instance> 指定要處理的 Oracle 實例名,0 表示所有實例(默認:htz)
  • -n <num> 歸檔日志刪除的磁盤使用率閾值,達到該百分比時觸發(fā)刪除(默認:90),刪除時,自動刪除最舊的2個已經(jīng)成功備份的歸檔日志。
  • -f <num2> 強制刪除的磁盤使用率閾值,達到該百分比時強制刪除(默認:98),不會進行是否進行備份的判斷。
  • -d 啟用腳本調(diào)試模式,輸出詳細調(diào)試日志(默認false)
  • -v 顯示腳本版本號和聯(lián)系方式
  • -h, --help 顯示幫助信息
[oracle@oracleadg tmp]$ ./deletearchive -help
Usage: ./deletearchive [options]
Options:
  -s <instance>   instance name you will delete archivelog, 0 means all instances (default: htz)
  -n <num>        Threshold (percent) to trigger log deletion (default: 90)
  -f <num2>       Threshold (percent) to trigger forced log deletion (default: 98)
  -d              Enable script debugging
  -v              display script version and contact info
  -h, --help      display this help information

Version: 0.1
Contact: For the latest version, contact phone/WeChat: 18081072613

示例

  • 刪除所有實例歸檔日志,使用默認閾值:
  ./delete_archive -s 0
  [oracle@oracleadg tmp]$ ./deletearchive -s 0
2025-07-02 00:48:03.184868 main.main                : Script started at: 2025-07-02T00:48:03+08:00
2025-07-02 00:48:03.212655 main.getRunningInstances : Running instances: htz191, htz192
2025-07-02 00:48:03.212726 main.setOracleSID        : beging executing modify Oracle sid
2025-07-02 00:48:03.212754 main.checkCkptProcess    : beging executing check ckpt process
2025-07-02 00:48:03.238535 main.setOracleSID        : Set ORACLE_SID to: htz191
2025-07-02 00:48:03.314795 main.setOracleSID        : beging executing modify Oracle sid
2025-07-02 00:48:03.314854 main.checkCkptProcess    : beging executing check ckpt process
2025-07-02 00:48:03.337470 main.setOracleSID        : Set ORACLE_SID to: htz191
2025-07-02 00:48:03.511368 main.getDiskUsage        : The archive path is configured as a file system
2025-07-02 00:48:03.581760 main.getDiskUsage        : Using FRA to manage archive logs
2025-07-02 00:48:03.644475 main.deleteMain          : Current archive used PCT :76
2025-07-02 00:48:03.644534 main.setOracleSID        : beging executing modify Oracle sid
2025-07-02 00:48:03.644555 main.checkCkptProcess    : beging executing check ckpt process
2025-07-02 00:48:03.666678 main.setOracleSID        : Set ORACLE_SID to: htz192
2025-07-02 00:48:03.749803 main.setOracleSID        : beging executing modify Oracle sid
2025-07-02 00:48:03.749859 main.checkCkptProcess    : beging executing check ckpt process
2025-07-02 00:48:03.772382 main.setOracleSID        : Set ORACLE_SID to: htz192
2025-07-02 00:48:03.923390 main.getDiskUsage        : The archive path is configured as a file system
2025-07-02 00:48:03.998782 main.getDiskUsage        : Using FRA to manage archive logs
2025-07-02 00:48:04.078302 main.deleteMain          : Current archive used PCT :76
2025-07-02 00:48:04.078363 main.main                : Script ended at: 2025-07-02T00:48:04+08:00
  • 刪除指定實例(如 htz1)歸檔日志,刪除閾值 85%,強制閾值 95%:
  ./delete_archive -s htz1 -n 85 -f 95
  部分日志:
  [oracle@oracleadg tmp]$ ./deletearchive -s $ORACLE_SID -f 75
2025-07-02 00:48:42.010254 main.main                : Script started at: 2025-07-02T00:48:42+08:00
2025-07-02 00:48:42.010318 main.setOracleSID        : beging executing modify Oracle sid
2025-07-02 00:48:42.010336 main.checkCkptProcess    : beging executing check ckpt process
2025-07-02 00:48:42.041291 main.setOracleSID        : Set ORACLE_SID to: htz191
2025-07-02 00:48:42.107775 main.setOracleSID        : beging executing modify Oracle sid
2025-07-02 00:48:42.107832 main.checkCkptProcess    : beging executing check ckpt process
2025-07-02 00:48:42.131013 main.setOracleSID        : Set ORACLE_SID to: htz191
2025-07-02 00:48:42.267686 main.getDiskUsage        : The archive path is configured as a file system
2025-07-02 00:48:42.340124 main.getDiskUsage        : Using FRA to manage archive logs
2025-07-02 00:48:42.415996 main.deleteMain          : Current archive used PCT :76 and Force delete archive log
2025-07-02 00:48:42.416059 main.deleteArchLog       : Begin delete archive log 
2025-07-02 00:48:50.260200 main.getDiskUsage        : The archive path is configured as a file system
2025-07-02 00:48:50.337404 main.getDiskUsage        : Using FRA to manage archive logs
2025-07-02 00:48:50.404294 main.deleteMain          : Current archive used PCT :76 and Force delete archive log
2025-07-02 00:48:50.404363 main.deleteArchLog       : Begin delete archive log 
2025-07-02 00:48:57.816066 main.getDiskUsage        : The archive path is configured as a file system
2025-07-02 00:48:57.895482 main.getDiskUsage        : Using FRA to manage archive logs
2025-07-02 00:48:57.975555 main.deleteMain          : Current archive used PCT :76 and Force delete archive log
2025-07-02 00:48:57.975615 main.deleteArchLog       : Begin delete archive log 
2025-07-02 00:49:04.846875 main.getDiskUsage        : The archive path is configured as a file system
2025-07-02 00:49:04.919516 main.getDiskUsage        : Using FRA to manage archive logs
2025-07-02 00:49:04.996407 main.deleteMain          : Current archive used PCT :76 and Force delete archive log
2025-07-02 00:49:04.996468 main.deleteArchLog       : Begin delete archive log 
2025-07-02 00:49:12.081336 main.getDiskUsage        : The archive path is configured as a file system
2025-07-02 00:49:12.160922 main.getDiskUsage        : Using FRA to manage archive logs
2025-07-02 00:49:12.245844 main.deleteMain          : Current archive used PCT :76 and Force delete archive log
2025-07-02 00:49:12.245906 main.deleteArchLog       : Begin delete archive log 
2025-07-02 00:49:12.322223 main.deleteArchLog       : Get error archive log info :no rows selected
  • 啟用調(diào)試模式:
    ./delete_archive -d
    
  • 查看幫助信息:
    ./delete_archive -h
    ./delete_archive --help
    ./delete_archive -help
    
  • 查看版本信息:
    ./delete_archive -v
    

日志說明

  • 日志文件默認保存在腳本同級目錄下的 log/ 目錄中。
  • 主要日志文件:
    • delete_archiveerrors.txt 錯誤日志
    • delete_archivedebug.txt 調(diào)試日志
  • 日志內(nèi)容包括操作時間、函數(shù)名、日志級別和詳細信息。

版本信息

  • 當前版本:0.1
  • 聯(lián)系方式:如有問題或建議,請聯(lián)系 18081072613(電話/微信同號)

獲取腳本

公眾號回復delete_archive即可,目前腳本只編譯了Linux版本。

注意事項

  • 需以有權限的 Oracle 用戶運行,確保能訪問數(shù)據(jù)庫和相關歸檔目錄。
  • 需在 Oracle 數(shù)據(jù)庫服務器上運行,且環(huán)境變量 ORACLE_SID 可被正確設置。
  • 腳本會自動檢測并切換 ORACLE_SID,無需手動干預。
  • 強制刪除模式下,歸檔日志即使未備份也會被刪除,請謹慎設置閾值。
  • 如遇腳本報錯或異常退出,請檢查日志文件獲取詳細信息。

功能說明

  • 自動檢測 Oracle 實例歸檔日志的存儲使用率。
  • 支持文件系統(tǒng)和 ASM 磁盤組歸檔路徑的檢測與處理。
  • 支持 FRA(閃回恢復區(qū))和手動歸檔管理模式。
  • 根據(jù)設定的閾值自動刪除最老的歸檔日志,優(yōu)先刪除已備份的歸檔。
  • 支持強制刪除(無備份也可刪除),防止磁盤空間耗盡。
  • 支持多實例批量處理。
  • 詳細日志輸出,便于問題追蹤。

總結

到此這篇關于DBA必備工具之Oracle環(huán)境中自動刪除歸檔日志的文章就介紹到這了,更多相關Oracle自動刪除歸檔日志內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Oracle導入導出dmp文件具體示例

    Oracle導入導出dmp文件具體示例

    這篇文章主要給大家介紹了關于Oracle導入導出dmp文件的相關資料,dmp文件為oracle數(shù)據(jù)庫的數(shù)據(jù)備份文件,執(zhí)行oracle數(shù)據(jù)庫導出dmp文件,相當于執(zhí)行數(shù)據(jù)庫備份;執(zhí)行導入dmp文件,相當于數(shù)據(jù)庫還原,需要的朋友可以參考下
    2023-11-11
  • Oracle中rank,over partition函數(shù)的使用方法

    Oracle中rank,over partition函數(shù)的使用方法

    本文主要介紹Oracle中rank,over partition函數(shù)的用法,希望對大家有所幫助。
    2016-05-05
  • Oracle CBO幾種基本的查詢轉換詳解

    Oracle CBO幾種基本的查詢轉換詳解

    這篇文章主要介紹了Oracle CBO幾種基本的查詢轉換詳解,包含視圖合并、子查詢解嵌套、謂語前推、物化視圖查詢重寫等內(nèi)容,需要的朋友可以參考下
    2014-07-07
  • oracle丟失temp表空間的處理方法

    oracle丟失temp表空間的處理方法

    之前有做臨時表空間的切換,切換后沒drop tablespace就刪除了temp01.dbf結果排序跟查dba_temp_files報錯
    2023-05-05
  • Oracle數(shù)據(jù)庫ORA 54013錯誤的解決辦法

    Oracle數(shù)據(jù)庫ORA 54013錯誤的解決辦法

    ORA 54013 不允許對虛擬列執(zhí)行INSERT 操作,這是Oracle 11 的新特性。接下來通過本文給大家介紹oracle數(shù)據(jù)庫ORA 54013錯誤的解決辦法,非常不錯具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-10-10
  • Oracle 的入門心得 強烈推薦

    Oracle 的入門心得 強烈推薦

    oracle的體系太龐大了,對于初學者來說,難免會有些無從下手的感覺,什么都想學,結果什么都學不好,所以把學習經(jīng)驗共享一下,希望讓剛剛入門的人對oracle有一個總體的認識,少走一些彎路。
    2009-05-05
  • oracle復習筆記之PL/SQL程序所要了解的知識點

    oracle復習筆記之PL/SQL程序所要了解的知識點

    本文主要是前篇文章的續(xù)篇,主要來復習PL/SQL的基本語法、記錄類型、流程控制、游標的使用、異常處理機制、存儲函數(shù)/存儲過程、觸發(fā)器。好記性不如爛筆頭,古人誠不欺我~
    2014-08-08
  • Oracle RAC環(huán)境下的阻塞(blocking blocked)介紹和實例演示

    Oracle RAC環(huán)境下的阻塞(blocking blocked)介紹和實例演示

    這篇文章主要介紹了Oracle RAC環(huán)境下的阻塞(blocking blocked)介紹和實例演示本文提供了2個查詢腳本,并給出實例演示那些session為阻塞者,哪些為被阻塞者,需要的朋友可以參考下
    2014-09-09
  • Oracle索引(B*tree與Bitmap)的學習總結

    Oracle索引(B*tree與Bitmap)的學習總結

    本篇文章是對Oracle索引(B*tree與Bitmap)進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • oracle關聯(lián)查詢報invalid number錯誤的解決方法

    oracle關聯(lián)查詢報invalid number錯誤的解決方法

    這篇文章主要介紹了oracle關聯(lián)查詢報invalid number錯誤的解決方法,文中通過代碼示例和圖文結合的方式講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-09-09

最新評論