新聞中心
數(shù)據(jù)庫(kù)表空間是一個(gè)重要的數(shù)據(jù)存儲(chǔ)區(qū)域,需要特別的管理和監(jiān)控。因?yàn)閿?shù)據(jù)庫(kù)表空間的容量使用不當(dāng),會(huì)導(dǎo)致數(shù)據(jù)庫(kù)性能的下降,甚至導(dǎo)致存儲(chǔ)不足問(wèn)題。所以合理有效的監(jiān)控?cái)?shù)據(jù)庫(kù)表空間,是數(shù)據(jù)庫(kù)運(yùn)維管理的基本技能之一。在本文中,我們將教大家如何通過(guò)SQL腳本,輕松地監(jiān)控?cái)?shù)據(jù)庫(kù)表空間的使用情況,以便于管理和維護(hù)。

聶拉木網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,聶拉木網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為聶拉木上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的聶拉木做網(wǎng)站的公司定做!
1. 查詢(xún)表空間使用信息
首先我們需要查看表空間使用情況,通過(guò)以下SQL語(yǔ)句查詢(xún):
“`
select d.tablespace_name, tbs_size Size_MB, (nvl(free_space,0))*8192/1024/1024 free_MB
from (SELECT tablespace_name, SUM(bytes) tbs_size FROM dba_data_files GROUP BY tablespace_name) d,
(select TABLESPACE_NAME, ROUND(SUM(BYTES)/(1024*1024)) free_space from dba_free_space group by
TABLESPACE_NAME) f
where d.tablespace_name = f.tablespace_name (+);
“`
這段語(yǔ)句的主要作用是查詢(xún)所有表空間的大小和剩余空間,通過(guò)這些信息可以計(jì)算出表空間的使用率,以供后面監(jiān)控使用。運(yùn)行這個(gè)SQL語(yǔ)句后,將會(huì)得到一個(gè)結(jié)果,類(lèi)似于以下的表格:
“`
TABLESPACE_NAME Size_MB free_MB
USERS 8000 3225
SYSTEM 790 380
SYSAUX 7800 800
TEMP 1200 10
UNDOTBS1 1320 1320
“`
2. 設(shè)置告警閾值
獲取表空間使用率之后,我們需要設(shè)置告警閾值,以便判斷表空間是否達(dá)到警戒線(xiàn)。這些閾值應(yīng)該基于當(dāng)前數(shù)據(jù)庫(kù)的使用情況進(jìn)行定制,因?yàn)槊總€(gè)數(shù)據(jù)庫(kù)都有不同的性能和容量需求。以下是一款通用的告警閾值設(shè)置,可以在實(shí)際項(xiàng)目中進(jìn)行調(diào)整:
“`
SELECT df.tablespace_name, 100 – ROUND ( (fs.phys_free / ts.phys_total) * 100) PERCENT_FULL, ‘Full’
FROM sys.dba_tablespaces df,
(SELECT tablespace_name, SUM (bytes) phys_total
FROM sys.dba_data_files
GROUP BY tablespace_name) ts,
(SELECT tablespace_name, SUM (bytes) phys_free
FROM sys.dba_free_space
GROUP BY tablespace_name) fs
WHERE fs.tablespace_name(+) = df.tablespace_name
AND ts.tablespace_name = df.tablespace_name
UNION ALL
SELECT df.tablespace_name,
99, ‘Full’
FROM sys.dba_tablespaces df
WHERE NOT EXISTS (SELECT NULL
FROM sys.dba_data_files fs
WHERE fs.tablespace_name = df.tablespace_name);
“`
以上是一個(gè)查詢(xún)告警閾值的SQL語(yǔ)句。這個(gè)腳本設(shè)置了表空間使用率的警戒線(xiàn)為100%。當(dāng)警戒線(xiàn)超過(guò)100%時(shí),將會(huì)向管理員發(fā)出告警提示。
3. 設(shè)置監(jiān)控報(bào)警
當(dāng)我們已經(jīng)獲取了表空間的使用率和告警閾值之后,下一步就需要設(shè)置監(jiān)控報(bào)警,以便于及時(shí)和有效的處理問(wèn)題。在Oracle數(shù)據(jù)庫(kù)中,我們可以通過(guò)DBMS_SCHEDULER和DBMS_LOB建立一個(gè)監(jiān)控腳本,并將其加入到系統(tǒng)任務(wù)計(jì)劃中。以下是一個(gè)完整的監(jiān)控腳本:
“`
declare
v_used_pct number;
v_tablespace varchar2(30);
cursor c_alert_tbs is
select tablespace_name from dba_tablespaces;
begin
for rec in c_alert_tbs loop
select round(sum((d.bytes-f.bytes))*100/d.bytes)
into v_used_pct
from dba_data_files d,dba_free_space f
where d.tablespace_name=f.tablespace_name and d.tablespace_name=rec.tablespace_name;
if v_used_pct > 90 then
v_tablespace:=rec.tablespace_name;
utl_ml.send(sender => ‘[email protected]’,
recipients => ‘a(chǎn)[email protected]’,
cc => ‘[email protected]’,
subject => ‘Database tablespace problem’,
message => ‘Tablespace ‘||v_tablespace||’ is above 90% full.’);
end if;
end loop;
end;
“`
以上是一個(gè)數(shù)據(jù)庫(kù)表空間監(jiān)控腳本,當(dāng)表空間的使用率超過(guò)90%時(shí),將向管理員發(fā)出告警郵件。我們可以將這段腳本存儲(chǔ)在數(shù)據(jù)庫(kù)中,然后在計(jì)劃任務(wù)中定時(shí)執(zhí)行。
4. 檢查警報(bào)日志
管理員需要經(jīng)常性的檢查警報(bào)日志,以便及時(shí)跟進(jìn)和處理問(wèn)題。在Oracle數(shù)據(jù)庫(kù)中,我們可以通過(guò)以下命令檢查警報(bào)日志:
“`
SELECT * FROM dba_scheduler_job_run_detls where job_name in (‘ALERT_MONITOR’)
order by log_date desc;
“`
以上是一個(gè)查詢(xún)警報(bào)日志的SQL命令。執(zhí)行這個(gè)命令后,將會(huì)顯示所有與ALERT_MONITOR任務(wù)有關(guān)的警報(bào)日志。
通過(guò)本文的介紹,我們可以知道如何通過(guò)SQL腳本,輕松地監(jiān)控?cái)?shù)據(jù)庫(kù)表空間的使用情況。管理員只需要了解這些SQL語(yǔ)句的使用方法,并根據(jù)實(shí)際需要進(jìn)行調(diào)整。在實(shí)際項(xiàng)目中,定期監(jiān)控和處理數(shù)據(jù)庫(kù)表空間的使用率,可以保證數(shù)據(jù)的安全和性能。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來(lái)專(zhuān)注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線(xiàn):028-86922220ORACLE有一個(gè)表空間增幅非???,我想看具體是表空間中的哪些表的數(shù)據(jù)增幅這么大,怎么看?
控制臺(tái)里面看表空間的占用
pl/sql developer里:reports->dba->tablespace可以查看
toad里:database->administer->tablespaces里查看的更清晰,還可以修改
我覺(jué)得,可以這樣:
1.首先執(zhí)行下面的語(yǔ)句:
Select Segment_Name,Sum(bytes)/1024/1024 sum_mb From Dba_Extents Group By Segment_Name order by sum_mb desc;
把數(shù)據(jù)保存下來(lái)。
2.過(guò)一段時(shí)間(間隔得你自己把握,你肯定知道表空間多長(zhǎng)時(shí)間會(huì)大幅增長(zhǎng)),再執(zhí)行下上面的語(yǔ)句,和前面的數(shù)據(jù)比較下,看哪個(gè)表的空間增長(zhǎng)的多。
注意:時(shí)間間隔不能太小,否則看不出來(lái)。一次擴(kuò)展的空間是表定義來(lái)的。
像我這,有個(gè)表,過(guò)不了5分鐘就要增加。
只能看到哪個(gè)表比較大,用控制臺(tái)和用SQL語(yǔ)句查數(shù)據(jù)字典是一樣的,
select segment_name,sum(bytes)/1024/1024/1024 sum_b from dba_segments group by segment_name order by sum(bytes)/1024/1024/1024 desc ;
看哪個(gè)比較快只能是通過(guò)持續(xù)的DBA監(jiān)控來(lái)做到,比如每天把上面的查詢(xún)查到的東西放在一個(gè)統(tǒng)計(jì)表里面,然后經(jīng)常監(jiān)控這個(gè)表能發(fā)現(xiàn)到數(shù)據(jù)的變化是否正常。
數(shù)據(jù)管理員是什么做什么的?
主要負(fù)責(zé)業(yè)務(wù)數(shù)據(jù)庫(kù)從設(shè)計(jì)、測(cè)試到部署交付的全生命周期管理。
DBA的核心目標(biāo)是保證數(shù)據(jù)庫(kù)管理系統(tǒng)的穩(wěn)定性、安全性、完整性和高性能。
在國(guó)外,也有公司把DBA稱(chēng)作數(shù)據(jù)庫(kù)工程師(Database Engineer),兩者的工作內(nèi)容基本相同,都是保證數(shù)據(jù)庫(kù)服務(wù)7*24小時(shí)的穩(wěn)定高效運(yùn)轉(zhuǎn)。
擴(kuò)展資料
產(chǎn)品的整個(gè)生命周期里數(shù)據(jù)庫(kù)管理員的職責(zé)重要而廣泛,這催生了各個(gè)縱向的運(yùn)維技術(shù)方向,凡是關(guān)系到數(shù)據(jù)庫(kù)質(zhì)量、效率、成本、安全等方面的工作,及涉及到的技術(shù)、組件,主要包括:
1、數(shù)據(jù)庫(kù)監(jiān)控技術(shù):包括監(jiān)控平臺(tái)的研發(fā)、應(yīng)用,服務(wù)監(jiān)控準(zhǔn)確性、實(shí)時(shí)性、全面性的保障。
2、數(shù)據(jù)庫(kù)故障管理:包括服務(wù)的故障預(yù)案設(shè)計(jì),預(yù)案的自動(dòng)化執(zhí)行,故障的總結(jié)并反饋到產(chǎn)品/系統(tǒng)的設(shè)計(jì)層面進(jìn)行優(yōu)化以提高產(chǎn)品的穩(wěn)定性。
3、數(shù)據(jù)庫(kù)容量管理:測(cè)量服務(wù)的容量,規(guī)劃服務(wù)的機(jī)房建設(shè),擴(kuò)容、遷移等工作。
4、數(shù)據(jù)庫(kù)性能優(yōu)化:從各個(gè)方向,包括SQL優(yōu)化、參數(shù)優(yōu)化、應(yīng)用優(yōu)化、客戶(hù)端優(yōu)化等,提高數(shù)據(jù)庫(kù)的性能和響應(yīng)速度,改善用戶(hù)體驗(yàn)。
參考資料來(lái)源:
百度百科-數(shù)據(jù)庫(kù)管理員
數(shù)據(jù)庫(kù)管理員的職責(zé):
一、 一般監(jiān)視
1. 監(jiān)控?cái)?shù)據(jù)庫(kù)的警告日志。Alert.log,定期做備份刪除。
2. Linstener.log的監(jiān)控,/network/admin/linstener.ora。
3. 重做日志狀態(tài)監(jiān)視,留意視圖v$log,v$logfile,該兩個(gè)視圖存儲(chǔ)重做日志的信息。
4. 監(jiān)控?cái)?shù)據(jù)庫(kù)的日常會(huì)話(huà)情況。
5. 碎片、剩余表空間監(jiān)控,及時(shí)了解表空間的擴(kuò)展情況、以及剩余空間分布情況,如果有連續(xù)的自由空間,手工合并。
6. 監(jiān)控回滾段的使用情況。生產(chǎn)系統(tǒng)中,要做比較大的維護(hù)和數(shù)據(jù)庫(kù)結(jié)構(gòu)更改時(shí),用rbs_big01來(lái)做。
7. 監(jiān)控?cái)U(kuò)展段是否存在不滿(mǎn)足擴(kuò)展的表。
8. 監(jiān)控臨時(shí)表空間。
9. 監(jiān)視對(duì)象的修改。定期列出所有變化的對(duì)象。
10. 跟蹤文件,有初始化參數(shù)文件、用戶(hù)后臺(tái)文件、系統(tǒng)后臺(tái)文件
二、 對(duì)數(shù)據(jù)庫(kù)的備份監(jiān)控和管理
數(shù)據(jù)庫(kù)的備份至關(guān)重要,對(duì)數(shù)據(jù)庫(kù)的備份策略要根據(jù)實(shí)際要求進(jìn)行更改,數(shù)據(jù)的日常備份情況進(jìn)行監(jiān)控。由于我們使用了磁帶庫(kù),所以要對(duì)legato備份軟件進(jìn)行監(jiān)控,同時(shí)也要對(duì)rman備份數(shù)據(jù)庫(kù)進(jìn)行監(jiān)控。
三、 規(guī)范數(shù)據(jù)庫(kù)用戶(hù)的管理
定期對(duì)管理員等重要用戶(hù)密碼進(jìn)行修改。對(duì)于每一個(gè)項(xiàng)目,應(yīng)該建立一個(gè)用戶(hù)。DBA應(yīng)該和相應(yīng)的項(xiàng)目管理人員或者是程序員溝通,確定怎樣建立相應(yīng)的數(shù)據(jù)庫(kù)底層模型,最后由DBA統(tǒng)一管理,建立和維護(hù)。任何數(shù)據(jù)庫(kù)對(duì)象的更改,應(yīng)該由DBA根據(jù)需求來(lái)操作。
四、 對(duì)SQL語(yǔ)句的書(shū)寫(xiě)規(guī)范的要求
一個(gè)SQL語(yǔ)句,如果寫(xiě)得不理想,對(duì)數(shù)據(jù)庫(kù)的影響是很大的。所以,每一個(gè)程序員或相應(yīng)的工作人員在寫(xiě)相應(yīng)的SQL語(yǔ)句時(shí),應(yīng)該嚴(yán)格按照《SQL書(shū)寫(xiě)規(guī)范》一文。最后要有DBA檢查才可以正式運(yùn)行。
五、 DBA深層次要求
一個(gè)數(shù)據(jù)庫(kù)能否健康有效的運(yùn)行,僅靠這些日常的維護(hù)還是不夠的,還應(yīng)該致力于數(shù)據(jù)庫(kù)的更深一層次的管理和研究:數(shù)據(jù)庫(kù)本身的優(yōu)化,開(kāi)發(fā)上的性能優(yōu)化;項(xiàng)目的合理化;安全化審計(jì)方面的工作;數(shù)據(jù)庫(kù)的底層建模研究、規(guī)劃設(shè)計(jì);各種數(shù)據(jù)類(lèi)型的處理;內(nèi)部機(jī)制的研究;ora-600錯(cuò)誤的研究、故障排除,等等很多值得探討的問(wèn)題。
關(guān)于數(shù)據(jù)庫(kù)表空間監(jiān)控語(yǔ)句的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
創(chuàng)新互聯(lián)【028-86922220】值得信賴(lài)的成都網(wǎng)站建設(shè)公司。多年持續(xù)為眾多企業(yè)提供成都網(wǎng)站建設(shè),成都品牌建站設(shè)計(jì),成都高端網(wǎng)站制作開(kāi)發(fā),SEO優(yōu)化排名推廣服務(wù),全網(wǎng)營(yíng)銷(xiāo)讓企業(yè)網(wǎng)站產(chǎn)生價(jià)值。
網(wǎng)頁(yè)標(biāo)題:數(shù)據(jù)庫(kù)表空間監(jiān)控語(yǔ)句,教你輕松搞定!(數(shù)據(jù)庫(kù)表空間監(jiān)控語(yǔ)句)
網(wǎng)址分享:http://fisionsoft.com.cn/article/coijhsj.html


咨詢(xún)
建站咨詢(xún)
