首頁 資料庫 mysql教程 Linux/Unix shell 监控Oracle监听器(monitor listener)

Linux/Unix shell 监控Oracle监听器(monitor listener)

Jun 07, 2016 pm 05:26 PM
monitor

使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日至的监控,以

使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日至的监控,以及数据库的备份,AWR report的自动邮件等。本文给出Linux 下使用 shell 脚本来监控 Oracle 监听器。

Linux Shell的相关参考:

Linux/Unix shell 脚本中调用SQL,RMAN脚本

Linux/Unix shell sql 之间传递变量

Linux Unix shell 调用 PL/SQL

Linux/Unix shell 监控Oracle实例(monitor instance)

1、监控Oracle监听shell脚本

robin@SZDB:~/dba_scripts/custom/bin> more ck_lsnr.sh
# +-------------------------------------------------------+
# +    CHECK LISTENER STATUS AND RESTART IT WHEN FAILED  |
# +    Author : Robinson                                  |
# +    Blog  :,net/robinson_0612        |
# +    Parameter : No                                    |
# +-------------------------------------------------------+

#!/bin/bash
# --------------------
# Define variable
# --------------------

if [ -f ~/.bash_profile ]; then
. ~/.bash_profile
fi
 
TIMESTAMP=`date +%Y%m%d%H%M`;  export TIMESTAMP
DBALIST="robinson.cheng@12306.com"; export DBALIST
MAILPATH=/users/robin/dba_scripts/sendEmail-v1.56
LOG_DIR=/users/robin/dba_scripts/custom/log
LOG_FILE=${LOG_DIR}/lsnr_status_$TIMESTAMP.log
RETENTION=2

# -----------------------------------------
# Define how many listeners need to monitor
# -----------------------------------------

DB_COUNT=6
DB[1]=CNBO1
DB[2]=CNBOTST
DB[3]=CNMMBO
DB[4]=MMBOTST
DB[5]=SYBO2SZ
DB[6]=CNBO2

# -------------------------
# Begin to check listener
# -------------------------

touch $LOG_FILE
echo "`date` " >>$LOG_FILE
echo " The following listeners are down on `hostname`" >>$LOG_FILE
echo "-----------------------------------------------" >>$LOG_FILE

COUNT=1
while [ $COUNT -le $DB_COUNT ];
do
    for db in ${DB[$COUNT]};
    do
    lsnr_flag=`ps -ef | grep -i listener_${DB[$COUNT]} | grep -v grep`
        if [ -z "$lsnr_flag" ]; then
            echo "The listener for the database ${DB[$COUNT]} is down." >>$LOG_FILE
            echo "=======> restart listener for the database ${DB[$COUNT]}" >>$LOG_FILE
            lsnrctl start listener_${DB[$COUNT]} >>$LOG_FILE
            echo -e "------------------------------------------------------------------\n" >>$LOG_FILE
        fi
    done;
    COUNT=`expr $COUNT + 1`
done;

# --------------------------
# Send Email
# --------------------------

cnt=`grep "restart listener" $LOG_FILE |wc -l`
if [ "$cnt" -gt 0 ];then
    $MAILPATH/sendEmail -f szdb@2gotrade.com -t $DBALIST -u "Listener crashed on `hostname`" -o message-file=$LOG_FILE
else
    rm -rf $LOG_FILE
fi

# ------------------------------------------------
# Removing files older than $RETENTION parameter
# ------------------------------------------------

find ${LOG_DIR} -name "*lsnr_status*" -mtime +$RETENTION -exec rm {} \;

exit

oracle@SZDB:/users/robin/dba_scripts/custom/bin> ./ck_lsnr.sh
Feb 01 17:16:34 szdb sendEmail[18611]: Email was sent successfully!
Fri Feb  1 17:16:33 CST 2013      #下面是测试脚本邮件发送包含的内容
 The following listeners are down on SZDB
-----------------------------------------------
The listener for the database CNBO1 is down.
=======> restart listener for the database CNBO1

LSNRCTL for Linux: Version 10.2.0.3.0 - Production on 01-FEB-2013 17:16:33

Copyright (c) 1991, 2006, Oracle.  All rights reserved.

Starting /users/oracle/OraHome10g/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 10.2.0.3.0 - Production System parameter file is
/users/oracle/OraHome10g/network/admin/listener.ora
Log messages written to /users/oracle/OraHome10g/network/log/listener_cnbo1.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.101.7.2)(PORT=1901)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.101.7.2)(PORT=1901)))
STATUS of the LISTENER
------------------------
Alias                    listener_CNBO1
Version                  TNSLSNR for Linux: Version 10.2.0.3.0 - Production
Start Date                01-FEB-2013 17:16:33
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level              off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File  /users/oracle/OraHome10g/network/admin/listener.ora
Listener Log File        /users/oracle/OraHome10g/network/log/listener_cnbo1.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.101.7.2)(PORT=1901)))
Services Summary...
Service "CNBO1" has 1 instance(s).
  Instance "CNBO1", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
------------------------------------------------------------------

2、补充

a、上面的监控监听脚本可以监控多个监听器。

b、监听器的名字的定义格式为LISTENER_$ORACLE_SID,未考虑缺省监听器的情形,,如使用缺省监听器请做相应更改。

