Oracle批量扩数据文件脚本(file_id连续)
- nohup ./resize.sh 20 25 &,参数指定数据文件file_id 20 到 25 依次串行扩展大小;
- 每次扩展数据文件从100m递增扩展到2400m,每次递增100m;初始数据文件大小要小于100m或者未使用,否则报错;
- 校验Linux CPU IOwait,只有<5%时才resize数据文件;
IO性能足够情况,#sleep 1无需放开,IO较差环境,建议设置脚本执行间隔时间,单位-秒;
#!/bin/bash # Usage: nohup ./resize.sh 20 25 & source ~/.bash_profile export resize_tmp=/tmp/resize_tmp.log > $resize_tmp f=$1 for((f=$1; f<=$2; f++)); do echo "$(date +'%F %T'): Resize datafile : $f">> $resize_tmp for((i=100; i<=2400; i=i+100)) do export wa=99 # resize datafile only when CPU iowait is less than 5% until [ $wa -lt 5 ]; do sleep 1 wa=$(top -cn 1 | grep 'wa,'|grep -v grep|awk '{print $10}'|cut -d. -f1) done echo "$(date +'%F %T'):Begin alter database datafile $f resize $i m;">> $resize_tmp echo -e "alter database datafile $f resize $i m;\nexit;" | sqlplus -S / as sysdba echo "$(date +'%F %T'):End alter database datafile $f resize $i m;">> $resize_tmp done done # End
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。