国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

從一個(gè)案例談?wù)動(dòng)谰帽砜臻g的臨時(shí)段問(wèn)題

IT那活兒 / 645人閱讀
從一個(gè)案例談?wù)動(dòng)谰帽砜臻g的臨時(shí)段問(wèn)題
點(diǎn)擊上方“IT那活兒”公眾號(hào),關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了!!!

  
6月的某一天,我們一個(gè)工程師說(shuō)有個(gè)表空間使用率一直在不斷增長(zhǎng),已經(jīng)使用了93%,業(yè)務(wù)反饋未有大數(shù)據(jù)批量變更,也無(wú)新業(yè)務(wù)上線,臨時(shí)想擴(kuò)容,但無(wú)法擴(kuò)容。于是這個(gè)事情轉(zhuǎn)交我來(lái)解決,下面我就此案例和大家分享。




事情解決過(guò)程




我們分析問(wèn)題一般從頭開(kāi)始, 先看看表空間使用率,XX表空間占了93.43%。
為了知道誰(shuí)占用的空間比較多,對(duì)該XX表空間的對(duì)象進(jìn)行分析,發(fā)現(xiàn)臨時(shí)段占用了3.2T,接近此表空間的50%。
為了臨時(shí)解決問(wèn)題,我想先擴(kuò)容,可發(fā)現(xiàn)該表空間是bigfile tablespace不能增加文件,且只能臨時(shí)把a(bǔ)utoextend 改為on,但不是長(zhǎng)久之計(jì)。
既然是臨時(shí)段,從理論上smon后臺(tái)進(jìn)程應(yīng)該會(huì)對(duì)其進(jìn)行自動(dòng)回收,可為什么會(huì)出現(xiàn)問(wèn)題呢?
先查查是什么類(lèi)型沒(méi)釋放,發(fā)現(xiàn)有undo,drop等post。于是想會(huì)不會(huì)是無(wú)效索引或?qū)?shù)據(jù)未正常關(guān)閉引起呢? 正就是順著這個(gè)思路去排查問(wèn)題。
確實(shí)有not running 的導(dǎo)數(shù)job和無(wú)效索引,清掉處理后,觀察臨時(shí)段的情況。
臨時(shí)段依然在增長(zhǎng),那是否是smon未喚醒,那就手工處理一下吧!

select pid,spid from v$process where program like %SMON%;
PID SPID
---------- ------------------------------------------------
32 227051
SQL> oradebug setorapid 32;
Unix process pid: 525418, image: (SMON)
SQL> oradebug event 10046 trace name context forever,level 1;
Statement processed.
SQL> oradebug tracefile_name
/u01/app/oracle/diag/rdbms/dbm/dbm1/trace/dbm1_smon_227051.trc
SQL> oradebug wakeup 32;
Statement processed.
SQL> oradebug wakeup 32;
Statement processed.
SQL>
查看等待事件smon進(jìn)程有等待,手動(dòng)觸發(fā)smon進(jìn)程后,有觸發(fā)成功,存在update scn_time時(shí)間撮語(yǔ)句,但是臨時(shí)段還是未釋放。
那到底是什么引起的, 觀察一下后臺(tái)日志alert,并同時(shí)上mos官網(wǎng)查詢解決辦法,出具了三個(gè)方案:
方案一:SMON自動(dòng)清理臨時(shí)段
level - tablespace number+1. If the value is 2147483647 then
temp segments in ALL tablespaces are dropped, otherwise, only
segments in a tablespace whose number is equal to the LEVEL
specification are dropped.
select ts# from v$tablespace where name=TBS_1M_SPACE;
alter session set events immediate trace name DROP_SEGMENTS level 17;
alter session set events immediate trace name DROP_SEGMENTS level 2147483647;
方案二:手工清理臨時(shí)段
1) set event 10061 in the pfile to turn off SMON from cleaning temp segments. This will keep the database from crashing after SMON tries 100 times to clean the segment.
event = 10061 trace name context forever, level 10


2) >select segment_name, segment_type from dba_segments where
header_file=98 and segment_type=TEMPORARY;
SEGMENT_NAME SEGMENT_TYPE
------------------- -----------------------
98.110124                TEMPORARY
98.110124 <---------- datafile and block number
If there are no results make sure the datafile reference is not using the relative file number.
>select rfile#,name,ts#,file# from v$datafile;


