国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Linux平臺(tái)Oracle RAC集群數(shù)據(jù)庫(kù)監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2017-12-21 08:07孫華友
關(guān)鍵詞:日志子系統(tǒng)集群

孫華友

(高佳太陽(yáng)能股份有限公司,江蘇 無錫 214174)

基于Linux平臺(tái)OracleRAC集群數(shù)據(jù)庫(kù)監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

孫華友

(高佳太陽(yáng)能股份有限公司,江蘇 無錫 214174)

企業(yè)構(gòu)建基于Linux平臺(tái)的Oracle RAC集群之后,系統(tǒng)監(jiān)控成了信息部門每天的必修課。文章利用信息化方法,通過在Linux系統(tǒng)中設(shè)置Job運(yùn)行shell腳本自動(dòng)收集需要監(jiān)控的指標(biāo)信息,并利用Web網(wǎng)頁(yè)技術(shù)將監(jiān)控結(jié)果顯示到管理者計(jì)算機(jī)界面,從而簡(jiǎn)化每日固定的機(jī)械操作Linux命令。

Linux平臺(tái); Oracle RAC集群; Oracle數(shù)據(jù)庫(kù); 數(shù)據(jù)庫(kù)監(jiān)控

1 應(yīng)用背景

數(shù)據(jù)庫(kù)系統(tǒng)的穩(wěn)定性是企業(yè)信息化日常管理中的重中之重,數(shù)據(jù)庫(kù)系統(tǒng)一旦出現(xiàn)異常,對(duì)企業(yè)信息化來說將是災(zāi)難性的,輕則延誤正常業(yè)務(wù),重則迫使企業(yè)停止生產(chǎn)。因此,為了防患于未然,日常對(duì)數(shù)據(jù)庫(kù)系統(tǒng)各項(xiàng)核心參數(shù)的監(jiān)控變得尤為重要。

近年來,人力成本的逐年遞增,對(duì)于中小企業(yè)來說招一名專職DBA(數(shù)據(jù)庫(kù)管理員)也是一個(gè)不小的開支,因此,少花錢或不花錢又要把事做好,將是信息部負(fù)責(zé)人不得不面對(duì)的問題。

本文將結(jié)合高佳太陽(yáng)能股份有限公司工作實(shí)際情況,基于Linux平臺(tái)的Oracle RAC集群數(shù)據(jù)庫(kù),設(shè)計(jì)數(shù)據(jù)庫(kù)系統(tǒng)監(jiān)控系統(tǒng)實(shí)現(xiàn)各項(xiàng)指標(biāo)的自動(dòng)監(jiān)控。

2 目標(biāo)設(shè)定

通過開發(fā)一套基于.Net環(huán)境的集Linux系統(tǒng)監(jiān)控和Oracle數(shù)據(jù)庫(kù)監(jiān)控于一體的應(yīng)用軟件,完成替代人工的日常系統(tǒng)監(jiān)控。同時(shí),可以根據(jù)需要對(duì)于超出預(yù)設(shè)閥值的項(xiàng)目提供短信、微信或者郵件的方式提醒相關(guān)責(zé)任人,以便及時(shí)采取措施,防患于未然,避免給企業(yè)生產(chǎn)帶來不利影響。

3 系統(tǒng)架構(gòu)設(shè)計(jì)

目前,三層應(yīng)用是最廣泛的一種設(shè)計(jì)方式,能提高系統(tǒng)的可維護(hù)性和可擴(kuò)展性,增強(qiáng)系統(tǒng)的安全性,并可以并行開發(fā)。

(1) 數(shù)據(jù)訪問層:負(fù)責(zé)與數(shù)據(jù)元的交互,即數(shù)據(jù)的插入、刪除、修改以及從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)等操作。

(2) 業(yè)務(wù)邏輯層:負(fù)責(zé)系統(tǒng)領(lǐng)域業(yè)務(wù)的處理,負(fù)責(zé)邏輯性數(shù)據(jù)的生成、處理及轉(zhuǎn)換。

(3) 表示層:用戶接口部分,負(fù)責(zé)用戶和系統(tǒng)間的對(duì)話功能。主要用于檢查用戶的輸入和輸出結(jié)果以及訪問安全性驗(yàn)證,.Net使用可視化編程界面能夠輕松實(shí)現(xiàn)表示層的設(shè)計(jì)。

該系統(tǒng)主要由以下三個(gè)子系統(tǒng)構(gòu)成,即:平臺(tái)監(jiān)控日志生成子系統(tǒng)、監(jiān)控日志解析子系統(tǒng)、信息展示子系統(tǒng)。系統(tǒng)的功能模塊結(jié)構(gòu)如圖1所示。

