查看空间使用情况的脚本

在数据库中,我们可以使用如下的3个脚本来查看表空间的使用情况,表空间的增长情况,表未使用的空间情况等等。
showunused.sh 可以查看未使用的空间情况

sqlplus -s n1/n1
prompt  ------- $1.$2
prompt .
set serveroutput on
set feedback off
variable total_blocks number;
variable total_bytes number;
variable unused_blocks number;
variable unused_bytes number;
variable lastextf number;
variable last_extb number;
variable lastusedblock number;

EXEC DBMS_SPACE.UNUSED_SPACE(upper('$1'), upper('$2'), 'TABLE', :total_blocks, :total_bytes,:unused_blocks, :unused_bytes, :lastextf, :last_extb, :lastusedblock);

exec dbms_output.put_line('total_blocks: '||:total_blocks);
exec dbms_output.put_line('total_bytes: '||:total_bytes);
exec dbms_output.put_line('unused_blocks: '||:unused_blocks);
exec dbms_output.put_line('unused_bytes: '||:unused_bytes);
exec dbms_output.put_line('last used extent file: '||:lastextf);
exec dbms_output.put_line('last used extent block: '||:last_extb);
exec dbms_output.put_line('lastusedblock: '||:lastusedblock);

EOF

脚本运行的结果如下:

------- n1.data
.
total_blocks: 72
total_bytes: 589824
unused_blocks: 0
unused_bytes: 0
last used extent file: 7
last used extent block: 12840
lastusedblock: 8

showtabtrend.sh 查看表的增长情况和预测,标黄的部分是预测的部分。

sqlplus -s n1/n1
set linesize 200
set pages 20
select * from table(dbms_space.OBJECT_GROWTH_TREND(upper('$1'),upper('$2'),'TABLE'));

EOF

脚本运行的结果如下:
TIMEPOINT                                                                   SPACE_USAGE SPACE_ALLOC QUALITY
--------------------------------------------------------------------------- ----------- ----------- --------------------
22-AUG-14 07.53.17.112473 AM                                                     503863      589824 INTERPOLATED
23-AUG-14 07.53.17.112473 AM                                                     503863      589824 INTERPOLATED
24-AUG-14 07.53.17.112473 AM                                                     503863      589824 INTERPOLATED
19-SEP-14 07.53.17.112473 AM                                                     503863      589824 INTERPOLATED
20-SEP-14 07.53.17.112473 AM                                                     503863      589824 INTERPOLATED
21-SEP-14 07.53.17.112473 AM                                                     503863      589824 INTERPOLATED
22-SEP-14 07.53.17.112473 AM                                                     503863      589824 PROJECTED
23-SEP-14 07.53.17.112473 AM                                                     503863      589824 PROJECTED
24-SEP-14 07.53.17.112473 AM                                                     503863      589824 PROJECTED

showtsusage.sh 查看表空间的使用情况

sqlplus -s n1/n1
set linesize 200
select b.name,
       a.rtime,
       a.tablespace_usedsize,
       a.tablespace_size,
       round(100 * a.tablespace_usedsize / a.tablespace_size) used_percent
  from dba_hist_tbspc_space_usage a,
       (select t2.name,
               min(rtime) rtime,
               min(tablespace_id) tablespace_id
          from dba_hist_tbspc_space_usage t1
         inner join v\$tablespace t2 on t1.tablespace_id = t2.TS#
         where t2.NAME = upper('$1')
         group by name, substr(rtime,1,10)
) b
 where a.tablespace_id = b.tablespace_id
   and a.rtime = b.rtime
order by a.rtime;

EOF

比如我们查看表空间SYSTEM的情况。脚本运行的情况如下:

NAME                           RTIME                     TABLESPACE_USEDSIZE TABLESPACE_SIZE USED_PERCENT
------------------------------ ------------------------- ------------------- --------------- ------------
SYSTEM                         03/15/2014 05:00:42                     33096           41600           80
SYSTEM                         03/16/2014 19:41:41                     33096           41600           80
SYSTEM                         09/13/2014 07:00:05                     35264           41600           85
SYSTEM                         09/14/2014 00:00:45                     35264           41600           85
SYSTEM                         09/15/2014 03:13:25                     35264           41600           85
SYSTEM                         09/16/2014 00:00:36                     35264           41600           85
SYSTEM                         09/17/2014 06:07:45                     35264           41600           85
SYSTEM                         09/19/2014 05:24:06                     35264           41600           85
SYSTEM                         09/20/2014 00:00:19                     35280           41600           85
SYSTEM                         09/21/2014 00:00:59                     35280           41600           85