3) Mark the segment as corrupted:
exec dbms_space_admin.segment_corrupt(,98,110124)
OR
You can generate a script for all segments using the following :
set lines 5000
set long 9999
set pages 999
set head off
spool corrupt.sql
select exec dbms_space_admin.segment_corrupt(||s.tablespace_name||||,||replace (segment_name,.,,)||)||; from dba_segments s ,dba_tablespaces t where s.TABLESPACE_NAME=upper(&Tablespace_name)
and s.segment_type=TEMPORARY
and t.contents=PERMANENT
and s.TABLESPACE_NAME=t.TABLESPACE_NAME;
spool off
Then execute the sript corrupt.sql
@corrupt.sql


4) Drop the segment
exec dbms_space_admin.segment_drop_corrupt(,98,110124)
OR
You can generate a script for all segments using the following :
spool drop.sql
set lines 5000
set long 9999
set pages 999
set head off
select exec dbms_space_admin.segment_drop_corrupt(||s.tablespace_name||||,||SEGMENT_NAME||)||; from dba_segments s ,dba_tablespaces t where s.TABLESPACE_NAME=upper(&Tablespace_name)
and s.segment_type=TEMPORARY
and t.contents=PERMANENT
and s.TABLESPACE_NAME=t.TABLESPACE_NAME;
spool off
Then execute the sript drop.sql
@drop.sql


5) Rebuild the tablespace bitmap(s)
exec dbms_space_admin.tablespace_rebuild_bitmaps()
;


6) Remove event 10061 from pfile and bounce database


7) exec dbms_space_admin.tablespace_verify ();
方案三:重啟數(shù)據(jù)庫(kù)

關(guān)閉各個(gè)實(shí)例,并啟動(dòng)數(shù)據(jù)庫(kù)。

對(duì)比三個(gè)方案和評(píng)估后,采取了第一個(gè)方案進(jìn)行實(shí)施,但最后還是未解決。

到最后把整個(gè)思路重新整理了一下,并同時(shí)發(fā)現(xiàn)差一個(gè)環(huán)節(jié),會(huì)不會(huì)是業(yè)務(wù)側(cè)的問(wèn)題?
于是逐個(gè)排查歷史SQL,發(fā)現(xiàn)有需多etl程序在創(chuàng)建臨時(shí)表,雖然沒(méi)有在跑,但可能是hang住了,并看了sql的執(zhí)行計(jì)劃有些異常,bytes居然占了幾百G,于是和業(yè)務(wù)協(xié)商,將有問(wèn)題的進(jìn)程強(qiáng)制kill后,再手動(dòng)觸smon進(jìn)程,臨時(shí)段最后得到完全釋放,事情得到解決




事情總結(jié)




解決問(wèn)題的前提,需先熟悉整個(gè)問(wèn)題環(huán)節(jié)和理論原理,下面就上面案例做一些提取。

1. 臨時(shí)段何時(shí)產(chǎn)生

  • 創(chuàng)建表(普通表或分區(qū));
  • 索引重建rebuild;
  • DROP TABLE;
  • Create snapshot。
2. 臨時(shí)段的類(lèi)別
  • 臨時(shí)表空間的臨時(shí)段,永久表空間的臨時(shí)段,一般永久表空間的臨時(shí)段smon會(huì)自動(dòng)清理,臨時(shí)表空間的臨時(shí)段可以通過(guò)重啟實(shí)例或重建臨時(shí)表空間解決。

3. 臨時(shí)段的處理方法
  • Smon觸發(fā)處理;
  • 手動(dòng)處理,風(fēng)險(xiǎn)極高,不推薦使用;
  • 分析業(yè)務(wù)邏輯及業(yè)務(wù)代碼,優(yōu)化后進(jìn)行釋放。


本文作者:唐田壽(上海新炬王翦團(tuán)隊(duì))

本文來(lái)源:“IT那活兒”公眾號(hào)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/129410.html

