- 浏览: 4407156 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (634)
- Oracle日常管理 (142)
- Oracle体系架构 (45)
- Oracle Tuning (52)
- Oracle故障诊断 (35)
- RAC/DG/OGG (64)
- Oracle11g New Features (48)
- DataWarehouse (15)
- SQL, PL/SQL (14)
- DB2日常管理 (9)
- Weblogic (11)
- Shell (19)
- AIX (12)
- Linux/Unix高可用性 (11)
- Linux/Unix日常管理 (66)
- Linux桌面应用 (37)
- Windows (2)
- 生活和工作 (13)
- 私人记事 (0)
- Python (9)
- CBO (15)
- Cognos (2)
- ORACLE 12c New Feature (2)
- PL/SQL (2)
- SQL (1)
- C++ (2)
- Hadoop大数据 (5)
- 机器学习 (3)
- 非技术 (1)
最新评论
-
di1984HIT:
xuexilee!!!
Oracle 11g R2 RAC高可用连接特性 – SCAN详解 -
aneyes123:
谢谢非常有用那
PL/SQL的存储过程和函数(原创) -
jcjcjc:
写的很详细
Oracle中Hint深入理解(原创) -
di1984HIT:
学习了,学习了
Linux NTP配置详解 (Network Time Protocol) -
avalonzst:
大写的赞..
AIX内存概述(原创)
由于最近业务量大增大,导致表空间增长速度变得很快,客户也开始担忧表空间的增长率。因此也提出了每日监控表空间增长量的需求。笔者根据客户的需求,在这里写了个简单的脚本,主体思想是通过,将每日查询到的表空间增长率插入到自己建的表中,然后通过构造查询语句,反映出表空间的增长率,具体实施不走如下
在数据主机上建立tbs_usage表反映数据中数据文件的使用量,其中tbs_timeid为该表主键,作为唯一标识当日数据库表空间的id构造tbs_timeid为df.tablespace_name||'-'||(sysdate)
1、pansky用户作为日常管理,目前主要用户表空间数据量的监控
SQL> create user pansky identified by pansky default tablespace users quota 50M on users;
User created.
SQL> grant create session to pansky;
Grant succeeded.
SQL> grant create table to pansky;
Grant succeeded.
SQL> grant select on dba_data_files to pansky;
Grant succeeded.
SQL> grant select on dba_free_space to pansky;
Grant succeeded.
2、以pansky用户创建tbs_usage表
create table tbs_usage
as
SELECT df.tablespace_name||'-'||(sysdate) tbs_timeid ,df.tablespace_name||'-'||(sysdate-1) ys_tbs_timeid,df.tablespace_name,
COUNT(*) datafile_count,
ROUND(SUM(df.BYTES) / 1048576) size_mb,
ROUND(SUM(free.BYTES) / 1048576, 2) free_mb,
ROUND(SUM(df.BYTES) / 1048576 - SUM(free.BYTES) / 1048576, 2) used_mb,
ROUND(MAX(free.maxbytes) / 1048576, 2) maxfree,
100 - ROUND(100.0 * SUM(free.BYTES) / SUM(df.BYTES), 2) pct_used,
ROUND(100.0 * SUM(free.BYTES) / SUM(df.BYTES), 2) pct_free,(sysdate) time
FROM dba_data_files df,
(SELECT tablespace_name,
file_id,
SUM(BYTES) BYTES,
MAX(BYTES) maxbytes
FROM dba_free_space
GROUP BY tablespace_name, file_id) free
WHERE df.tablespace_name = free.tablespace_name(+)
AND df.file_id = free.file_id(+)
GROUP BY df.tablespace_name
ORDER BY 8;
3、创建主键约束
alter table tbs_usage add constraint tbs_usage_pk_tbs_timeid primary key(tbs_timeid);
4、在crontab中运行每日7点30分更新数据库表空间信息的脚本update_tbs_info.sh
30 07 * * * /oracle10g/update_tbs_info.sh
其中 update_tbs_info.sh脚本内容如下
#!/bin/ksh
#FileName: update_tbs_info.sh
#CreateDate:2011-10-09
#Discription:take the basic information to insert into the table tbs_usage
PATH=/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/oracle/bin:/home/ oracle/bin:/oracle10g/app/oracle/product/10.2.0/db_1/bin;export PATH
ORACLE_SID=zgscdb1;export ORACLE_SID
ORACLE_BASE=/oracle10g/app/oracle;export ORACLE_BASE
ORACLE_HOME=/oracle10g/app/oracle/product/10.2.0/db_1;export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$PATH;export PATH
date >> /oracle10g/log/update_tbs_info.log
sqlplus pansky/pansky <<EOF >> /oracle10g/log/update_tbs_info.log 2>&1
insert into pansky.tbs_usage
SELECT df.tablespace_name||'-'||(sysdate) tb_timeid,df.tablespace_name||'-'||(sysdate-1) y s_tb_timeid,df.tablespace_name,
COUNT(*) datafile_count,
ROUND(SUM(df.BYTES) / 1048576) size_mb,
ROUND(SUM(free.BYTES) / 1048576, 2) free_mb,
ROUND(SUM(df.BYTES) / 1048576 - SUM(free.BYTES) / 1048576, 2) used_mb,
ROUND(MAX(free.maxbytes) / 1048576, 2) maxfree,
100 - ROUND(100.0 * SUM(free.BYTES) / SUM(df.BYTES), 2) pct_used,
ROUND(100.0 * SUM(free.BYTES) / SUM(df.BYTES), 2) pct_free,sysdate time
FROM dba_data_files df,
(SELECT tablespace_name,
file_id,
SUM(BYTES) BYTES,
MAX(BYTES) maxbytes
FROM dba_free_space
GROUP BY tablespace_name, file_id) free
WHERE df.tablespace_name = free.tablespace_name(+)
AND df.file_id = free.file_id(+)
GROUP BY df.tablespace_name
ORDER BY 8;
commit;
EOF
echo >> /oracle10g/log/update_tbs_info.log
4、查询数据库表空间使用情况的SQL,下例可查询出2011-10-08的表空间使用情况以及相较于2011-10-09日的表空间增长量(MB),并根据pct_used降序排列。
Set linesize 150
Col tablespace_name for a22
select a.tablespace_name,a.datafile_count,a.size_mb,a.free_mb,a.used_mb,a.maxfree,a.pct_used,a.pct_free,to_char(a.time,'yyyy-mm-dd hh24:mi') time,(a.USED_MB-b.USED_MB) increase_mb from pansky.tbs_usage a,pansky.tbs_usage b
where a.YS_TBs_TIMEid= b.TBs_TIMEid
and a.time>=to_date('2011-11-02','yyyy-mm-dd') and a.time< to_date('2011-11-03','yyyy-mm-dd') order by pct_used desc;
本文原创,转载请注明出处、作者
如有错误,欢迎指正
邮箱:czmcj@163.com
发表评论
-
Oracle 11g、12c大量错误登陆尝试带来的数据库异常
2018-07-16 09:21 1530APPLIES TO: Oracle Database - ... -
如何定位那些SQL产生了大量的redo日志
2018-05-15 14:38 1768在ORACLE数据库的管理、 ... -
When Memory_target Is Set and Swap Size Is Not Big (Doc ID 2356025.1)
2018-03-16 18:13 1188Kkjcre1p: unable to sp ... -
Transparent Hugepage is not getting disabled (Doc ID 2279458.1)
2018-03-16 18:10 820Transparent Hugepage is ... -
Troubleshooting: "log file sync" Waits (文档 ID 1376916.1)
2017-03-09 14:32 1364What is a 'log file sync' wai ... -
log file sync总结
2017-03-09 14:36 3253log file sync等待时间发生在redo log从 ... -
Oracle Log File Sync Wait Event
2017-03-08 18:46 1168The Oracle “log file sync” wai ... -
Tuning ‘log file sync’ Event Waits
2017-03-08 18:41 855Tuning ‘log file sync’ Event ... -
Diagnosing buffer busy waits with the ash_wait_chains.sql script (v0.2)
2017-03-08 16:56 851Diagnosing buffer busy waits w ... -
Advanced Oracle Troubleshooting Guide – Part 11: Complex Wait Chain Signature An
2017-03-08 16:05 1093Here’s a treat for the hard-co ... -
Oracle 10046 SQL TRACE
2017-03-08 15:19 941为什么我们要使用10046 trace? 10046 ... -
Automatic Storage Management
2016-11-03 15:33 863SYSASM Role When Automatic ... -
ASM FAQ
2016-11-03 15:29 729ASM FAQ Oracle Automatic ... -
Oracle ALTER PROFILE语法
2016-10-10 11:36 3406ALTER PROFILE Purpose Use th ... -
Oracle FGA审计
2016-09-20 09:42 1389大家对trigger可能比较熟悉,但Oracle还有一个叫 ... -
Secret.txt
2016-09-14 17:20 0考试登录账号:YAMAC0043865 Chen1988协会网 ... -
Oracle Data Pump Internals
2016-09-13 16:38 776IntroductionOracle Data Pump w ... -
UDEV SCSI Rules Configuration for ASM in Oracle Linux 5, 6 and 7
2016-09-12 16:32 845UDEV SCSI Rules Configuration ... -
Cannot Allocate New Log
2016-02-21 12:28 5446故障报错 Thread 1 cannot allocat ... -
Oracle flashback dropped tablespace(原创)
2015-11-15 22:21 2014Oracle官方并不推荐在数据库物理结构发生改变的情况下进行 ...
相关推荐
### Oracle数据库表空间监控实用脚本解析 #### 一、概览 Oracle数据库中的表空间是数据文件的逻辑容器,用于存储数据、索引等数据库对象。为了确保数据库的高效运行,对表空间进行监控至关重要。本文将详细介绍几...
### 获取Oracle表空间脚本 #### 背景与需求 在进行数据库备份与恢复的过程中,经常需要获取当前Oracle数据库中的表空间信息及其创建脚本。这样做的目的是为了确保在恢复过程中能够快速重建原有的数据库环境,包括...
Linux下监控磁盘的空闲空间的shell脚本,对于系统管理员或DBA来说,必不可少。下面是给出的一个监控磁盘空间空间shell脚本的样本,供大家参考。 1、监控磁盘的空闲空间shell脚本 robin@SZDB:~/dba_scripts/...
在Oracle数据库管理中,了解和监控表空间的利用率是至关重要的任务之一,它直接关系到数据库性能、存储管理和数据安全。本文将详细解析三个用于查看Oracle表空间利用率的SQL脚本,这些脚本能帮助数据库管理员(DBA)...
这类脚本用于检测索引使用、表空间使用、缓冲区命中率等,帮助进行性能调优。 9. **Backup and Recovery Monitoring**: 监控备份和恢复进程,确保数据的安全性和完整性。 10. **Database Health Check**: ...
4. **资源利用率**:监控脚本可能还会关注服务器资源,如CPU、内存、磁盘空间和网络带宽,确保它们在合理范围内,避免资源瓶颈影响OGG性能。 5. **事件触发警报**:当检测到异常情况时,脚本会发送通知,例如通过...
本压缩包包含的`check_cpu.sh`、`check_mem.sh`和`check_uptime.sh`是Nagios监控脚本,用于监测服务器的CPU使用率、内存使用情况以及系统运行时间(即系统负载)。 1. **CPU监控脚本 (check_cpu.sh)** - Nagios中...
这些脚本是经典工具,适用于监控Linux系统的不同性能指标,如流量、磁盘大小、CPU负载和已用磁盘空间。下面将详细解释每个脚本的功能以及它们在性能监控中的作用。 1. **getflowcount.sh**:这个脚本通常用于监控...
以上SQL脚本为Oracle数据库管理员提供了强大的工具来监控和管理表空间。通过对这些脚本的理解和应用,可以有效地进行表空间容量规划、性能调优等工作,从而确保数据库系统的稳定运行。希望本文能对你有所帮助。
【标题】"Tomcat监控脚本(支持Windows、Linux)"涉及到的是如何确保Tomcat服务器的稳定运行,通过自动化脚本来实现对服务器状态的实时监控,防止宕机情况的发生。这通常包括性能指标的采集、异常检测和自动处理机制。...
- 监控脚本执行期间的性能和空间变化,以防止数据库不可用或异常情况发生。 6. **优化表空间管理** - 定期进行空间审计,了解表空间的使用情况。 - 使用自动段空间管理(ASSM)以简化空间管理,自动处理碎片。 ...
电脑屏幕实时监控脚本,可以实时监控电脑屏幕,可以调节监控频率等参数。
jvm线程持续监控脚本
- **默认表空间**:每个用户的默认表空间信息。 - **临时表空间**:用户的临时表空间分配情况。 - **概要文件**:控制用户资源限制的概要文件设置。 - **创建时间**:记录用户账号的创建时间。 ### 7. 概要文件资源...
Linux流量监控脚本 上下行流量监控shell脚本
4. **表空间和数据文件状态**:监控数据文件的读写速度、空间使用,预防存储不足的问题。`dba_data_files`和`dba_free_space`视图可以提供这些数据。 5. **数据库参数**:检查并记录关键参数的值,如`pga_aggregate...
根据提供的文件信息,本文将详细说明关于“NC6.5 数据库参考脚本及临时表空间配置”的知识点。 首先,文档标题“NC6.5 数据库参考脚本及临时表空间配置.pdf”指出了文件内容涉及三个方面:NC6.5数据库、参考脚本...
redis哨兵模式或redis一主多从,主从切换监控脚本
oracle监控脚本
APP测试过程中需要对监控脚本运行过程APP相关数据 ,通过python编写此监控装饰器,不需要修改相关数据的情况下,实现灵活监控;监控数据包括CPU,Memory,Net,功耗。