圖1 系統(tǒng)功能結(jié)構(gòu)

其中,各子系統(tǒng)包含的主要功能如下:

(1) 平臺(tái)監(jiān)控日志生成子系統(tǒng)

a.Linux系統(tǒng)參數(shù)監(jiān)控:通過在Linux系統(tǒng)上自動(dòng)執(zhí)行腳本,獲取系統(tǒng)磁盤信息,并按照固定格式寫入自定義系統(tǒng)監(jiān)控日志文件。

b.Oracle數(shù)據(jù)運(yùn)行參數(shù)監(jiān)控:通過在Linux平臺(tái)上運(yùn)行SQL語句獲取Oracle表空間信息、Oracle控制文件信息、Oracle RAC運(yùn)行狀態(tài)信息等寫入自定義數(shù)據(jù)庫(kù)監(jiān)控日志文件。

c.日志文件發(fā)送功能:通過在Linux系統(tǒng)上運(yùn)行FTP指令將上述a、b步驟中生成的監(jiān)控日志文件發(fā)送給Windows NT上的FTP服務(wù)器。

(2) 監(jiān)控日志解析子系統(tǒng)

a.日志文件解析:依據(jù)監(jiān)控內(nèi)容,解析監(jiān)控日志文件并將解析內(nèi)容保存至該監(jiān)控系統(tǒng)的數(shù)據(jù)庫(kù)。

b.定時(shí)任務(wù)設(shè)定:依據(jù)讀取日志需要,在Windows NT環(huán)境中設(shè)定監(jiān)控程序運(yùn)行頻率,以便及時(shí)解析監(jiān)控結(jié)果。

(3) 信息展示子系統(tǒng)

a.監(jiān)控閥值設(shè)定:創(chuàng)建、修改、刪除監(jiān)控內(nèi)容的上限值,以便監(jiān)控內(nèi)容達(dá)到或超出該上限值時(shí),系統(tǒng)能夠給出警示(預(yù)警功能)。

b.展示面板設(shè)定:將監(jiān)控結(jié)果以Web頁(yè)面的形式展現(xiàn)給用戶,便于用戶每日查看系統(tǒng)運(yùn)行狀況,并為系統(tǒng)改善,故障預(yù)防提供參考。

c.短信功能設(shè)計(jì):對(duì)于超出監(jiān)控預(yù)設(shè)閥值的條目,除了在Web頁(yè)面上給予醒目顏色提醒外,還可以根據(jù)需要對(duì)于超出預(yù)設(shè)閥值的項(xiàng)目提供短信提醒,便于不在辦公區(qū)的工程師及時(shí)了解系統(tǒng)異常,并對(duì)系統(tǒng)異常及時(shí)做出決策。

4 系統(tǒng)設(shè)計(jì)

4.1 數(shù)據(jù)庫(kù)設(shè)計(jì)

根據(jù)選擇的數(shù)據(jù)庫(kù)不同,客戶端使用的管理工具也不盡相同。如果選用Oracle數(shù)據(jù)庫(kù),則需要在個(gè)人計(jì)算機(jī)上安裝PL SQL Dev或者Toad for Oracle管理工具;如果選用SQL Server數(shù)據(jù)庫(kù),則需要在個(gè)人計(jì)算機(jī)上安裝SQL Server Management Studio。數(shù)據(jù)庫(kù)客戶端的安裝過程以及功能不是本文的重點(diǎn),所以在此就不再詳細(xì)敘述。

本系統(tǒng)使用的是Oracle數(shù)據(jù)庫(kù),首先在客戶端安裝Oracle數(shù)據(jù)庫(kù)的Client程序,安裝完畢后通過Oracle Net Manager進(jìn)行數(shù)據(jù)庫(kù)服務(wù)器IP、端口、數(shù)據(jù)庫(kù)名稱等信息設(shè)置。然后再在客戶端安裝目前流行的PL SQL Dev客戶端。安裝完畢即可正常使用PL SQL Dev進(jìn)行數(shù)據(jù)庫(kù)表的設(shè)計(jì),主要結(jié)構(gòu)如表1、表2、表3所示。

表1 用戶信息

表2 監(jiān)控明細(xì)

表3 警告閾值

4.2 系統(tǒng)監(jiān)控設(shè)計(jì)