b、使用了数组的方式来定义实例名,每一个对应一个监听器,确保DB_COUNT的值与需要监控的监听器个数相符。

c、数组的每一个元素使用的是ORACLE_SID,如果是RAC,可以将其改为主机名。

d、如果检测到监听器宕掉的情形则会自动重启监听并发送邮件。

e、使用了sendEmail邮件发送程序来发送邮件。参阅:不可或缺的 sendEmail

f、通过crontab来部署该脚本。另,Oracle 10g测试可用,Oracle 11g待测。

linux

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1273
29
C# 教程
1252
24
經濟實惠的小米遊戲顯示器 G24i 全球首發,配備 180 Hz 顯示器和 AMD FreeSync 經濟實惠的小米遊戲顯示器 G24i 全球首發,配備 180 Hz 顯示器和 AMD FreeSync Sep 11, 2024 am 06:39 AM

小米遊戲顯示器G24i已全球首演,它是新系列中最實惠的選擇。它配備了 FHD IPS 螢幕,該公司聲稱這是競技遊戲玩家的理想選擇。 23.8吋面板具有180Hz刷新率和1ms

IFA 2024 | Nitro GS272U M 首次亮相,是 Acer 智慧遊戲顯示器的最新產品 IFA 2024 | Nitro GS272U M 首次亮相,是 Acer 智慧遊戲顯示器的最新產品 Sep 05, 2024 am 06:41 AM

NitroGS272U M 已加入宏碁 CS322Qin 行列,在 IFA 2024 上作為智慧顯示器推出,不過,前者的支架比 GA 系列前輩更像遊戲玩家。它還具有較小的 27 吋顯示器 - 儘管採用無眩光 WQHD IPS 面板

MSI:經過用戶批評,更便宜的遊戲 OLED 也將獲得韌體更新 - 僅在可能昂貴的更新之後 MSI:經過用戶批評,更便宜的遊戲 OLED 也將獲得韌體更新 - 僅在可能昂貴的更新之後 Jun 27, 2024 pm 10:03 PM

顯示器現在通常可以與廣泛的設定選項一起使用,並配有自己的韌體。例如,相應的使用者介面可以作為韌體更新的一部分進行更新,原則上也可以實現新功能 - 或錯誤

交易 |三星 32 吋 240 Hz 4K Odyssey Neo G8 遊戲顯示器在亞馬遜促銷中獲得 43% 的大幅折扣 交易 |三星 32 吋 240 Hz 4K Odyssey Neo G8 遊戲顯示器在亞馬遜促銷中獲得 43% 的大幅折扣 Aug 07, 2024 pm 08:52 PM

三星的 Odyssey 遊戲顯示器系列擁有一些可以買到的最好的遊戲顯示器,通常提供頂級的功能和規格以及旗艦價格。 Odyssey Neo G8 位於三星 Odyss 的高端

Alienware 推出獨特的 27 吋遊戲顯示器 AW2725QF,具有雙解析度和更新率模式 Alienware 推出獨特的 27 吋遊戲顯示器 AW2725QF,具有雙解析度和更新率模式 Aug 17, 2024 am 06:52 AM

戴爾剛剛推出了一款新的 27 吋 IPS 遊戲顯示器,其具有特殊且相當有用的技巧,應該會吸引發燒友和專業遊戲玩家。只需按一下按鈕,Alienware AW2725QF 即可在兩個組合之間切換

具有 480 Hz 和 QHD 解析度的 OLED:LG Display 開始量產新型遊戲面板 具有 480 Hz 和 QHD 解析度的 OLED:LG Display 開始量產新型遊戲面板 Sep 05, 2024 am 10:50 AM

LG Display 最近在一份新聞稿中宣布,它已開始大規模生產用於遊戲顯示器的最新 OLED 面板。具體來說,這是一塊 27 吋 OLED 面板,也是同類中首款實現 480 Hz 幀率的面板,據稱

交易 | 34 吋三星 Odyssey OLED G8 超寬遊戲顯示器在亞馬遜促銷中降至有史以來最低價 33% 交易 | 34 吋三星 Odyssey OLED G8 超寬遊戲顯示器在亞馬遜促銷中降至有史以來最低價 33% Aug 08, 2024 pm 01:13 PM

三星目前正在舉辦遊戲週促銷活動,對奧德賽系列的許多頂級遊戲顯示器進行折扣。其中一款顯示器是三星 Odyssey G85SB OLED(型號 LS34BG850SNXZA),在促銷期間大幅折扣。

交易 | 39 吋華碩 ROG Swift 240 Hz 1440p 超寬 OLED 遊戲顯示器(峰值亮度為 1,100 尼特)在亞馬遜銷售中跌破 1,000 美元 交易 | 39 吋華碩 ROG Swift 240 Hz 1440p 超寬 OLED 遊戲顯示器(峰值亮度為 1,100 尼特)在亞馬遜銷售中跌破 1,000 美元 Aug 23, 2024 pm 03:41 PM

華碩今年稍早在 CES 上推出了 ROG Swift OLED PG39WCDM,這意味著它為遊戲玩家提供了所有最新功能。 39 吋超寬遊戲顯示器是一款巨型全能顯示器,具有高峰值、持續亮度和印象

See all articles