博客统计信息

用户名:珏石头
文章数:98
评论数:216
访问量:109958
无忧币:1161
博客积分:2150
博客等级:6
注册日期:2008-05-21

数据库状态检查
2012-02-04 12:37:57
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。

 该脚本主要用来做数据库的常规检查,以及dg备库.

各位少做修改即可使用



  1. bin/env bash 
  2. #          FILE:  db_check.sh 
  3. #         USAGE:  ./db_check.sh 
  4. #   DESCRIPTION:  Check the database status. 
  5. #          BUGS:  --- 
  6. #        AUTHOR:  JadeShow/xiaosuyang@gmail.com 
  7. #       VERSION:  0.1 
  8. #       CREATED:  Sat Feb  4 12:29:19 BEIST 2012 
  9. #================================================================================ 
  10. ORACLE_BASE=/oracle 
  11. ORACLE_HOME=/oracle/product/10.2.0 
  12. ORACLE_SID=htdisdb 
  13. PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:/home/htmon/bin:/usr/bin/X11:/sbin:.:/bin:/oracle/product/10.2.0/bin 
  14. export PATH ORACLE_SID ORACLE_HOME ORACLE_BASE 
  15. export NLS_LANG=American_America.AL32UTF8; 
  16. set line 120; 
  17. set pages 0; 
  18. set feedback off
  19. set heading off
  20. set verify off
  21. set echo off
  22. sqlplus -s sys/sys@htdisdb "as sysdba" << ! 
  23.  
  24. column dest_name format a30 
  25. column destination format a20 
  26. column MEMBER format a45 
  27. column destination format a20 
  28. column TABLESPACE_NAME format a10 
  29. column FREE_RATE format a10 
  30. prompt **************************** 实 例 状 态 ************************************; 
  31. select instance_name,version,status,database_status from v\$instance; 
  32. prompt **************************** 数据库状态 *************************************; 
  33. select name,log_mode,open_mode from v\$database
  34. prompt **************************** 控制文件状态 ***********************************; 
  35. column name format a50 
  36. select status,name from v\$controlfile; 
  37. prompt **************************** 日志文件状态 ***********************************; 
  38. select GROUP#,status,type,member from v\$logfile; 
  39. prompt***************************** 归档目的地状态 *********************************; 
  40. select dest_name ,status,database_mode,destination from v\$archive_dest_status where dest_id in ('1','2'); 
  41. set heading off
  42. prompt ************数据库已连续运行天数******************************************* 
  43. select round(a.atime-b.startup_time)||' days ' from(select sysdate atime from dual) a,v\$instance b; 
  44. set heading on
  45. prompt***************************** 会 话 数 *************************************; 
  46. select sessions_current,sessions_highwater from v\$license; 
  47. prompt********************** 表空间监控********************; 
  48. prompt TABLESPACE_NAME   已用空间(M)  空闲空间(M)  
  49. SELECT D.TABLESPACE_NAME, 
  50. SPACE "SUM_SPACE(M)"
  51. BLOCKS "SUM_BLOCKS"
  52. SPACE - NVL (FREE_SPACE, 0) "USED_SPACE(M)"
  53. ROUND( (1 - NVL (FREE_SPACE, 0) / SPACE) * 100, 2) "USED_RATE(%)"
  54. FREE_SPACE "FREE_SPACE(M)" 
  55. FROM ( SELECT TABLESPACE_NAME, 
  56. ROUND (SUM (BYTES) / (1024 * 1024), 2) SPACE
  57. SUM (BLOCKS) BLOCKS 
  58. FROM DBA_DATA_FILES 
  59. GROUP BY TABLESPACE_NAME) D, 
  60. SELECT TABLESPACE_NAME, 
  61. ROUND (SUM (BYTES) / (1024 * 1024), 2) FREE_SPACE 
  62. FROM DBA_FREE_SPACE 
  63. GROUP BY TABLESPACE_NAME) F 
  64. WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+) 
  65. UNION ALL --如果有临时表空间 
  66. SELECT D.TABLESPACE_NAME, 
  67. SPACE "SUM_SPACE(M)"
  68. BLOCKS SUM_BLOCKS, 
  69. USED_SPACE "USED_SPACE(M)"
  70. ROUND (NVL (USED_SPACE, 0) / SPACE * 100, 2) "USED_RATE(%)"
  71. NVL (FREE_SPACE, 0) "FREE_SPACE(M)" 
  72. FROM ( SELECT TABLESPACE_NAME, 
  73. ROUND (SUM (BYTES) / (1024 * 1024), 2) SPACE
  74. SUM (BLOCKS) BLOCKS 
  75. FROM DBA_TEMP_FILES 
  76. GROUP BY TABLESPACE_NAME) D, 
  77. SELECT TABLESPACE_NAME, 
  78. ROUND (SUM (BYTES_USED) / (1024 * 1024), 2) USED_SPACE, 
  79. ROUND (SUM (BYTES_FREE) / (1024 * 1024), 2) FREE_SPACE 
  80. FROM V\$TEMP_SPACE_HEADER 
  81. GROUP BY TABLESPACE_NAME) F 
  82. WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+) 
  83. ORDER BY 1; 
  84. prompt **************************** 表空间OFFLINE(显示为空正常) ********************; 
  85. select tablespace_name ,status from dba_tablespaces where status='OFFLINE'
  86. prompt **************************** SEQUENCE同步数 *********************************; 
  87. select max(sequence#)from v\$log_history; 
  88. disconnect 
  89. sqlplus -s sys/sys@htdisdb "as sysdba" <<! 
  90. prompt **************************** 备库SEQUENCE同步数 *****************************; 
  91. select max(sequence#)from v\$log_history; 
  92. prompt **************************** 备库日志未应用(显示为空正常) *******************; 
  93. select sequence#,applied from v\$archived_log where applied='NO'
  94. prompt **************************** 备库日志应用(显示最近十个日志) *****************; 
  95. select * from(select sequence#,applied from v\$archived_log order by sequencedescwhere rownum<=10; 
  96. set time on 
  97. disconnect 

本文出自 “望月飞鱼” 博客,转载请与作者联系!

分享至
更多
一键收藏,随时查看,分享好友!
0人
了这篇文章
类别:DateBase技术圈()┆阅读()┆评论() ┆ 推送到技术圈返回首页

文章评论

 
2012-02-13 11:10:15
75行到86行,看不懂啊,左括号与右括号的数目不对称的
博主回复:
2012-02-27 19:28:21
哪里看不懂?可能是我复制脚本的时候,有些东西没有复制全?

 

发表评论            

【技术门诊】专家解析:软考重点难点及应试技巧
昵  称:
登录  快速注册
验证码:

请点击后输入验证码博客过2级,无需填写验证码

内  容: