数据库状态检查

简介:

 该脚本主要用来做数据库的常规检查,以及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 






本文转自 珏石头 51CTO博客,原文链接:http://blog.51cto.com/gavinshaw/772398 ,如需转载请自行联系原作者


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
SQL Oracle 关系型数据库
数据库必知词汇:检查约束(CHECK)
CHECK 约束用于限制列中的值的范围,限制范围取决于<Sql表达式>。如果对单个列定义 CHECK 约束,那么该列只允许特定的值。如果对一个表定义 CHECK 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制。
864 0
|
6天前
|
SQL 关系型数据库 数据库
OceanBase数据库常见问题之OAT添加服务器预检查的时候报错如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
6天前
|
监控 Shell Linux
【Shell 命令集合 磁盘管理 】Linux 检查和创建磁盘配额数据库 quotacheck命令使用教程
【Shell 命令集合 磁盘管理 】Linux 检查和创建磁盘配额数据库 quotacheck命令使用教程
35 0
|
7月前
|
数据库连接 API Nacos
Nacos在启动时会检查数据库连接,如果连接失败,它会抛出一个异常并退出
Nacos在启动时会检查数据库连接,如果连接失败,它会抛出一个异常并退出
119 7
|
10月前
|
机器学习/深度学习 缓存 Oracle
【数据库设计与实现】第7章:缓存与检查点
缓存与检查点设计原则数据缓冲区与检查点是相辅相成的,所以放在同一个章节介绍。由于CPU与持久化设备之间存在巨大的速度差距,所以在内存中引入缓冲区缩小这个差距。从读的角度来看,将热点数据或预判用户可能读取的数据提前加载到内存中,从而将持久化设备的读时延和带宽提升至内存的时延和带宽。从写的角度来看,直接修改缓冲区中的数据而不是磁盘中的数据,可以带来两方面的优势。其一,将持久化设备的写时延和带宽提升至内
【数据库设计与实现】第7章:缓存与检查点
|
机器学习/深度学习 缓存 Oracle
【数据库设计与实现】第7章:缓存与检查点
缓存与检查点设计原则数据缓冲区与检查点是相辅相成的,所以放在同一个章节介绍。由于CPU与持久化设备之间存在巨大的速度差距,所以在内存中引入缓冲区缩小这个差距。从读的角度来看,将热点数据或预判用户可能读取的数据提前加载到内存中,从而将持久化设备的读时延和带宽提升至内存的时延和带宽。从写的角度来看,直接修改缓冲区中的数据而不是磁盘中的数据,可以带来两方面的优势。其一,将持久化设备的写时延和带宽提升至内
【数据库设计与实现】第7章:缓存与检查点
|
SQL PHP 数据库
封装数据库操作类( SQL 执行检查)|学习笔记
快速学习封装数据库操作类( SQL 执行检查)
110 0
封装数据库操作类( SQL 执行检查)|学习笔记
|
Oracle 关系型数据库 数据库管理
Oracle数据库检查分区表信息
check table partition on oracle database,Oracle数据库检查分区表信息,需要最新的统计信息
246 0
 Oracle数据库检查分区表信息