快速檢測Oracle數據庫可用性和表空間容量

很多人都有這樣的了解,檢測Oracle的可用性所需要的命令比簡單的ping或者ps -ef | grep 等Oracle的命令要多得多。有觀點認爲它需要一個使用SQL*Net 來驗證監聽器已經開啓並運行的測試訪問Oracle——這是用戶經常用到的訪問。通過實際地登錄到實際環境中,你可以確認這個實例環境可以接受登錄的,如果你只是做了以上的檢測的話,你如何才能知道是否登錄沒有被接受,只是因爲需要等待文檔日志?

除了Oracle的激活和可用性之外,我們還需要進行檢測以確保它可以用,這樣我們還可以檢測表空間的容量。

檢測的腳本:

假設所有的Oracle環境都已經搭建起來了

假設所有的擴展都已經達到了最大的限度

假設左右的表空間都缺乏運行的空閑空間

下面的腳本可以在你想要的任何時候通過crontab 來中斷。另外,如果上面的例外情況出現了的話,您還可以就這個腳本寫信或者電子郵件給支持人員獲得幫助。

如果您有什麽其他的測試,這個腳本可以讓您輕松地進行修改以加以利用。我使用這個Monitororcl 腳本作爲模板並且在末尾添加了功能。

按crontab來調用query_oracle_instances.sh 腳本:

#!/bin/ksh

. /u01/home/oracle/.profile

/u01/app/oracle/admin/monitororcl

'cat /u01/app/oracle/admin/Get_Oracle_Instance_List'

exit

Get_Oracle_Instance_List 腳本如下:

instance_name1 tnsname1 sys_password_for_this_instance

instance_name2 tnsname2 sys_password_for_this_instance

instance_name3 tnsname3 sys_password_for_this_instance

下面是MONITORORCL腳本:

#!/bin/ksh

#script : Rick Stehno

# script will monitor to see if Oracle is up

while [ "$1" != "" ]

do

ORACLE_INSTANCE=$1

ORACLE_TNS=$2

USR_ID=sys

USR_PASS=$3

# echo "Instance: [$ORACLE_INSTANCE]"

# echo "TNS [$ORACLE_TNS]"

# echo "PASS: [$USR_PASS]"

LOGFIL=/u01/app/oracle/admin/monitordev1.out

NOTIFY_LIST=userid1@mobilephone.com,userid2,userid3@pagercompany.com

#

# 檢測關鍵的段沒有達到最大限度

sqlplus -s <$LOGFIL 2>/dev/null

$USR_ID/$USR_PASS@$ORACLE_TNS

set pages 0

select distinct 'YES' from dba_segments

where extents >= (max_extents-5) and segment_name not like '1.%';

EOF1

grep -i '^ORA-' $LOGFIL >/dev/null

if [ $? -eq 0 ]

then

echo "$0 failed: check $ORACLE_INSTANCE for problems" | /bin/mailx -

s "${ORACLE_INSTANCE} : Script failed" $NOTIFY_LIST

exit 1

fi

MAXEXTENTS_REACHED=`awk '{ print $1 }' $LOGFIL`

if [ "$MAXEXTENTS_REACHED" = "YES" ]

then

echo "$0 failed: $ORACLE_INSTANCE max extents reached" | /bin/mailx -

s "${ORACLE_INSTANCE} : max extents reached" $NOTIFY_LIST

exit 1

fi

#

# 檢測是否能分配下一個段

sqlplus -s <$LOGFIL 2>/dev/null

$USR_ID/$USR_PASS@$ORACLE_TNS

set pages 0

select distinct 'YES' from dba_segments ds

where next_extent >

(select max(bytes) from dba_free_space

where tablespace_name = ds.tablespace_name);

EOF2

grep -i '^ORA-' $LOGFIL >/dev/null

if [ $? -eq 0 ]

then

echo "$0 failed: check $ORACLE_INSTANCE for problems" | /bin/mailx -

s "${ORACLE_INSTANCE} : Script failed" $NOTIFY_LIST

exit 1

fi

POSSIBLE_NEXTEXT_FAIL=`awk '{print $1 }' $LOGFIL`

