oracle扩展表空间工具,oracle——(2)Oracle表空间扩展脚本

在工作过程中,运维人员需要每天去看出表空间是不是已经不足,一般是如果发现表空间不足85%,再创建一个表空间。但是这样无形中增加了工作量,如果同时监控多个主机,则更加麻烦。

下面介绍如何使用脚本自动检查扩展:

-------------------创建表空间使用---------------------------------

create view TABLESPACE_USAGE as

select

a.tablespace_name,

a.file_name,

a.total "Total(MB)",

round(a.total-b.Free_Space) "Used(MB)",

round(((a.total-b.Free_Space)/a.total)*100,2) "Used(%)",

a.auto_extend

from

(select

FILE_ID,

tablespace_name,

file_name,

bytes/(1024*1024) Total,

AUTOEXTENSIBLE auto_extend

from

dba_data_files ddf) a,

(select

file_id,

sum(bytes)/(1024*1024) Free_Space

from

dba_free_space

group by file_id) b

where

a.file_id=b.file_id;

select * from TABLESPACE_USAGE;

上面视图可以看到目前整个数据库的表空间使用情况

TABLESPACE_NAME FILE_NAME Total(MB) Used(MB) Used(%) AUTO_EXTEND

1 SYSTEM /collect/oracle/oradata/ora11g/system01.dbf 700 676 96.5 YES

2 SYSAUX /collect/oracle/oradata/ora11g/sysaux01.dbf 600 495 82.52 YES

3 USERS /collect/oracle/oradata/ora11g/users01.dbf 13.75 10 75.45 YES

4 TEST_SPACE /collect/oracle/oradata/ora11g/test_space.dbf 100 1 1 NO

5 UNDOTBS1 /collect/oracle/oradata/ora11g/undotbs01.dbf 670 35 5.28 YES

脚本如下:

----------------------shell脚本---------------------------

#####################################################################

## checkTabsp.sh ##

## This Script will add the new datafile if  Tablespace's data

## file, which is greater than  the 80% of one datafiles size

#####################################################################

#!/bin/bash

usedPercentNO=(`sqlplus -s '/as sysdba' <

SET heading OFF;

SET verify OFF;

SELECT * FROM tablespace_used_percent;

EOF`

)

#get  the length of array

len=${#usedPercentNO[*]}

echo "The array has $len members."

i=0

while [ $i -lt $len ]; do

echo "$i: ${usedPercentNO[$i]}"

arrNo=`echo "${usedPercentNO[$i]}" | awk -F. '{print $1}'`

if [ -z $arrNo ]

then

arrNo=1

fi

# if usedPercentNo >= 80 then we add new data file,which will have 8G size

if [ $arrNo -gt 80 ]

then

let sigNo=$i+1

sqlplus -s "/ as sysdba" <

ALTER TABLESPACE DB_TABLESPACE ADD DATAFILE '/opt/oracle/oradata/DB/DB_DATA$sigNo.dbf' SIZE 2G  AUTOEXTEND ON MAXSIZE 8G;

EOF

# we need send email to report the tablespace stats info

sqlplus -s "/as sysdba" <

col tablespace_name for a30

col file_name for a60

col auto_extend for a12

col tablespace_name justify center

col file_name justify center

col autoextend justify right

set linesize 200

set pagesize 500

SPOOL tablespace.alert

SELECT * FROM TABLESPACE_USAGE;

SPOOL OFF;

EXIT

EOF

fi

let i++

done

#we needn't send email from there the crontab will do

if [ `cat tablespace.alert|wc -l` -gt 0 ]

then

cat tablespace.alert >tablespace.tmp

mailx -s "TABLESPACE ALERT for DB"  EMAIL-ADDRESS  < tablespace.alert

fi

上面这个脚本会导致如果有一个文件超过80%的话,脚本会不停添加数据文件....



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PL/SQL Developer是Oracle数据库当前最流行的开发工具之一,它在ORACLE数据库开发设计方面功能强大,使用方便,但是数据库管理方面一直比较欠缺。 DBATools For PL/SQL Developer 是一款PL/SQL Developer的辅助插件,主要功能是提供许多DBA数据库管理的功能,使ORACLE工程师不仅可以使用PL/SQL Developer进行开发设计,同时也可以进行数据库管理及监控,大大提高工作效率。 功能列表: 1.表空间管理 2.初始化参数管理 3.重做日志管理 4.数据库监视 4.1.查看SGA统计信息 4.2.查看排序情况 4.3.查看日志切换情况 4.4.查看锁资源 4.11.查看库缓存命中率 4.6.查看数据缓存命中率 4.7.查看WorkArea情况 4.8.查看当前会话等待事件 4.9.查看数据库大小 4.10.查看等待事件统计信息 5.清空缓冲区 6.导出数据库表结构文档 7.快速打开TNSNAME.ORA文件 8.快速打开listener.ORA文件 9.快速打开Oracle Net Manager 10.自定义配置 10.1.语言配置,支持中英两种语言 10.2.菜单自定义配置 10.3.数据库监视SQL自定义配置 11.快捷菜单 11.1.表 11.1.1.分析表 11.1.2.取表记录数 11.1.3.创建物化视图日志 11.1.4.设置并行度 11.2.视图 11.2.1.取表记录数 11.3.物化视图 11.3.1.分析 11.3.2.取表记录数 11.3.3.刷新 11.3.4.设置并行度 11.4.数据库链接 11.4.1.测试 11.11.列 11.11.1.分析 11.6.索引 11.6.1.分析 11.6.2.重建 11.7.表空间 11.7.1.管理 11.7.2.新增 11.7.3.编辑 12.导出菜单 12.1.导出属性方式的XML文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值