程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> 監控Oracle數據庫的常用shell腳本

監控Oracle數據庫的常用shell腳本

編輯:關於Oracle數據庫

  前言

  這篇文章介紹了DBA每天在監控Oracle數據庫方面的職責,講述了如何通過shell腳本來完成這些重復的監控工作。本文首先回顧了一些DBA常用的Unix命令,以及解釋了如何通過Unix Cron來定時執行DBA腳本。同時文章還介紹了8個重要的腳本來監控Oracle數據庫:

   檢查實例的可用性
 
   檢查監聽器的可用性

   檢查alert日志文件中的錯誤信息
 
   在存放log文件的地方滿以前清空舊的log文件

   分析table和index以獲得更好的性能

   檢查表空間的使用情況

   找出無效的對象

   監控用戶和事務

  DBA需要的Unix基本知識

  基本的UNIX命令

  以下是一些常用的Unix命令:

   ps--顯示進程
   grep--搜索文件中的某種文本模式
   mailx--讀取或者發送mail
   cat--連接文件或者顯示它們
   cut--選擇顯示的列
   awk--模式匹配語言
   df--顯示剩余的磁盤空間

  以下是DBA如何使用這些命令的一些例子:

  顯示服務器上的可用實例:

$ ps -ef | grep smon
oracle 21832 1 0 Feb 24 ? 19:05 ora_smon_oradb1
oracle 898 1 0 Feb 15 ? 0:00 ora_smon_oradb2
dliu 25199 19038 0 10:48:57 pts/6 0:00 grep smon
oracle 27798 1 0 05:43:54 ? 0:00 ora_smon_oradb3
oracle 28781 1 0 Mar 03 ? 0:01 ora_smon_oradb4、

  顯示服務器上的可用監聽器:

$ ps -ef | grep listener | grep -v grep
(譯者注:grep命令應該加上-i參數,即grep -i listener,該參數的作用是忽略大小寫,因為有些時候listener是大寫的,這時就會看不到結果)
oracle 23879 1 0 Feb 24 ? 33:36 /8.1.7/bin/tnslsnr listener_db1 -inherit
oracle 27939 1 0 05:44:02 ? 0:00 /8.1.7/bin/tnslsnr listener_db2 -inherit
oracle 23536 1 0 Feb 12 ? 4:19 /8.1.7/bin/tnslsnr listener_db3 -inherit
oracle 28891 1 0 Mar 03 ? 0:01 /8.1.7/bin/tnslsnr listener_db4 -inherit

  查看Oracle存檔目錄的文件系統使用情況

$ df -k | grep oraarch
/dev/vx/dsk/proddg/oraarch 71123968 4754872 65850768 7% /u09/oraarch

  統計alter.log文件中的行數:

$ cat alert.log | wc -l
2984 

  列出alert.log文件中的全部Oracle錯誤信息:

$ grep ORA- alert.log
ORA-00600: internal error code, arguments: [kcrrrfswda.1], [], [], [], [], []
ORA-00600: internal error code, arguments: [1881], [25860496], [25857716], []

  CRONTAB基本

  一個crontab文件中包含有六個字段:

  分鐘 0-59

  小時 0-23

  月中的第幾天 1-31

  月份 1 - 12

  星期幾 0 - 6, with 0 = Sunday

  Unix命令或者Shell腳本

  要編輯一個crontab文件,輸入:

  Crontab -e

  要查看一個crontab文件,輸入:

Crontab -l
0 4 * * 5 /dba/admin/analyze_table.ksh
30 3 * * 3,6 /dba/admin/hotbackup.ksh /dev/null 2>&1

  在上面的例子中,第一行顯示了一個分析表的腳本在每個星期5的4:00am運行。第二行顯示了一個執行熱備份的腳本在每個周三和周六的3:00a.m.運行。

  • 首頁
  • 上一頁
  • 1
  • 2
  • 3
  • 下一頁
  • 尾頁
  • 共3頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved