ORACLE 11.2.0.4 數據庫磁盤空間爆滿導致GAP產生

前言

昨天晚上深夜接到客戶電話,反應數據庫無法正常使用,想進入服務器檢查時,登錄響應非常慢。等兩分鐘后進入服務器且通過sqlplus進入數據庫也很慢。通過檢查服務器磁盤空間發現數據庫所在區已經爆滿,導致數據庫在運行期間新增審計文件無法成功導致數據庫宕機。客戶說按照之前的策略,正常每天做完備份后均會刪除七天前的歸檔日志。磁盤空間會保證一定程度的可用量。可最近直線上升。

問題

1、客戶反應磁盤空間爆滿不符合當前數據庫的整體策略?
2、為什么會出現磁盤爆滿的情況?

思考方向

1、磁盤空間爆滿是因為數據庫在運行期間,會不斷產生日志文件(包括alert、trace、listener、audit等),同時如果數據文件使用了自動擴展也會占用磁盤空間。如果不定期清理日志文件和對數據文件進行瘦身,只會導致數據庫占比空間越來越大。且客戶有提到定期刪除日志的現象,所以暫時排除該現象

2、磁盤空間爆滿不符合數據庫的整體策略。數據庫針對不同方向可定制不同策略。如備份策略、日志文件定期刪除策略。據客戶反應,他們擁有備份和日志文件定期刪除策略。也可以暫時排除該方向

檢查

1、檢查發現數據庫確實存在備份策略和日志文件定期刪除策略,且定時任務正常執行。檢查以上策略的日志文件發現。日志文件定期刪除策略中的日志記錄正常執行,但是備份策略中的歸檔日志無法刪除。

2、數據庫中的歸檔日志無法刪除。按照當前客戶配置來看,不存在RAC環境。那么最大的可能就是DG庫。那么問題就顯而易見了,當存在DG庫時,如果從庫無法接收主庫所產生的歸檔日志,那么主庫的歸檔日志將無法刪除,且會持續增長并占用主庫磁盤空間。經檢查從庫磁盤空間,確實是從庫磁盤空間爆滿導致無法接收主庫日志進行應用。所以主庫無法刪除歸檔日志。

查詢從庫是否存在GAP

1、從庫查詢GAP

SQL> select * from v$archive_gap;THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
---------- ------------- --------------1           332            334

2、查詢從庫已應用的日志

