非OMF管理 自动添加数据文件add_datafiles.sh

oracle_ray .sh脚本在我的博客中有,请自行搜索。


这个脚本需要规范的路径,主要是数据文件的命名,要以数字结尾的.dbf文件开可以实现自动数字自加。

例如:

    /u01/app/oracle/oradata/orcl/user01.dbf

    +data/orcl/user01.dbf




#!/bin/bash
#by raysuen
#v01
#load profile for env
[ -f ~/.profile ]&& source ~/.profile
[ -f ~/.bash_profile ]&& source ~/.bash_profile
#function for add datafile
AddDataFile(){
	sqlplus -s /nolog<<-RAY
		conn / as sysdba
		$1
		
	RAY
}
#specify check script
ora_script=/home/oracle/script/ray/oracle_ray.sh
while true
do
	#obtain tablespace name which is over threshold value
	tablespace_name=`${ora_script} type=tablespace | egrep -v "TABLESPACE_NAME|selected|new mail|TEMP" |tr "%" " " | awk '{if($NF>85) print $1}'`
	
	if [ "${tablespace_name:-None}" == "None" ];then
		break
	else
		#loop tablespace name if tablespace is more then 2
		for i in ${tablespace_name}
		do
			#obtain max datafile name
			max_datafile=`${ora_script} type=tsdf| grep "${i}" | sort -k 2 | tail -1 | awk '{print $2}'`
			#obtain max datafile number from max datafile
			max_num=`echo ${max_datafile} | awk -F\/ '{print $NF}' | sed -e "s/${i}//g" |  sed -e "s/$(echo ${i} | tr [A-Z] [a-z])//g" | sed -e "s/[^0-9]//g"`
			#plus 1 on max_num
			replace_num=$[$max_num+1]
			
			#judge replace_num whether is less then 10,if it is true ,then before the replace_num join 0
			if [ ${replace_num} -lt 10 ];then
				replace_num=`echo 0"${replace_num}"`
			fi
			#join the executable sql to add datafile
			sqltring=`echo "alter tablespace ${i} add datafile '"$(echo ${max_datafile} | sed "s/${max_num}\./${replace_num}\./g")"' size 128M autoextend on next 128M maxsize unlimited;"`
			#echo $sqltring
			AddDataFile "${sqltring}"
		done
	fi
		
done


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28572479/viewspace-2199609/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28572479/viewspace-2199609/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值