基于設(shè)定的目標(biāo),需要從Linux平臺(tái)獲取系統(tǒng)的磁盤信息、Oracle RAC集群運(yùn)行信息、Oracle數(shù)據(jù)的表空間信息以及歸檔文件使用情況。并且通過FTP命令將獲取結(jié)果傳送至Window NT上的FTP服務(wù)器。

本文設(shè)計(jì)將監(jiān)控日志文件保存在/tools/目錄下的ftp.txt文件里。由于Linux系統(tǒng)對(duì)每個(gè)文件有著嚴(yán)格的權(quán)限控制(讀、寫、運(yùn)行)。因此,為了保證系統(tǒng)運(yùn)行在不同的用戶下都能正常地讀寫該ftp.txt文件,需要對(duì)該文件賦予最大權(quán)限。即運(yùn)行如下命名:chmod 777 /tools/ftp.txt,以保證該文件不受當(dāng)前登錄用戶的限制。

5 系統(tǒng)實(shí)現(xiàn)

5.1 Linux系統(tǒng)監(jiān)控?cái)?shù)據(jù)獲取

為了降低操作的復(fù)雜性,操作人員通過在Linux系統(tǒng)中執(zhí)行Shell腳本生成想要的監(jiān)控?cái)?shù)據(jù)。具體如下:

1) 監(jiān)控Linux系統(tǒng)磁盤使用狀況

echo "[HardDesk_Space]" 〉〉 /tools/ftp.txt

df -h 〉〉 /tools/ftp.txt

5.2 Oracle RAC 集群監(jiān)控?cái)?shù)據(jù)獲取

1) 監(jiān)控Oracle RAC集群數(shù)據(jù)運(yùn)行狀態(tài)

echo "[OracleRAC_Database_Status]" 〉〉 /tools/ftp.txt

srvctl status database -d racdb 〉〉 /tools/ftp.txt

2) 監(jiān)控Oracle RAC集群節(jié)點(diǎn)運(yùn)行狀態(tài)

echo "[OracleRAC_Nodeapps_Status]" 〉〉 /tools/ftp.txt

srvctl status nodeapps 〉〉 /tools/ftp.txt

3) 監(jiān)控Oracle ASM運(yùn)行狀態(tài)

echo "[OracleRAC_ASM_Status]" 〉〉 /tools/ftp.txt

srvctl status asm 〉〉 /tools/ftp.txt

4) 監(jiān)控Oracle 數(shù)據(jù)監(jiān)聽程序運(yùn)行狀態(tài)

echo "[OracleRAC_TNS_Status]" 〉〉 /tools/ftp.txt

srvctl status listener 〉〉 /tools/ftp.txt

5) 監(jiān)控Oracle RAC集群SCAN運(yùn)行狀態(tài)

echo "[OracleRAC_SCAN_Status]" 〉〉 /tools/ftp.txt

srvctl status scan 〉〉 /tools/ftp.txt

5.3 Oracle數(shù)據(jù)庫(kù)監(jiān)控?cái)?shù)據(jù)獲取

便于解析,使用半角逗號(hào)作為分割符號(hào),詳見圖2。

參數(shù)說明:

set echo on ——是否顯示執(zhí)行的命令內(nèi)容;

set feedback off ——是否顯示 * rows selected;

set heading off ——是否顯示字段的名稱;

set verify off ——是否顯示替代變量被替代前后的語句;

set trimspool off ——去字段空格;

set pagesize 1000 ——頁(yè)面大??;

set linesize 50 ——盡量根據(jù)需要來設(shè)定,大了生成的文件也大。

5.4 日志FTP傳送實(shí)現(xiàn)

通過在Linux系統(tǒng)上運(yùn)行FTP命令,將文件發(fā)送到制定的FTP服務(wù)器上。具體指令如下:

echo "-----Begin Run FTP------" 〉〉 /tools/SystemMonitor.log;

DATE='date +%Y%m%d%H%M'

echo DATE 〉〉 /tools/SystemMonitor.log;

filename="ftp_DATE .txt"

ftp-niv 10.105.2.13 〈〈EOF

user ftpuser ftpAdmin@0

bin

put /tools/ftp.txt /Linux/filename

bye

EOF

echo "-------End Run FTP-----"〉〉 /tools/SystemMonitor.log

exit;

圖2Oracle表空間信息提取

5.5 監(jiān)控日志解析程序?qū)崿F(xiàn)

通過對(duì)指定的文件夾進(jìn)行周期性遍歷,根據(jù)監(jiān)控內(nèi)容進(jìn)行解析文件,并把獲取的內(nèi)容保存到數(shù)據(jù)庫(kù)。把解析完成的文件移除到/BackUp文件夾,以備后期核對(duì)使用。