相關(guān)文章

  • 專(zhuān)訪58沈劍:除了架構(gòu),我還想認(rèn)真談?wù)?/em>管理

    摘要:年月日,第屆技術(shù)管理工作坊將在深圳華僑城洲際酒店舉行。壹佰案例在開(kāi)始前采訪了沈劍老師,先行劇透架構(gòu)師轉(zhuǎn)型做管理的感悟。 showImg(https://segmentfault.com/img/bVxMfU);2016年6月25-26日,第27屆MPD技術(shù)管理工作坊將在深圳華僑城洲際酒店舉行。本次工作坊,我們邀請(qǐng)了58到家技術(shù)總監(jiān)沈劍老師,分享《技術(shù)團(tuán)隊(duì)的接手、搭建與發(fā)展實(shí)踐 》, 講...

    masturbator 評(píng)論0 收藏0
  • 云計(jì)算“大機(jī)會(huì)時(shí)代”開(kāi)啟,云計(jì)算巨頭們?nèi)绾尾灰獧C(jī)會(huì)主義

    摘要:云計(jì)算正以空前的發(fā)展速度,迎來(lái)自己的大機(jī)會(huì)時(shí)代。月日,金山云財(cái)報(bào),云業(yè)務(wù)營(yíng)收億元,同比增長(zhǎng)。因此,對(duì)每個(gè)正在行業(yè)里尋找機(jī)會(huì)的企業(yè)來(lái)說(shuō),任正非先生說(shuō)的一番話似乎都非常值得共同重溫一下他說(shuō)在大機(jī)會(huì)時(shí)代,千萬(wàn)不要機(jī)會(huì)主義,反而要有戰(zhàn)略耐性。后疫情時(shí)代,情勢(shì)倒逼生產(chǎn)服務(wù)場(chǎng)景和消費(fèi)場(chǎng)景快速線上化,數(shù)據(jù)顯示,2020年以來(lái),即使按照最保守的口徑估計(jì),中國(guó)遠(yuǎn)程辦公企業(yè)規(guī)模超過(guò)1800萬(wàn)家,遠(yuǎn)程辦公人員超過(guò)...

    Tecode 評(píng)論0 收藏0
  • 一文詳解MySQL的鎖機(jī)制

    摘要:表級(jí)鎖表級(jí)鎖表級(jí)別的鎖定是各存儲(chǔ)引擎中最大顆粒度的鎖定機(jī)制。當(dāng)前沒(méi)有其他事務(wù)持有表中任意一行的排他鎖。為了檢測(cè)是否滿足第二個(gè)條件,事務(wù)必須在確保表不存在任何排他鎖的前提下,去檢測(cè)表中的每一行是否存在排他鎖。一、表級(jí)鎖、行級(jí)鎖、頁(yè)級(jí)鎖數(shù)據(jù)庫(kù)鎖定機(jī)制簡(jiǎn)單來(lái)說(shuō),就是數(shù)據(jù)庫(kù)為了保證數(shù)據(jù)的一致性,而使各種共享資源在被并發(fā)訪問(wèn)變得有序所設(shè)計(jì)的一種規(guī)則。MySQL數(shù)據(jù)庫(kù)由于其自身架構(gòu)的特點(diǎn),存在多種數(shù)據(jù)存...

    番茄西紅柿 評(píng)論0 收藏2637
  • 單系統(tǒng)站內(nèi)信設(shè)計(jì)概述

    摘要:也可以在凌晨系統(tǒng)不是那么繁忙的時(shí)候操作。總結(jié)一下少量用戶設(shè)計(jì)簡(jiǎn)單,但浪費(fèi)空間,冗余高中量用戶設(shè)計(jì)較簡(jiǎn)單,對(duì)表的操作壓力大大量用戶這不是增加幾個(gè)表能解決的問(wèn)題 基本功能 點(diǎn)到點(diǎn)的消息傳送: 用戶給用戶 管理員給用戶 點(diǎn)到面的消息傳送 管理員給用戶群 少量用戶(10-999) 對(duì)于用戶非常少的情況,沒(méi)有必要深入的考慮數(shù)據(jù)庫(kù)的優(yōu)化,采用簡(jiǎn)單的表設(shè)計(jì): 如表message ...

    Rainie 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<