Oracle11g 自动化建库及调整相关参数

来源:这里教程网 时间:2026-03-03 11:58:50 作者:

  该脚本适用于从模板克隆出的数据库,包括建库、调整参数、修改相关配置文件、生产数据库配置文件。该脚本目录在suse 11、suse 12上测试通过。    #!/usr/bin/env bash echo "=========================================" echo "This script is for install a test oracle db" echo "Please use oracle user execute !!!!!!!!!!!" echo "Execute this script about 5-10 mins " echo "Script has been test on suse 11sp4 12sp3" echo "========================================" uid=`id -u` uname=`cat /etc/passwd| grep $uid | awk -F ":" '{print $1}'` function exit_script() {         exit 1 } function crt_db() {   local mem=`free -g | grep Mem | awk {'print $2'}`   local perc=30   if [ "$mem" -lt 5 ]; then     perc=50     echo "Machine memory is $mem GB, Oracle mem percet is 50%"   else     echo "Machine memory is $mem GB, Oracle mem percet is 30%"   fi  echo "Begin create database ..."   dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname gycdb -sid gycdb  -sysPassword gyc_pwd123 -systemPassword gyc_pwd123 -responseFile NO_VALUE  -characterSet ZHS16GBK -memoryPercentage $perc -emConfiguration NONE -datafileDestination /oradata/ -redoLogFileSize 500 -initParams processes=2000  if [ $? -eq 0 ]; then     echo "Create database has been completed!!!"  else     echo "Create database failed, Please connect to Oracle DBA"     exit_script  fi } function change_prm() {  local fname=/oracle/app/oracle/product/11.2.0/rdbms/admin/gyc_dev.sql  if [  -f "$fname" ]; then     echo "Parameter file is exits!, Begin change default parameters"  else     echo "Parameter file is not exits, Please connect to Oracle DBA"     exit_script  fi  sed -i '1d' $fname  echo "shutdown immediate" >> $fname  echo "startup" >> $fname  echo "exit" >> $fname  export ORACLE_SID=gycdb  sqlplus "/ as sysdba" @$fname  if [ $? -eq 0 ]; then    echo "Database has changed default parameters !!!!"  else     echo "Change paramter failed, Please connect to Oracle DBA"     exit_script  fi } function change_hostname() {   echo "Begin change hostname and oracle sid...."   sed -i "s/GYCTEST/`hostname`/g"  $ORACLE_HOME/network/admin/listener.ora    lsnrctl start   sed -i "s/icbcdb/gycdb/g" /home/oracle/.profile  if [ $? -eq 0 ]; then   echo "Listener has changed hostnane, Listener was started"  else     echo "Start listener failed, Please connect to Oracle DBA"     exit_script  fi } function db_info() {   echo "Begin create db info file...."   local fname=/home/oracle/db_info.txt   touch $fname   echo "db_name:gycdb" >> $fname   echo "port:1521" >> $fname   echo "sys/system:gyc_pwd123" >> $fname  if [ $? -eq 0 ]; then     echo "Db_info file has been created!!"  else     echo "Db_info has failed, Please connect to Oracle DBA"     exit_script  fi } if [ "$uname" == "oracle" ]; then      echo "Begin execute script ......"     crt_db     change_prm     change_hostname     db_info     echo "End execute script !!!!!!" else    echo "Current user is not oracle, Please change to oracle then execute this script"    exit_script fi function db_info() {   echo "Begin create db info file...."   local fname=/home/oracle/db_info.txt   touch $fname   echo "db_name:testdb" >> $fname   echo "port:1521" >> $fname   echo "sys/system:SysCs_100010" >> $fname  if [ $? -eq 0 ]; then     echo "Db_info file has been created!!"  else     echo "Db_info has failed, Please connect to Oracle DBA"     exit_script  fi } if [ "$uname" == "oracle" ]; then      echo "Begin execute script ......"     crt_db     change_prm     change_hostname     db_info     echo "End execute script !!!!!!" else    echo "Current user is not oracle, Please change to oracle then execute this script"    exit_script fi 该脚本内容可根据实际情况进行相关调整。

相关推荐