当前位置: 首页 > BASIC, LINUX > 正文

下面是一个生成创建控制文件的脚本,要求数据库运行在MOUNT以上阶段,此脚本只在LINUX平台上面运行。

cat ./create_controlfile_sql.sh
echo  "please input direcotry default /tmp:"
read dir
if [ ! -z "$dir" ];then
   if [ ! -d "$dir" ];then
         mkdir -p $dir
   fi
  else 
    dir=/tmp   
fi
echo  "please input file name default control.ctl:"
read file_name
if [ -z "$file_name" ];then
      file_name=control.ctl
fi

if [ -f "$dir/$file_name" ];then
rm -rf $dir/$file_name
fi

sqlplus -s / as sysdba<<EOF
alter database backup controlfile to trace as '$dir/$file_name';
exit
EOF
num=`cat $dir/$file_name |grep -v '-'|grep -v ^$|sed 's/^    //'|sed 's/^  //'|wc -l`
num_1=`expr $(($num/2))`
cat $dir/$file_name |grep -v '-'|grep -v ^$|sed 's/^    //'|sed 's/^  //'|head -`echo $num_1`>$dir/$file_name

测试:

[oracle10g@rhel4 orcl10g]$ sh  ~/rs/sql/create_controlfile_sql.sh
please input direcotry default /tmp:
/tmp/control
please input file name default control.ctl:
control.ctl

Database altered.

[oracle10g@rhel4 orcl10g]$ cat /tmp/control/control.ctl 
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORCL10G" NORESETLOGS FORCE LOGGING ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/datafile/orcl10g/orcl10g/redo01.log'  SIZE 50M,
GROUP 2 '/datafile/orcl10g/orcl10g/redo02.log'  SIZE 50M,
GROUP 3 '/datafile/orcl10g/orcl10g/redo03.log'  SIZE 50M
DATAFILE
'/datafile/orcl10g/orcl10g/system01.dbf',
'/datafile/orcl10g/orcl10g/undotbs01.dbf',
'/datafile/orcl10g/orcl10g/sysaux01.dbf',
'/datafile/orcl10g/orcl10g/users01.dbf',
'/datafile/orcl10g/orcl10g/htz01.dbf'
CHARACTER SET ZHS16GBK
;
RECOVER DATABASE
ALTER SYSTEM ARCHIVE LOG ALL;
ALTER DATABASE OPEN;
ALTER TABLESPACE TEMP ADD TEMPFILE '/datafile/orcl10g/orcl10g/temp01.dbf'
 SIZE 10485760  REUSE AUTOEXTEND OFF;
ALTER DATABASE ADD STANDBY LOGFILE '/datafile/orcl10g/orcl10g/standby_redo01.log'
 SIZE 50M REUSE;
ALTER DATABASE ADD STANDBY LOGFILE '/datafile/orcl10g/orcl10g/standby_redo02.log'
 SIZE 50M REUSE;
ALTER DATABASE ADD STANDBY LOGFILE '/datafile/orcl10g/orcl10g/standby_redo03.log'
 SIZE 50M REUSE;
ALTER DATABASE ADD STANDBY LOGFILE '/datafile/orcl10g/orcl10g/standby_redo04.log'
 SIZE 50M REUSE;

直接在sqlplus下面运行就可以了,创建完控制文件后,记得手动add临时数据文件信息

alter tablespace temp add tempfile ‘’ size … autoextend off reuse;

ORACLE 生成创建控制文件语句脚本:等您坐沙发呢!

发表评论

gravatar

? razz sad evil ! smile oops grin eek shock ??? cool lol mad twisted roll wink idea arrow neutral cry mrgreen

快捷键:Ctrl+Enter