# 查詢應用完成的日志
SQL> SELECT max(sequence#) from v$archived_log where applied='YES';MAX(SEQUENCE#)
--------------332

經查發現,從庫由于磁盤空間爆滿無法應用日志導致GAP產生。開始修復

刪除從庫已經應用的日志

注意:此處刪除的日志應盡最大程度符合備份策略中對于歸檔日志刪除的保留期

# 刪除七天前的日志
find . -type f -mtime +7 -exec rm -rf  {} \;

從庫重新注冊未應用的歸檔日志

RMAN>catalog start with '/data/archive_log_332.log';
RMAN>catalog start with '/data/archive_log_333.log';
RMAN>catalog start with '/data/archive_log_334.log';

從庫應用GAP日志

RMAN>restore archivelog sequence between 332 and 334;

從庫開啟日志同步

SQL>alter database recover managed standby database using current logfile disconnect from session;

校驗

經檢查發現依然存在GAP。所以此處使用備份進行修復

QL> select process,client_process,sequence#,status,BLOCK#,BLOCKS,GROUP#,delay_mins from v$managed_standby;PROCESS   CLIENT_P  SEQUENCE# STATUS           BLOCK#     BLOCKS
--------- -------- ---------- ------------ ---------- ----------
GROUP#                                   DELAY_MINS
---------------------------------------- ----------
ARCH      ARCH              0 CONNECTED             0          0
N/A                                               0ARCH      ARCH            443 CLOSING           12288       1610
5                                                 0ARCH      ARCH              0 CONNECTED             0          0
N/A                                               0PROCESS   CLIENT_P  SEQUENCE# STATUS           BLOCK#     BLOCKS
--------- -------- ---------- ------------ ---------- ----------
GROUP#                                   DELAY_MINS
---------------------------------------- ----------
ARCH      ARCH            444 CLOSING               1        321
4                                                 0RFS       ARCH              0 IDLE                  0          0
N/A                                               0RFS       LGWR            445 IDLE                 25          1
1                                                 0PROCESS   CLIENT_P  SEQUENCE# STATUS           BLOCK#     BLOCKS
--------- -------- ---------- ------------ ---------- ----------
GROUP#                                   DELAY_MINS
---------------------------------------- ----------
RFS       UNKNOWN           0 IDLE                  0          0
N/A                                               0MRP0      N/A             335 wait_for_gap         25     102400
N/A                                               0

修復方法

1、查詢從庫當前SCN

SQL> select  to_char(current_scn) from v$database;TO_CHAR(CURRENT_SCN)
----------------------------------------
993872

2、從庫斷開日志同步

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

3、從庫關機并啟動到nomount狀態

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>startup nomount;

4、主庫執行備份

run{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
backup as backupset incremental from scn 993872 database format '/data/db/backup/zengliang_%u.bak';
backup current controlfile for standby format '/data/db/backup/standby.bak';
release channel c1;
release channel c2;
}

5、從庫恢復控制文件

RMAN> restore standby controlfile from '/data/db/backup/standby.bak';Starting restore at 14-MAY-25
using channel ORA_DISK_1channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/data/db/oradata/master/control01.ctl
output file name=/data/db/oradata/master/control02.ctl
Finished restore at 14-MAY-25

6、從庫注冊備份

RMAN> catalog start with '/data/db/backup/';
searching for all files that match the pattern /data/db/backup/
List of Files Unknown to the Database
=====================================
File Name: /data/db/backup/standby.bak
File Name: /data/db/backup/zengliang_0e3peq3p.bak
File Name: /data/db/backup/zengliang_0f3peq3p.bak
File Name: /data/db/backup/zengliang_0g3peq4s.bak

7、從庫恢復數據庫

RMAN> recover database noredo;Starting recover at 14-MAY-25
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00001: /data/db/oradata/master/system01.dbf
destination for restore of datafile 00003: /data/db/oradata/master/undotbs01.dbf
destination for restore of datafile 00005: /data/db/oradata/master/apps.dbf
channel ORA_DISK_1: reading from backup piece /data/db/backup/zengliang_0e3peq3p.bak
channel ORA_DISK_1: piece handle=/data/db/backup/zengliang_0e3peq3p.bak tag=TAG20250514T161657
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00002: /data/db/oradata/master/sysaux01.dbf
destination for restore of datafile 00004: /data/db/oradata/master/users01.dbf
destination for restore of datafile 00006: /data/db/oradata/master/test.dbf
channel ORA_DISK_1: reading from backup piece /data/db/backup/zengliang_0f3peq3p.bak
channel ORA_DISK_1: piece handle=/data/db/backup/zengliang_0f3peq3p.bak tag=TAG20250514T161657
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:07Finished recover at 14-MAY-25

8、從庫清理redo日志組

SQL> alter database clear logfile group 1;
SQL> alter database clear logfile group 2;
SQL> alter database clear logfile group 3;

9、從庫打開數據庫

SQL> alter database open read only;

10、從庫開啟日志應用

SQL>alter database recover managed standby database using current logfile disconnect from session;

定期刪除腳本–OS級別

注意:使用該腳本并加入定時計劃,可實現定期自動化刪除歸檔日志,同理其它文件也可以使用該腳本

logpath="/data/scripts/new_scripts"
CURTIME=`date +%Y%m%d%H%M%S`
delF_log="$logpath/del_file_list_15.log"export week=`date +%w`
if [ ! -f $delF_log ]; then
touch $delF_log
chmod 777 $delF_log
else
rm -rf $delF_log
touch $delF_log
chmod 777 $delF_log
fiif [ $week -ne 0 ] ; thenecho "Today cannot Sunday:$week" >> $delF_logexit 0
fipad=$(printf '%0.1s' "-"{1..60})folList[0]="/back/prod/New_Coldback"
echo "Delete 15 days before file " >> $delF_log
echo "Perform Date :"$CURTIME >> $delF_log
echo "$pad" >>$delF_log
for i in ${folList[@]}
do
echo "Location is :  $i " >>$delF_log
find $i -type d -mtime +15 >> $delF_log
find $i -type f -mtime +15 >> $delF_log
find $i -type f -mtime +15 -exec rm -rf  {} \;
done
echo "$pad" >>$delF_log
echo "Complete Time :"$CURTIME >> $delF_log

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/81107.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/81107.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/81107.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機視覺---目標追蹤(Object Tracking)概覽

一、核心定義與基礎概念 1. 目標追蹤的定義 定義:在視頻序列或連續圖像中,對一個或多個感興趣目標(如人、車輛、物體等)的位置、運動軌跡進行持續估計的過程。核心任務:跨幀關聯目標,解決“同一目標在不同…

windows系統中下載好node無法使用npm

原因是 Windows PowerShell禁用導致的npm無法正常使用 解決方法管理員打開Windows PowerShell 輸入Set-ExecutionPolicy -Scope CurrentUser RemoteSigned 按Y 確認就解決了

Nginx模塊配置與請求處理詳解

Nginx 作為模塊化設計的 Web 服務器,其核心功能通過不同模塊協同完成。以下是各模塊的詳細配置案例及數據流轉解析: 一、核心模塊配置案例 1. Handler 模塊(內容生成) 功能:直接生成響應內容(如靜態文件、重定向等) # 示例1:靜態文件處理(ngx_http_static_module)…

Elasticsearch 學習(一)如何在Linux 系統中下載、安裝

目錄 一、Elasticsearch 下載二、使用 yum、dnf、zypper 命令下載安裝三、使用 Docker 本地快速啟動安裝(ESKibana)【測試推薦】3.1 介紹3.2 下載、安裝、啟動3.3 訪問3.4 修改配置,支持ip訪問 官網地址: https://www.elastic.co/…

Java Map雙列集合深度解析:HashMap、LinkedHashMap、TreeMap底層原理與實戰應用

Java Map雙列集合深度解析:HashMap、LinkedHashMap、TreeMap底層原理與實戰應用 一、Map雙列集合概述 1. 核心特點 鍵值對結構:每個元素由鍵(Key)和值(Value)組成。鍵唯一性:鍵不可重復&#…

HOW - React NextJS 的同構機制

文章目錄 一、什么是 Next.js 的同構?二、核心目錄結構三、關鍵函數:如何實現不同渲染方式?1. getServerSideProps —— 實現 SSR(每次請求動態獲取數據)2. getStaticProps getStaticPaths —— 實現 SSG(…

SkyWalking的工作原理和搭建過程

SkyWalking 是一個開源的 應用性能監控系統(APM),專為云原生、微服務架構設計。其核心原理基于 分布式追蹤(Distributed Tracing)、指標收集(Metrics Collection) 和 日志關聯(Log C…

軟考 系統架構設計師系列知識點之雜項集萃(57)

接前一篇文章:軟考 系統架構設計師系列知識點之雜項集萃(56) 第93題 美國著名的卡內基梅隆大學軟件工程學研究所針對軟件工程的工程管理能力與水平進行了充分研究,提出了5級管理能力的模式,包括臨時湊合階段、簡單模仿…

Java 泛型與類型擦除:為什么解析對象時能保留泛型信息?

引言&#xff1a;泛型的“魔術”與類型擦除的困境 在 Java 中&#xff0c;泛型為開發者提供了類型安全的集合操作&#xff0c;但其背后的**類型擦除&#xff08;Type Erasure&#xff09;**機制卻常常讓人困惑。你是否遇到過這樣的場景&#xff1f; List<String> list …

【gRPC】HTTP/2協議,HTTP/1.x中線頭阻塞問題由來,及HTTP/2中的解決方案,RPC、Protobuf、HTTP/2 的關系及核心知識點匯總

HTTP/2協議特點 gRPC基于HTTP/2協議&#xff0c;原因&#xff1a; 多路復用&#xff1a;允許在同一個TCP連接上并行傳輸多個請求和響應&#xff0c;即多個gRPC調用可以通過同一個連接同時進行&#xff0c;避免了HTTP/1.x中常見的線頭阻塞問題&#xff0c;減少了連接建立和關閉…

PCIe Switch 問題點

系列文章目錄 文章目錄 系列文章目錄完善PCIe Retimer Overview Document OutlineSwitch 維度BroadComMicroChipAsmedia 祥碩Cyan其他 完善 Functional block diagram&#xff0c;功能框圖Key Features and Benefits&#xff0c;主要功能和優點Fabric 鏈路Multi-root PCIe Re…

vue復雜數據類型多層嵌套的監聽

vue復雜數據類型多層嵌套的監聽 本來看前輩的做法是watch的嵌套&#xff0c;遇到這種復雜的數據結構還是不多&#xff0c;分享一下前輩的做法 let stopChildWatchList [] // 用于存放每個子監聽器watch(() > data,(val) > {// 清除舊監聽stopChildWatchList.forEach(…

來一個復古的技術FTP

背景 10年前的老代碼&#xff0c;需要升級springboot框架&#xff0c;在升級過程中&#xff0c;測試業務流程里&#xff0c;有FTP的下載業務&#xff0c;不管測試環境如何測試&#xff0c;都沒有成功&#xff0c;最后只能自己搭建一個FTP服務器&#xff0c;寫一個ftp-demo來測試…

MyBatis-Flex配置Druid(德魯伊數據庫連接池):Spring Boot 3 集成 MyBatis-Flex 配置 Druid 連接池指南

Spring Boot 3 集成 MyBatis-Flex 配置 Druid 連接池指南 前言 本文詳細講解在 Spring Boot 3 項目中集成 MyBatis-Flex 框架后&#xff0c;如何正確配置 Druid 數據庫連接池。針對開發者常見的配置缺失導致啟動失敗的場景&#xff0c;提供完整的解決方案和原理分析。 前置知識…

安全生產調度管理系統的核心功能模塊

安全生產調度管理系統是運用現代信息技術構建的智能化管理平臺&#xff0c;旨在實現生產安全風險的全面管控和應急資源的優化調度。該系統通過整合物聯網、大數據、人工智能等前沿技術&#xff0c;建立起覆蓋風險監測、預警預測、指揮調度、決策支持的全鏈條安全管理體系。 一…

桃芯ingchips——windows HID鍵盤例程無法同時連接兩個,但是安卓手機可以的問題

目錄 環境 現象 原理及解決辦法 環境 PC&#xff1a;windows11 安卓&#xff1a;Android14 例程使用的是HID Keyboard&#xff0c;板子使用的是91870CQ的開發板&#xff0c;DB870CC1A 現象 連接安卓手機時并不會出現該現象&#xff0c;兩個開發板都可以當做鍵盤給手機發按…

JavaScript - JavaScript 運算符之圓括號運算符與方括號運算符(圓括號運算符概述、圓括號運算符用法、方括號運算符概述、方括號運算符用法)

一、圓括號運算符概述 圓括號運算符&#xff08;()&#xff09;主要用于函數調用、表達式分組、多種語法結構登 二、圓括號運算符用法 調用函數 function greet() {console.log("Hello!"); }greet();# 輸出結果Hello!當箭頭函數有多個參數或零個參數時需要括號 c…

AG-UI 協議:重構多模態交互,開啟智能應用新紀元

一、協議誕生的時代背景&#xff1a;填補 AI 生態最后一塊拼圖 在人工智能技術飛速發展的今天&#xff0c;AI 代理&#xff08;Agent&#xff09;作為能夠主動執行復雜任務的智能實體&#xff0c;正從實驗室走向生產環境&#xff0c;重塑各個行業的工作流程。然而&#xff0c;…

嵌入式學習的第二十天-數據結構-調試+鏈表的一般操作

一、調試 1.一般調試 2.找段錯誤 二、鏈表的一般操作 1.單鏈表的修改 int ModifyLinkList(LinkList*ll,char*name,DATATYPE*data) {DATATYPE * tmp FindLinkList(ll, name);if(NULL tmp){return 1;}memcpy(tmp,data,sizeof(DATATYPE));return 0; } 2.單鏈表的銷毀 int D…

如何同時管理不同平臺的多個賬號?

在當今數字營銷、電商運營、跨境貿易盛行的時代&#xff0c;同時管理多個平臺的賬號幾乎成了從業者的標配。無論是做社媒營銷的廣告主&#xff0c;還是操作亞馬遜、eBay、Shopee 等平臺的跨境賣家&#xff0c;多賬號運營都是提升曝光、分散風險、擴大收益的重要方式。 然而&am…