10 rows selected.

时间: 2024-10-11 18:11:29

查看空间使用情况的脚本的相关文章

有道云笔记怎么用之查看空间使用情况

  界面上方的空间按钮展示目前已使用的空间情况,您也可以点击该按钮,在弹出框中得到更多空间使用信息(如下图所示). 有道云笔记为每位用户提供1G的起始空间,您可以通过增加在线时间增加空间

getSQLinfo.vbs 获得SQL数据/日志空间使用情况的脚本_vbs

获得SQL数据/日志空间使用,已使用的和未使用的空间的脚本 getSQLinfo.vbs 'script to get   SQL DATA/LOG Space Used, Space unused,  and Space Free  'Author: Felipe Ferreira, Daniel Magrini 'Date: 05/07/07 'Version 2,0 '@@TO CHANGE::: SERVERNAME\Instance, domain\user, password AND

通过shell脚本查看数据库表空间使用情况

对于数据库中表空间查看,想必大家都有很多的脚本已经在用了,自己也啰嗦一下,分享一个通过shell脚本查看表空间使用情况的例子. 脚本如下: sqlplus -s $DB_CONN_STR@$SH_DB_SID   set echo off heading on underline on; column inst_num  heading "Inst Num"  new_value inst_num  format 99999; column inst_name heading &quo

Shell脚本实现监控swap空间使用情况和查看占用swap的进程_linux shell

复制代码 代码如下: #!/bin/bash   echo -e `date +%y%m%d%H%M` echo -e "PID\t\tSwap\t\tProc_Name"   # 拿出/proc目录下所有以数字为名的目录(进程名是数字才是进程,其他如sys,net等存放的是其他信息) for pid in `ls -l /proc | grep ^d | awk '{ print $9 }'| grep -v [^0-9]` do     # 让进程释放swap的方法只有一个:就是重

Oracle表空间查看sql使用情况_oracle

DBA在日常工作中,最重要的一点就是查看表空间的使用情况,去了解是否有表空间满了的情况出现. 具体方法和步骤如下所示: 第一步:打开PLSQL 第二步:新建一个SQL窗口 第三步:输入代码: select a.tablespace_name tablespace_name ,nvl(ceil((1 - b.free / a.total) * 100), 100) "usage_of_tablespace%" ,nvl(b.free, 0) "left_space(M)&quo

使用shell脚本查看数据库负载情况(第二篇)

在之前写了一个shell脚本,能够得到一个基于时间点的数据库负载报告. 使用shell脚本查看数据库负载情况 http://blog.itpub.net/23718752/viewspace-1168027/ 在生产环境中快照的生成频率可能10分钟或者半个小时就会生成,频率要快些,使用原先的脚本执行起来会有一定的延时. 想查看在快照的时间间隔内数据库的负载情况.这样能够更高效的定位某个问题.比如10点到11点,每10分钟生成一次快照.可能问题发生在10:40~10:50,如果通过一个小时的快照就

centos中df—查看文件系统的磁盘空间占用情况

名称df语法df [-options]参数    -a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统. -k 以k字节为单位显示. -i 显示i节点信息,而不是磁盘块. -t 显示各指定类型的文件系统的磁盘空间使用情况. -x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反). -T 显示文件系统类型.使用实例列出各文件系统的磁盘空间使用情况 df 列出各文件系统的i节点使用情况 df -ia 列出文件系统的类型 df -T -h更具目前磁

SQL Server--获取磁盘空间使用情况

原文:SQL Server--获取磁盘空间使用情况 对于DBA来说,监控磁盘使用情况是必要的工作,然后没有比较简单的方法能获取到磁盘空间使用率信息,下面总结下这些年攒下的脚本: 最常用的查看磁盘剩余空间,这个属于DBA入门必记的东西: -- 查看磁盘可用空间 EXEC master.dbo.xp_fixeddrives xp_fixeddrives方式有点是系统自带,可直接使用,缺点是不能查看磁盘总大小和不能查看SQL Server未使用到的磁盘信息 ======================

SQL Server获取磁盘空间使用情况

对于DBA来说,监控磁盘使用情况是必要的工作,然后没有比较简单的方法能获取到磁盘空间使用率信息,下面总结下这些年攒下的脚本: 最常用的查看磁盘剩余空间,这个属于DBA入门必记的东西: -- 查看磁盘可用空间 EXEC master.dbo.xp_fixeddrives xp_fixeddrives方式有点是系统自带,可直接使用,缺点是不能查看磁盘总大小和不能查看SQL Server未使用到的磁盘信息 使用sys.dm_os_volume_stats函数 --===================