多臺ORACLE資料庫表空間監控方案

chenfeng發表於2016-01-18

一,設計背景



由於所在公司Oracle資料庫較多,傳統人工監控表空間的方式較耗時,且無法記錄歷史表空間資料,無法判斷每日表空間增長量,在沒有gridcontrol/cloudcontrol軟體的情況下,筆者設計如下表空間監控方案,大家也可以根據自己的實際情況對下面的方案進行修改。

二,設計思路



oracle

透過dblink將來查詢到的表空間資料集中彙總到一張表裡透過crontab跑定時任務從各臺伺服器獲取表空間使用情況資訊。

三,具體實施步驟



1.所在oracle資料庫ip地址資訊(下面為舉例說明具體情況要根據所在環境設定)

hostname 備註 ipaddress tnsname instancename
tbsmonitor 監控資料庫 10.1.21.1 tbsmonitor tbsmonitor
database1 被監控資料庫 10.1.21.2 database1 database1
database2 被監控資料庫 10.1.21.3 database2 database2
database3 被監控資料庫 10.1.21.4 database3 database3

2.在tbsmonitor主機上建立tbsmonitor表空間

3.在tbsmonitor和database1/database2/database3上建立tbsmonitor使用者用來做表空間監控。

4.為了tbsmonitor使用者賦權用來查詢表空間使用情況。

5.在tbsmonitor上建立database1/ database2/ database3的tnsnames.ora連線,在tnsnames.ora檔案中加入

6.修改/etc/hosts檔案,如果有dns伺服器的話可以略過

7.在tbsmonitor主機設定dblink,這樣就能透過dblink從被監控伺服器遠端抽取表空間資訊。

8.建立tbsmonitor表,表空間統計資料將插入這張表。

9. 在crontab中執行每日0點1分更新資料庫表空間資訊的指令碼tbsmonitor.sh(我根據業務需要每日統計一次,大家也可以透過業務要求修改統計頻率)


11.建立插入指令碼(拿database1舉例,以此類推)

Sql指令碼如下

12.檢視錶空間使用佔比可以使用如下語句(如果要檢視某臺機器可以帶上條件where ipaddress=’xxxx’ and instance=’xxxxx’ and to_char(time,’yyyy-mm-dd’)=’xxxx-xx-xx’)

13.檢視每日增量可以使用如下指令碼。(下面顯示的是4-8日10.1.21.2表空間增長的情況)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-1978486/,如需轉載,請註明出處,否則將追究法律責任。

相關文章