if [ "$POSSIBLE_NEXTEXT_FAIL" = "YES" ]

then

echo "$0 failed: $ORACLE_INSTANCE cannot extend segment" | /bin/mailx -

s "${ORACLE_INSTANCE} : max extents reached" $NOTIFY_LIST

exit 1

fi

shift 3

# echo "shift done"

done

echo "Successful completion of $0" `date`

exit 0

教你檢測Oracle的可用性和表空間容量
  檢測Oracle的可用性所需要的比簡單的ping或者ps -ef grep 等Oracle的命令要多得多。我認爲它需要一個使用SQL*Net 來驗證監聽器已經開啓並運行的測試訪問Oracle——這是用戶經常用到的訪問。 ...查看完整版>>教你檢測Oracle的可用性和表空間容量
 
教你檢測Oracle的可用性和表空間容量
  檢測Oracle的可用性所需要的比簡單的ping或者ps -ef | grep 等Oracle的命令要多得多。我認爲它需要一個使用SQL*Net 來驗證監聽器已經開啓並運行的測試訪問Oracle――這是用戶經常用到的訪問。通過實際地登錄到實...查看完整版>>教你檢測Oracle的可用性和表空間容量
 
快速掌握Oracle數據庫遊標的使用方法
顯式遊標 當查詢返回結果超過一行時,就需要一個顯式遊標,此時用戶不能使用select into語句。PL/SQL治理隱式遊標,當查詢開始時隱式遊標打開,查詢結束時隱式遊標自動關閉。顯式遊標在PL/SQL塊的聲明部分聲明,在執...查看完整版>>快速掌握Oracle數據庫遊標的使用方法
 
怎樣快速查出Oracle 數據庫中的鎖等待
怎樣快速查出Oracle 數據庫中的鎖等待 ---- 在大型數據庫系統中,爲了保證數據的一致性,在對數據庫中的數據進行操作時,系統會進行對數據相應的鎖定。 ...查看完整版>>怎樣快速查出Oracle 數據庫中的鎖等待
 
在Oracle快速進行數據行存在性檢查
  當在應用程序的業務邏輯中需要檢查一個外鍵是否有相關的主鍵時,往往使用Select Count(*)類型的SQL語句。這是一個很顯而易的方法,但卻不是最快的方法。Count(*)函數調用可能會引起對整個表的進行掃描,這是一件...查看完整版>>在Oracle快速進行數據行存在性檢查
 
怎樣快速查出Oracle數據庫中的鎖等待
  ---- 在大型數據庫系統中,爲了保證數據的一致性,在對數據庫中的數據進行操作時,系統會進行對數據相應的鎖定。  ---- 這些鎖定中有"只讀鎖"、"排它鎖","共享排它鎖"等多種類型,而且每種類型又有"行級鎖"(...查看完整版>>怎樣快速查出Oracle數據庫中的鎖等待
 
在Oracle快速進行數據行存在性檢查
  當在應用程序的業務邏輯中需要檢查一個外鍵是否有相關的主鍵時,往往使用Select Count(*)類型的SQL語句。這是一個很顯而易的方法,但卻不是最快的方法。Count(*)函數調用可能會引起對整個表的進行掃描,這是一件...查看完整版>>在Oracle快速進行數據行存在性檢查
 
快速掌握Oracle數據庫遊標的使用方法
顯式遊標 當查詢返回結果超過一行時,就需要一個顯式遊標,此時用戶不能使用select into語句。PL/SQL管理隱式遊標,當查詢開始時隱式遊標打開,查詢結束時隱式遊標自動關閉。顯式遊標在PL/SQL塊的聲明部分聲明,在執...查看完整版>>快速掌握Oracle數據庫遊標的使用方法
 
利用表空間的備份快速恢複IBM DB2數據庫
在 DB2 V9 版本中,提供了一個重要的新特性,即利用DB2表空間的備份來快速恢複數據庫,甚至可以根據數據的重要性選擇恢複一部分重要數據,達到快速恢複的目的。本文結合實例對 DB2 V9 的該重要技術特性做了詳細介紹,...查看完整版>>利用表空間的備份快速恢複IBM DB2數據庫
 
 
回到王朝網路移動版首頁