监 控 Oracle数 据 库 的 常用 shell脚本 我会陆陆续续搜集好的脚本共享到群上。这次是 8 个。 一.脚本来监控 Oracle 数据库: 1.检查实例的可用性 2.检查监听器的可用性 3.检查 alert 日志文件中的错误信息 4.在存放 log 文件的地方满以前清空旧的log 文件 5.分析 table 和 index 以获得更好的性能 6.检查表空间的使用情况 7.找出无效的对象 8.监控用户和事务 二.DBA 需要的Unix 基本知识 基本的UNIX 命令,以下是一些常用的Unix 命令: ps--显示进程 grep--搜索文件中的某种文本模式 mailx--读取或者发送 mail cat--连接文件或者显示它们 cut--选择显示的列 awk--模式匹配语言 df--显示剩余的磁盘空间 以下是 DBA 如何使用这些命令的一些例子: 1. 显示服务器上的可用实例: $ ps –ef | grep smon oracle 22086 1 0 02:32:24 ? 0:04 ora_smon_PPRD10 oracle 5215 28972 0 08:10:19 pts/4 0:00 grep smon 2. 显示服务器上的可用监听器: $ ps -ef | grep listener grep -v grep (grep 命令应该加上-i 参数,即 grep -i listener,该参数的作用是忽略大小写,因为有些时候 listener 是大写的,这时就会看不到结果) $ ps –ef |grep -i listener oracle 9655 1 0 Mar 12 ? 0:01 /data/app/oracle/9.2.0/bin/tnslsnr LISTENER -inherit oracle 22610 1 0 02:45:02 ? 0:02 /data/app/oracle/10.2.0/bin/tnslsnr LISTENER -inherit oracle 5268 28972 0 08:13:02 pts/4 0:00 grep -i listener 3. 查看Oracle 存档目录的文件系统使用情况 $ df -k | grep /data /dev/md/dsk/d50 104977675 88610542 15317357 86% /data 4. 统计alter.log 文件中的行数: $ cat alert_PPRD10.log | wc -l 13124 $ more alert_PPRD10.log | wc -l 13124 5. 列出alert.log 文件中的全部Oracle 错误信息: $ grep ORA-* alert.log ORA-00600: internal error code, arguments: [kcrrrfswda.1], [], [], [], [], [] ORA-00600: internal error code, arguments: [1881], [25860496], [25857716], [] 6. CRONTAB 基本 一个 crontab 文件中包含有六个字段: 分钟 0-59 小时 0-23 月中的第几天 1-31 月份 1 - 12 星期几 0 - 6, with 0 = Sunday ...