通過該程序能夠設(shè)定監(jiān)控的文件、備份文件夾、設(shè)定執(zhí)行頻率以及解析后的內(nèi)容保存數(shù)據(jù)的相應(yīng)參數(shù)(數(shù)據(jù)庫(kù)名稱,數(shù)據(jù)庫(kù)用戶名稱,數(shù)據(jù)苦登錄密碼),通過這些靈活的配置,方便后續(xù)變更及功能擴(kuò)展。解析監(jiān)控日志文件的程序運(yùn)行界面如圖3所示。

圖3 程序界面

5.6 監(jiān)控結(jié)果顯示頁(yè)面設(shè)計(jì)

通過Web頁(yè)面顯示監(jiān)控結(jié)果,并對(duì)超過閥值的項(xiàng)目給予醒目顏色提醒。具體顯示界面如圖4所示。

圖4 監(jiān)控結(jié)果顯示

6 總結(jié)

本系統(tǒng)借助Linux平臺(tái)和Windows NT平臺(tái)的命令和任務(wù)設(shè)定,實(shí)現(xiàn)了從監(jiān)控?cái)?shù)據(jù)獲取到監(jiān)控?cái)?shù)據(jù)展示、短信提醒過程的自動(dòng)化,大大降低了數(shù)據(jù)庫(kù)系統(tǒng)工程師的手動(dòng)工作強(qiáng)度,節(jié)省了大量工作時(shí)間。

[1] 林樹澤,盧芬,柳冬青. Oracle DBA高可用,備份恢復(fù)與性能優(yōu)化[M]. 北京:清華大學(xué)出版社,2015.

[2] 馬玉軍,陳連山. Red Hat EnterpriseLinux6.5系統(tǒng)管理[M].北京:清華大學(xué)出版社,2014.

[3] Christian Nagel,Bill Evjen,Jay Glynn.C#高級(jí)編程[M]. 4版.北京:清華大學(xué)出版社,2006.

[4] 高斌.Oracle RAC 核心技術(shù)詳解[M]. 北京:機(jī)械工業(yè)出版社,2015.

DesignandImplementationofOracleRACClusterDatabaseMonitoringSystembasedonLinuxPlatform

SUNHuayou

(Konca Solar Cell Co., Ltd, Wuxi 214174, China)

After enterprises construct the Oracle RAC cluster based on Linux platform, system monitoring is inevitable in their daily work. This paper uses information technology, sets the Job to run the shell script in the Linux system to automatically collect the information index to be monitored and uses the Web page display technology to monitor the result onto the DBA computer interface, which simplifies the daily operation of machinery Linux command DBA.

Linux platform; Oracle RAC cluster; Oracle Database; data monitoring

2017-09-24

孫華友(1980— ),男,安徽蒙城人,高級(jí)工程師,研究方向:企業(yè)信息化,大數(shù)據(jù)應(yīng)用。

10.13750/j.cnki.issn.1671-7880.2017.06.013

TP 311.13

A

1671-7880(2017)06-0046-04

責(zé)任編輯劉法虎

猜你喜歡
日志子系統(tǒng)集群
不對(duì)中轉(zhuǎn)子系統(tǒng)耦合動(dòng)力學(xué)特性研究
一名老黨員的工作日志
GSM-R基站子系統(tǒng)同步方案研究
扶貧日志
海上小型無人機(jī)集群的反制裝備需求與應(yīng)對(duì)之策研究
駝峰測(cè)長(zhǎng)設(shè)備在線監(jiān)測(cè)子系統(tǒng)的設(shè)計(jì)與應(yīng)用
雅皮的心情日志
一種無人機(jī)集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計(jì)
游學(xué)日志
Python與Spark集群在收費(fèi)數(shù)據(jù)分析中的應(yīng)用
清丰县| 洛浦县| 石首市| 长泰县| 印江| 清丰县| 晴隆县| 集贤县| 方城县| 青神县| 墨玉县| 汉沽区| 连城县| 洛阳市| 麻江县| 南充市| 正宁县| 永寿县| 资源县| 会昌县| 怀远县| 家居| 岐山县| 社旗县| 滨海县| 温泉县| 井冈山市| 拜城县| 安义县| 舒兰市| 铜川市| 绥中县| 蓬安县| 迁安市| 辉南县| 丹巴县| 安国市| 建阳市| 漠河县| 隆化县| 阿合奇县|