知识大全 让我们一起学做业余DBA
Posted 文件
篇首语:对搞科学的人来说,勤奋就是成功之母!本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 让我们一起学做业余DBA相关的知识,希望对你有一定的参考价值。
让我们一起学做业余DBA! 以下文字资料是由(历史新知网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
前言 这篇文章介绍了DBA每天在监控Oracle数据库方面的职责 讲述了如何通过shell脚本来完成这些重复的监控工作 本文首先回顾了一些DBA常用的Unix命令 以及解释了如何通过Unix Cron来定时执行DBA脚本 同时文章还介绍了 个重要的脚本来监控Oracle数据库 检查实例的可用性 检查监听器的可用性 检查alert日志文件中的错误信息 在存放log文件的地方满以前清空旧的log文件 分析table和index以获得更好的性能 检查表空间的使用情况 找出无效的对象 监控用户和事务 DBA需要的Unix基本知识 基本的UNIX命令 以下是一些常用的Unix命令 ps 显示进程 grep 搜索文件中的某种文本模式 mailx 读取或者发送mail cat 连接文件或者显示它们 cut 选择显示的列 awk 模式匹配语言 df 显示剩余的磁盘空间 以下是DBA如何使用这些命令的一些例子 显示服务器上的可用实例 $ ps ef | grep smon oracle Feb ? : ora_smon_oradb oracle Feb ? : ora_smon_oradb dliu : : pts/ : grep smon oracle : : ? : ora_smon_oradb oracle Mar ? : ora_smon_oradb 显示服务器上的可用监听器 $ ps ef | grep listener | grep v grep (译者注 grep命令应该加上 i参数 即grep i listener 该参数的作用是忽略大小写 因为有些时候listener是大写的 这时就会看不到结果) oracle Feb ? : / /bin/tnslsnr listener_db inherit oracle : : ? : / /bin/tnslsnr listener_db inherit oracle Feb ? : / /bin/tnslsnr listener_db inherit oracle Mar ? : / /bin/tnslsnr listener_db inherit 查看Oracle存档目录的文件系统使用情况 $ df k | grep oraarch /dev/vx/dsk/proddg/oraarch % /u /oraarch 统计alter log文件中的行数 $ cat alert log | wc l 列出alert log文件中的全部Oracle错误信息 $ grep ORA alert log ORA : internal error code arguments: [kcrrrfswda ] [] [] [] [] [] ORA : internal error code arguments: [ ] [ ] [ ] [] CRONTAB基本 一个crontab文件中包含有六个字段 分钟 小时 月中的第几天 月份 星期几 with = Sunday Unix命令或者Shell脚本 要编辑一个crontab文件 输入 Crontab e 要查看一个crontab文件 输入 Crontab l * * /dba/admin/analyze_table ksh * * /dba/admin/hotbackup ksh /dev/null >& 在上面的例子中 第一行显示了一个分析表的脚本在每个星期 的 am运行 第二行显示了一个执行热备份的脚本在每个周三和周六的 a m 运行 监控数据库的常用Shell脚本 以下提供的 个shell脚本覆蓋了DBA每日监控工作的 % 你可能还需要修改UNIX的环境变量 检查Oracle实例的可用性 oratab文件中列出了服务器上的所有数据库 $ cat /var/opt/oracle/oratab ################################################################### ## /var/opt/oracle/oratab ## ################################################################### oradb :/u /app/oracle/product/ :Y oradb :/u /app/oracle/product/ :Y oradb :/u /app/oracle/product/ :N oradb :/u /app/oracle/product/ :Y 以下的脚本检查oratab文件中列出的所有数据库 并且找出该数据库的状态(启动还是关闭) ################################################################### ## ckinstance ksh ## ################################################################### ORATAB=/var/opt/oracle/oratab echo `date` echo Oracle Database(s) Status `hostname` :\\n db=`egrep i :Y|:N $ORATAB | cut d : f | grep v \\# | grep v \\* ` pslist= `ps ef | grep pmon` for i in $db ; do echo $pslist | grep ora_pmon_$i > /dev/null >$ if (( $? )); then echo Oracle Instance $i: Down else echo Oracle Instance $i: Up fi done 使用以下的命令来确认该脚本是可以执行的 $ chmod ckinstance ksh $ ls l ckinstance ksh rwxr r oracle dba Mar : ckinstance ksh* 以下是实例可用性的报表 $ ckinstance ksh Mon Mar : : PST Oracle Database(s) Status for DBHOST server: Oracle Instance oradb : Up Oracle Instance oradb : Up Oracle Instance oradb : Down Oracle Instance oradb : Up 检查Oracle监听器的可用性 以下有一个类似的脚本检查Oracle监听器 如果监听器停了 该脚本将会重新启动监听器 ####################################################################### ## cklsnr sh ## ####################################################################### #!/bin/ksh DBALIST= pri ano ;export DBALIST cd /var/opt/oracle rm f lsnr exist ps ef | grep mylsnr | grep v grep > lsnr exist if [ s lsnr exist ] then echo else echo Alert | mailx s Listener mylsnr on `hostname` is down $DBALIST TNS_ADMIN=/var/opt/oracle; export TNS_ADMIN ORACLE_SID=db ; export ORACLE_SID ORAENV_ASK=NO; export ORAENV_ASK PATH=$PATH:/bin:/usr/local/bin; export PATH oraenv LD_LIBRARY_PATH=$ORACLE_HOME/lib;export LD_LIBRARY_PATH lsnrctl start mylsnr fi 检查Alert日志(ORA XXXXX) 每个脚本所使用的一些环境变量可以放到一个profile中 ####################################################################### ## oracle profile ## ####################################################################### EDITOR=vi;export EDITOR ORACLE_BASE=/u /app/oracle; export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/ ; export ORACLE_HOME LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH TNS_ADMIN=/var/opt/oracle;export TNS_ADMIN NLS_LANG=american; export NLS_LANG NLS_DATE_FORMAT= Mon DD YYYY HH :MI:SS ; export NLS_DATE_FORMAT ORATAB=/var/opt/oracle/oratab;export ORATAB PATH=$PATH:$ORACLE_HOME:$ORACLE_HOME/bin:/usr/ccs/bin:/bin:/usr/bin:/usr/sbin:/ sbin:/usr/openwin/bin:/opt/bin: ; export PATH DBALIST= pri ano ;export DBALIST 以下的脚本首先调用oracle profile来设置全部的环境变量 如果发现任何的Oracle错误 该脚本还会给DBA发送一个警告的email #################################################################### ## ckalertlog sh ## #################################################################### #!/bin/ksh /etc/oracle profile for SID in `cat $ORACLE_HOME/sidlist` do cd $ORACLE_BASE/admin/$SID/bdump if [ f alert_$SID log ] then mv alert_$SID log alert_work log touch alert_$SID log cat alert_work log >> alert_$SID hist grep ORA alert_work log > alert err fi if [ `cat alert err|wc l` gt ] then mailx s $SID ORACLE ALERT ERRORS $DBALIST < alert err fi rm f alert err rm f alert_work log done 清除旧的归档文件 以下的脚本将会在log文件达到 %容量的时候清空旧的归档文件 $ df k | grep arch Filesystem kbytes used avail capacity Mounted on /dev/vx/dsk/proddg/archive % /u /archive< cha138/Article/program/Oracle/201311/17492相关参考
管理Oracle9i:DBA袖珍指南 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Oracle
OracleDBA需要的技能 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! dba掌握的技术
DBA常用脚本2-性能监控 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 数据缓冲区的命中率已经
如何成为一名Oracle应用DBA 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!从一个普通的Ora
OCPDBA最新考试通过分数 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! lishixinzh
对OCPDBA证书的体会 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 终于把OCPDBA的课程
OracleDBA常用Scripts(第一部分)! 以下文字资料是由(历史新知网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 以下是
OCPDBA学员一周考试情报 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Hikevi
DBA应当了解的MySQL客户端程序启动选项 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 许多
OracleDBA创建数据库试题精选 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Q:This