Oracle 11g单机安装脚本

用了一些公司自有的东西,比如yum,ntp,监控脚本等。如果要在自己环境跑,还是得调一下,不过整个框架是没有问题的,完全可以使用

-------------------------------------------------------------------------------------------------------

#!/bin/bash

#Creation Data: 2019-06-26
#Last-Modified Date: 2019-08-31
#Author: Create by xiaoxuesong
#Mail: 1029738172@qq.com
#Function: Oracle 11g install on oracle Linux 6 \ redhat 6
#version: 1.0 初版编写
#version: 1.1 加入判断是否归档模式,修改一些bug
#version: 1.2 加入安装目录判断,增加一些注释
#version: 1.3 加入字符集判断,设置默认字符集为AL32UTF8;丰富安装日志;增加GLOBLE_DBName环境变量;修改一些bug
#--可以完善的内容
#version: 1.4 初始化变量输入时,加入不合理变量判断(比如判断Oracle_SID是否超过8个字符;密码合规性检查)
#version: 2.0 判断OS版本,增加Linux 7的安装

#Readme :需要准备和确认的事情
#1,修改主机名/etc/sysconfig/network
#2,软件安装路径和数据文件路径要提前规划好
#3,软件安装包提前准备好(如果网络好,可以直接用nfs mount的方式)
#4,准备好yum源、NTP部署脚本(66.0.193.30服务器是我们内网服务器,其他公司需要自己搭建)
#5,准备好监控脚本
#6,数据库内存默认使用自动内存管理方式,内存大小默认配置为OS内存的48%,可通过搜索percentageMemTOSGA关键字进行修改
#7,脚本必须放在Oracle用户有权访问的位置下执行,如/tmp目录

#input variable
read -p "please input globle_dbname: " GLOBLE_DBName    #v1.3
read -p "please input ORACLE_SID: " ORACLE_SID
read -p "please input IPADDR: " hostip
read -p "please input ORACLE PASSWD: " ORAPASSWD
read -p "please input SYSTEM PASSWD: " SYSTEM_PASSWD
##judge archiveLogMode
read -p "please input ARCH MODE: true/false [true]? " V_ARCH_MODE    #v1.1
if [[ -z "${V_ARCH_MODE}" ]] || [[ $V_ARCH_MODE = "true" ]] || [[ $V_ARCH_MODE = "y" ]] || [[ $V_ARCH_MODE = "Y" ]];then
    ARCH_MODE=true
elif [[ $V_ARCH_MODE = "false" ]] || [[ $V_ARCH_MODE = "n" ]] || [[ $V_ARCH_MODE = "N" ]];then
    ARCH_MODE=false
else 
    echo "input error!!!"
    exit
fi
#judge software package directory
read -p "if the software package directory: /u01/software (y/n) [y]? " INPUT_DIR
if [[ -z "${INPUT_DIR}" ]] || [[ $INPUT_DIR = "/u01/software" ]] || [[ $INPUT_DIR = "y" ]] || [[ $INPUT_DIR = "Y" ]];then
    SOFTWATE_DIR=/u01/software
elif [[ $INPUT_DIR = "n" ]] || [[ $INPUT_DIR = "N" ]];then
    read -p "please input software directory: " SOFTWATE_DIR
else 
    SOFTWATE_DIR=$INPUT_DIR
fi
#judge install directory  v1.2
read -p "if the DB install directory: /u01/app (y/n) [y]? " INPUT_ENVDIR
if [[ -z "${INPUT_ENVDIR}" ]] || [[ $INPUT_ENVDIR = "/u01/app" ]] || [[ $INPUT_ENVDIR = "y" ]] || [[ $INPUT_ENVDIR = "Y" ]];then
    ENV_BASE_DIR=/u01/app
elif [[ $INPUT_ENVDIR = "n" ]] || [[ $INPUT_ENVDIR = "N" ]];then
    read -p "please input DB install directory: " ENV_BASE_DIR
else 
    ENV_BASE_DIR=$INPUT_ENVDIR
fi
##judge NLS v1.3
read -p "please input character set: [AL32UTF8]? " INPUT_NLS_LANG    #v1.3
if [[ -z "${INPUT_NLS_LANG}" ]] || [[ $INPUT_NLS_LANG = "true" ]] || [[ $INPUT_NLS_LANG = "y" ]] || [[ $INPUT_NLS_LANG = "Y" ]];then
    NLS_LANG=AL32UTF8
else [[ $INPUT_NLS_LANG = "false" ]] || [[ $INPUT_NLS_LANG = "n" ]] || [[ $INPUT_NLS_LANG = "N" ]]
    read -p "please input character set[ZHS16GBK/OTHERS]: " NLS_LANG
fi

#defined variable
DB_VERSION=11.2.0.4
#ENV_BASE_DIR=/u01/app
ENV_ORACLE_BASE=$ENV_BASE_DIR/oracle
ENV_ORACLE_HOME=$ENV_ORACLE_BASE/product/11.2
SCRIPT_DIR=`pwd`
#SCRIPT_DIR=/root/scripts
ENV_NLS_LANG=AMERICAN_AMERICA.${NLS_LANG}  #AMERICAN_AMERICA.ZHS16GBK
hostname_long=`hostname`
hostname=`hostname|cut -f 1 -d '.'`
MemTotalKB=`awk '/MemTotal/{print $2}' /proc/meminfo`
MemTotalMB=`echo "scale=0;$MemTotalKB / 1024 / 2"| bc`

#定义install应答文件
cat > db_install.rsp<<EOF
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=$hostname
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=$ENV_BASE_DIR/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=$ENV_ORACLE_HOME
ORACLE_BASE=$ENV_ORACLE_BASE
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.isRACOneInstall=false
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=$GLOBLE_DBName
oracle.install.db.config.starterdb.SID=$ORACLE_SID
oracle.install.db.config.starterdb.characterSet=${NLS_LANG}
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=$MemTotalMB
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=false
oracle.install.db.config.starterdb.password.ALL=$SYSTEM_PASSWD
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.automatedBackup.enable=false
DECLINE_SECURITY_UPDATES=true
oracle.installer.autoupdates.option=SKIP_UPDATES
EOF

#定义dbca应答文件
cat > dbca.rsp<<EOF
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "$GLOBLE_DBName"
SID = "$ORACLE_SID"
TEMPLATENAME = "ORCL_TEMPLATE.dbt"
STORAGETYPE= FS
DATAFILEDESTINATION = "$ENV_ORACLE_BASE/oradata/$ORACLE_SID"
CHARACTERSET = "${NLS_LANG}"
NATIONALCHARACTERSET= "AL16UTF16"
LISTENERS = LISTENER
TOTALMEMORY = "$MemTotalMB"
SYSPASSWORD = "$SYSTEM_PASSWD"
SYSTEMPASSWORD = "$SYSTEM_PASSWD"
EOF


#Configure the hostname,modify /etc/hosts file
if [ $hostname = "localhost.localdomain" ]; then
    #To be updated
    echo "current hostname is localhost.localdomain, please rename in file /etc/sysconfig/network"
    exit
else
    if [ `grep ${hostname} /etc/hosts | wc -l` -gt 0 ]; then
        echo "hostname ${hostname} is exist in file /etc/hosts ----- Not Modified" > install.log
    else
        cp /etc/hosts /etc/hosts.bak
        echo "${hostip}    ${hostname}" >> /etc/hosts
        echo "modify /etc/hosts ----- SUCCEEDED" >> install.log
    fi
fi


#Configure the network
#Turn off the firewall(Linux 6)
if [ `chkconfig --list | grep tables | grep on | wc -l` -gt 0 ]; then
    service iptables stop
    chkconfig --level 2345 iptables off
    service ip6tables stop
    chkconfig --level 2345 ip6tables off
    service network restart
    echo "Firewall closed ----- SUCCEEDED" >> install.log
else
    echo "Firewall checked, not turned on ----- Not Modified" >> install.log
fi
#Turn off the NetworkManager(Linux 6)
if [ `chkconfig --list | grep NetworkManager | grep on | wc -l` -gt 0 ]; then
    service NetworkManager stop
    chkconfig --level 2345 NetworkManager off
    service NetworkManager off
    service network restart
    echo "NetworkManager closed ----- SUCCEEDED" >> install.log
else
    echo "NetworkManager checked, not turned on ----- Not Modified" >> install.log
fi


### Create ntp.conf file for Linux 5/6 ,Not fit Linux 7
if [ `cat /etc/ntp.conf | grep 10.0.1.33 | wc -l` -gt 0 ]; then
    echo "NTP checked, already on ----- Not Modified" >> install.log
else
    wget http://66.0.193.30/Tools/NTP/ntp.conf -O /etc/ntp.conf
    chkconfig ntpd on
    service ntpd stop; ntpd -qg ; service ntpd start
    echo "NTP configure ----- SUCCEEDED" >> install.log
fi


#Create group
if [ `grep "^oinstall:" /etc/group | wc -l` -gt 0 ]; then
    echo "oinstall group is exist ----- Not Modified" >> install.log
else
    groupadd oinstall
    echo "oinstall group is created ----- SUCCEEDED" >> install.log
fi
if [ `grep "^dba:" /etc/group | wc -l` -gt 0 ]; then
    echo "dba group is exist ----- Not Modified" >> install.log
else
    groupadd dba
    echo "dba group is created ----- SUCCEEDED" >> install.log
fi

#Create user
if [ `grep "^oracle:" /etc/passwd | wc -l` -gt 0 ]; then
    echo "oracle user is exist ----- Not Modified" >> install.log
else
    useradd oracle -g oinstall -G dba
    echo "oracle user is created ----- SUCCEEDED" >> install.log
    echo "${ORAPASSWD}" |passwd --stdin oracle
    echo "oracle password is updated ----- SUCCEEDED" >> install.log
fi


#Configure /etc/sysctl.conf file
# kernel.shmall取总内存的页数(每页4K),kernel.shmmax取内存的一半
if [ `grep "^net.core.wmem_max" /etc/sysctl.conf | wc -l` -gt 0 ]; then
    echo "/etc/sysctl.conf file is modified ----- Not Modified" >> install.log
else
    cp /etc/sysctl.conf  /etc/sysctl.conf.bak
    shmall=$(($MemTotalKB / 4))
    shmmax=$(($MemTotalKB * 512))
    cat >> /etc/sysctl.conf<<EOF

# Oracle11g
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.shmall = ${shmall}
kernel.shmmax = ${shmmax}
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
kernel.panic_on_oops = 1
EOF
    sysctl -p
    echo "/etc/sysctl.conf file is modified ----- SUCCEEDED" >> install.log
fi


#Configure /etc/security/limits.conf file
#if [ `grep "^oracle    soft    nproc    2047" /etc/security/limits.conf | wc -l` -gt 0 ]
if [ `grep "2047" /etc/security/limits.conf | wc -l` -gt 0 ]; then
    echo "/etc/security/limits.conf file is modified ----- Not Modified" >> install.log
else
    cp /etc/security/limits.conf  /etc/security/limits.conf.bak
    cat >> /etc/security/limits.conf<<EOF

# add by xxs
*    soft    nproc    2047
*    hard    nproc    16384
*    soft    nofile    1024
*    hard    nofile    65536
EOF
    echo "/etc/security/limits.conf file is modified ----- SUCCEEDED" >> install.log
fi

#Configure /etc/pam.d/login file
if [ `grep "pam_limits.so" /etc/pam.d/login | wc -l` -gt 0 ]; then
    echo "/etc/pam.d/login file is modified ----- Not Modified" >> install.log
else
    cp /etc/pam.d/login  /etc/pam.d/login.bak
    echo "session    required    pam_limits.so" >> /etc/pam.d/login
    echo "/etc/pam.d/login file is modified ----- SUCCEEDED" >> install.log
fi

#Create oracle directory
if [ ! -d "${ENV_BASE_DIR}" ]; then
    mkdir -p ${ENV_BASE_DIR}
    chown -R oracle:oinstall ${ENV_BASE_DIR}
    chmod -R 775 ${ENV_BASE_DIR}
    echo "directory ${ENV_BASE_DIR} is created ----- SUCCEEDED" >> install.log
else    
    echo "directory ${ENV_BASE_DIR} is exist ----- Not Modified" >> install.log
fi


#Configure oracle's ENV
if [ `grep "export ORACLE" /home/oracle/.bash_profile | wc -l` -gt 0 ]; then
    echo "variable ORACLE ENV is exist ----- Not Modified" >> install.log
else    
    cp /home/oracle/.bash_profile /home/oracle/.bash_profile.bak
    echo "" >> /home/oracle/.bash_profile
    echo "export ORACLE_SID=${ORACLE_SID}" >> /home/oracle/.bash_profile
    echo "export GLOBLE_DBName=${GLOBLE_DBName}" >> /home/oracle/.bash_profile
    echo "export ORACLE_BASE=${ENV_ORACLE_BASE}" >> /home/oracle/.bash_profile
    echo 'export ORACLE_HOME=$ORACLE_BASE/product/11.2' >> /home/oracle/.bash_profile
    echo 'export PATH=$ORACLE_HOME/bin:$PATH' >> /home/oracle/.bash_profile
    #v1.3 <db_name>/<ORACLE_SID>
    echo "TRACE=$ORACLE_BASE/diag/rdbms/$GLOBLE_DBName/$ORACLE_SID/trace" >> /home/oracle/.bash_profile
    source /home/oracle/.bash_profile
    echo "variable ORACLE ENV is modified ----- SUCCEEDED" >> install.log
fi

#Configure yum
###################################################################################################
YUM_DIR=/etc/yum.repos.d
YUM_CONF=$YUM_DIR/my_yum_conf.repo
#OS_TYPE=`lsb_release -a |grep Description |awk '{print $2 $3}'`
#OS_VER=`lsb_release -a |grep Release |awk '{print $2}'`
OS_TYPE=`more /etc/system-release |awk '{print $1 $2}'`
RELS=`more /etc/system-release`
OS_VER_TEMP=`echo ${RELS#*release} |awk '{print $1}'`

if [ "$OS_TYPE" = "CentOSLinux" ]; then
    OS_VER=`echo ${OS_VER_TEMP%.*}`
else
    OS_VER=$OS_VER_TEMP
fi

## add yum hosts
if [ `grep 66.0.193.30 /etc/hosts | wc -l` -gt 0 ]; then
    echo "66.0.193.30 is exist in file /etc/hosts"
else
    echo "" >> /etc/hosts
    echo "#yum resource" >> /etc/hosts
    echo "66.0.193.30    yum.longi.com" >> /etc/hosts
fi

# mv old repo config file to bak
#cd $YUM_DIR 
if [ ! -d "${YUM_DIR}/old_bak" ]; then
    mkdir $YUM_DIR/old_bak
else    
    echo "directory ${YUM_DIR}/old_bak is exist" 
fi
mv $YUM_DIR/*.repo $YUM_DIR/old_bak/

## Create my conf file
echo "[MY-YUM-SERVER]" > $YUM_CONF
echo "name= $OS_TYPE $OS_VER" >> $YUM_CONF
if [ "$OS_TYPE" = "CentOSLinux" ]; then
  echo "baseurl=http://yum.longi.com/yum/$OS_TYPE/$OS_VER/\$basearch/" >> $YUM_CONF 
else
  echo "baseurl=http://yum.longi.com/yum/$OS_TYPE/$OS_VER/\$basearch/Server/" >> $YUM_CONF 
fi
echo "enabled=1" >> $YUM_CONF
echo "gpgcheck=0" >> $YUM_CONF
###################################################################################################

#Install rpm
yum install -y \
binutils-* \
compat-libcap1-* \
compat-libstdc++-* \
elfutils-libelf-* \
elfutils-libelf-devel-* \
gcc-* \
gcc-c++-* \
glibc-* \
glibc-common-* \
glibc-devel-* \
glibc-headers-* \
ksh* \
libaio-* \
libaio-devel-* \
libgcc-* \
libstdc++-* \
make-* \
expat-* \
pdksh-* \
sysstat-* \
unixODBC-* \
unixODBC-devel #> /dev/null 2>&1


#verify rpm (need if)
echo "#################################" > rpm.log
echo "check rpm: " >> rpm.log
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils \
compat-libstdc++-33 \
compat-libcap1 \
elfutils-libelf \
elfutils-libelf-devel \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
ksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
sysstat \
unixODBC \
unixODBC-devel >> rpm.log
echo "#################################" >> rpm.log
if [ `grep "not installed" $SCRIPT_DIR/rpm.log | wc -l` -gt 0 ]; then
    echo -e "################################################### \033[5m"
    echo -e "\033[33m some RPM package is not installed, please check! \033[0m"
    echo "###################################################"
    exit
else
    cat $SCRIPT_DIR/rpm.log >> install.log
    rm -rf $SCRIPT_DIR/rpm.log
fi

echo "RPM is installed ----- SUCCEEDED" >> install.log

#Check installation log
echo "#################################"
cat install.log
echo "#################################"


#Install Database software
chown oracle.oinstall $SCRIPT_DIR/db_install.rsp
su - oracle <<EOF
cd $SOFTWATE_DIR/database;
./runInstaller -silent -force -ignoreSysPrereqs -responseFile $SCRIPT_DIR/db_install.rsp -ignorePrereq;
EOF
#睡眠10分钟
sleep 10m
sh $ENV_BASE_DIR/oraInventory/orainstRoot.sh  #v1.1
sh $ENV_BASE_DIR/oracle/product/11.2/root.sh  #v1.1
echo "Database software is installed ----- SUCCEEDED" >> install.log

#定义dbca模板文件
cat > $ENV_ORACLE_HOME/assistants/dbca/templates/ORCL_TEMPLATE.dbt<<EOF
<DatabaseTemplate name="ORCL_TEMPLATE" description=" " version="11.2.0.0.0">
   <CommonAttributes>
      <option name="OMS" value="false"/>
      <option name="JSERVER" value="true"/>
      <option name="SPATIAL" value="false"/>
      <option name="IMEDIA" value="true"/>
      <option name="XDB_PROTOCOLS" value="true">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="ORACLE_TEXT" value="false">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="SAMPLE_SCHEMA" value="false"/>
      <option name="CWMLITE" value="false">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="EM_REPOSITORY" value="false">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="APEX" value="true"/>
      <option name="OWB" value="false"/>
      <option name="DV" value="false"/>
   </CommonAttributes>
   <Variables/>
   <CustomScripts Execute="false"/>
   <InitParamAttributes>
      <InitParams>
         <initParam name="db_name" value="$ORACLE_SID"/>
         <initParam name="db_domain" value=""/>
         <initParam name="dispatchers" value="(PROTOCOL=TCP) (SERVICE={SID}XDB)"/>
         <initParam name="audit_file_dest" value="{ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump"/>
         <initParam name="compatible" value="11.2.0.4.0"/>
         <initParam name="remote_login_passwordfile" value="EXCLUSIVE"/>
         <initParam name="log_archive_dest_1" value="'LOCATION=$ENV_ORACLE_BASE/oradata/$ORACLE_SID'"/>
         <initParam name="processes" value="2000"/>
         <initParam name="undo_tablespace" value="UNDOTBS1"/>
         <initParam name="control_files" value="(&quot;{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control01.ctl&quot;, &quot;{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control02.ctl&quot;)"/>
         <initParam name="diagnostic_dest" value="{ORACLE_BASE}"/>
         <initParam name="audit_trail" value="db"/>
         <initParam name="log_archive_format" value="%t_%s_%r.dbf"/>
         <initParam name="sessions" value="2205"/>
         <initParam name="db_block_size" value="8" unit="KB"/>
         <initParam name="open_cursors" value="300"/>
      </InitParams>
      <MiscParams>
         <databaseType>MULTIPURPOSE</databaseType>
         <maxUserConn>20</maxUserConn>
         <percentageMemTOSGA>48</percentageMemTOSGA>
         <customSGA>false</customSGA>
         <characterSet>${NLS_LANG}</characterSet>
         <nationalCharacterSet>AL16UTF16</nationalCharacterSet>
         <archiveLogMode>$ARCH_MODE</archiveLogMode>
         <initParamFileName>{ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/pfile/init.ora</initParamFileName>
      </MiscParams>
      <SPfile useSPFile="true">{ORACLE_HOME}/dbs/spfile{SID}.ora</SPfile>
   </InitParamAttributes>
   <StorageAttributes>
      <ControlfileAttributes id="Controlfile">
         <maxDatafiles>100</maxDatafiles>
         <maxLogfiles>16</maxLogfiles>
         <maxLogMembers>3</maxLogMembers>
         <maxLogHistory>1</maxLogHistory>
         <maxInstances>8</maxInstances>
         <image name="control01.ctl" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
         <image name="control02.ctl" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </ControlfileAttributes>
      <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/sysaux01.dbf">
         <tablespace>SYSAUX</tablespace>
         <temporary>false</temporary>
         <online>true</online>
         <status>0</status>
         <size unit="MB">2000</size>
         <reuse>true</reuse>
         <autoExtend>true</autoExtend>
         <increment unit="KB">10240</increment>
         <maxSize unit="MB">-1</maxSize>
      </DatafileAttributes>
      <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/system01.dbf">
         <tablespace>SYSTEM</tablespace>
         <temporary>false</temporary>
         <online>true</online>
         <status>0</status>
         <size unit="MB">2000</size>
         <reuse>true</reuse>
         <autoExtend>true</autoExtend>
         <increment unit="KB">10240</increment>
         <maxSize unit="MB">-1</maxSize>
      </DatafileAttributes>
      <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/temp01.dbf">
         <tablespace>TEMP</tablespace>
         <temporary>false</temporary>
         <online>true</online>
         <status>0</status>
         <size unit="MB">5000</size>
         <reuse>true</reuse>
         <autoExtend>true</autoExtend>
         <increment unit="KB">640</increment>
         <maxSize unit="MB">-1</maxSize>
      </DatafileAttributes>
      <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/undotbs01.dbf">
         <tablespace>UNDOTBS1</tablespace>
         <temporary>false</temporary>
         <online>true</online>
         <status>0</status>
         <size unit="MB">5000</size>
         <reuse>true</reuse>
         <autoExtend>true</autoExtend>
         <increment unit="KB">5120</increment>
         <maxSize unit="MB">-1</maxSize>
      </DatafileAttributes>
      <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/users01.dbf">
         <tablespace>USERS</tablespace>
         <temporary>false</temporary>
         <online>true</online>
         <status>0</status>
         <size unit="MB">500</size>
         <reuse>true</reuse>
         <autoExtend>true</autoExtend>
         <increment unit="KB">1280</increment>
         <maxSize unit="MB">-1</maxSize>
      </DatafileAttributes>
      <TablespaceAttributes id="SYSAUX">
         <online>true</online>
         <offlineMode>1</offlineMode>
         <readOnly>false</readOnly>
         <temporary>false</temporary>
         <defaultTemp>false</defaultTemp>
         <undo>false</undo>
         <local>true</local>
         <blockSize>-1</blockSize>
         <allocation>1</allocation>
         <uniAllocSize unit="KB">-1</uniAllocSize>
         <initSize unit="KB">64</initSize>
         <increment unit="KB">64</increment>
         <incrementPercent>50</incrementPercent>
         <minExtends>1</minExtends>
         <maxExtends>4096</maxExtends>
         <minExtendsSize unit="KB">64</minExtendsSize>
         <logging>true</logging>
         <recoverable>false</recoverable>
         <maxFreeSpace>0</maxFreeSpace>
         <autoSegmentMgmt>true</autoSegmentMgmt>
         <bigfile>false</bigfile>
         <datafilesList>
            <TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/sysaux01.dbf">
               <id>-1</id>
            </TablespaceDatafileAttributes>
         </datafilesList>
      </TablespaceAttributes>
      <TablespaceAttributes id="SYSTEM">
         <online>true</online>
         <offlineMode>1</offlineMode>
         <readOnly>false</readOnly>
         <temporary>false</temporary>
         <defaultTemp>false</defaultTemp>
         <undo>false</undo>
         <local>true</local>
         <blockSize>-1</blockSize>
         <allocation>3</allocation>
         <uniAllocSize unit="KB">-1</uniAllocSize>
         <initSize unit="KB">64</initSize>
         <increment unit="KB">64</increment>
         <incrementPercent>50</incrementPercent>
         <minExtends>1</minExtends>
         <maxExtends>-1</maxExtends>
         <minExtendsSize unit="KB">64</minExtendsSize>
         <logging>true</logging>
         <recoverable>false</recoverable>
         <maxFreeSpace>0</maxFreeSpace>
         <autoSegmentMgmt>true</autoSegmentMgmt>
         <bigfile>false</bigfile>
         <datafilesList>
            <TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/system01.dbf">
               <id>-1</id>
            </TablespaceDatafileAttributes>
         </datafilesList>
      </TablespaceAttributes>
      <TablespaceAttributes id="TEMP">
         <online>true</online>
         <offlineMode>1</offlineMode>
         <readOnly>false</readOnly>
         <temporary>true</temporary>
         <defaultTemp>true</defaultTemp>
         <undo>false</undo>
         <local>true</local>
         <blockSize>-1</blockSize>
         <allocation>1</allocation>
         <uniAllocSize unit="KB">-1</uniAllocSize>
         <initSize unit="KB">64</initSize>
         <increment unit="KB">64</increment>
         <incrementPercent>0</incrementPercent>
         <minExtends>1</minExtends>
         <maxExtends>0</maxExtends>
         <minExtendsSize unit="KB">64</minExtendsSize>
         <logging>true</logging>
         <recoverable>false</recoverable>
         <maxFreeSpace>0</maxFreeSpace>
         <autoSegmentMgmt>true</autoSegmentMgmt>
         <bigfile>false</bigfile>
         <datafilesList>
            <TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/temp01.dbf">
               <id>-1</id>
            </TablespaceDatafileAttributes>
         </datafilesList>
      </TablespaceAttributes>
      <TablespaceAttributes id="UNDOTBS1">
         <online>true</online>
         <offlineMode>1</offlineMode>
         <readOnly>false</readOnly>
         <temporary>false</temporary>
         <defaultTemp>false</defaultTemp>
         <undo>true</undo>
         <local>true</local>
         <blockSize>-1</blockSize>
         <allocation>1</allocation>
         <uniAllocSize unit="KB">-1</uniAllocSize>
         <initSize unit="KB">512</initSize>
         <increment unit="KB">512</increment>
         <incrementPercent>50</incrementPercent>
         <minExtends>8</minExtends>
         <maxExtends>4096</maxExtends>
         <minExtendsSize unit="KB">512</minExtendsSize>
         <logging>true</logging>
         <recoverable>false</recoverable>
         <maxFreeSpace>0</maxFreeSpace>
         <autoSegmentMgmt>true</autoSegmentMgmt>
         <bigfile>false</bigfile>
         <datafilesList>
            <TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/undotbs01.dbf">
               <id>-1</id>
            </TablespaceDatafileAttributes>
         </datafilesList>
      </TablespaceAttributes>
      <TablespaceAttributes id="USERS">
         <online>true</online>
         <offlineMode>1</offlineMode>
         <readOnly>false</readOnly>
         <temporary>false</temporary>
         <defaultTemp>false</defaultTemp>
         <undo>false</undo>
         <local>true</local>
         <blockSize>-1</blockSize>
         <allocation>1</allocation>
         <uniAllocSize unit="KB">-1</uniAllocSize>
         <initSize unit="KB">128</initSize>
         <increment unit="KB">128</increment>
         <incrementPercent>0</incrementPercent>
         <minExtends>1</minExtends>
         <maxExtends>4096</maxExtends>
         <minExtendsSize unit="KB">128</minExtendsSize>
         <logging>true</logging>
         <recoverable>false</recoverable>
         <maxFreeSpace>0</maxFreeSpace>
         <autoSegmentMgmt>true</autoSegmentMgmt>
         <bigfile>false</bigfile>
         <datafilesList>
            <TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/users01.dbf">
               <id>-1</id>
            </TablespaceDatafileAttributes>
         </datafilesList>
      </TablespaceAttributes>
      <RedoLogGroupAttributes id="1">
         <reuse>false</reuse>
         <fileSize unit="KB">51200</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo01.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </RedoLogGroupAttributes>
      <RedoLogGroupAttributes id="2">
         <reuse>false</reuse>
         <fileSize unit="KB">51200</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo02.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </RedoLogGroupAttributes>
      <RedoLogGroupAttributes id="3">
         <reuse>false</reuse>
         <fileSize unit="KB">51200</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo03.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </RedoLogGroupAttributes>
   </StorageAttributes>
</DatabaseTemplate>
EOF

#Create Database
chown oracle.oinstall $SCRIPT_DIR/dbca.rsp
chown oracle.oinstall $ENV_ORACLE_HOME/assistants/dbca/templates/ORCL_TEMPLATE.dbt
su - oracle << EOF
cd $ENV_ORACLE_HOME/bin
./dbca -silent -responseFile $SCRIPT_DIR/dbca.rsp
EOF
echo "Database is created ----- SUCCEEDED" >> install.log

#Install listence
su - oracle <<EOF
cd $ENV_ORACLE_HOME/bin
./netca /silent /responseFile $SOFTWATE_DIR/database/response/netca.rsp
EOF
echo "listence is created ----- SUCCEEDED" >> install.log

#初始化监控脚本
mkdir /home/oracle/scripts
wget http://66.0.193.30/scripts/dba_db_log_02.sh -O /home/oracle/scripts/dba_db_log.sh
chown -R oracle:oinstall /home/oracle/scripts
chmod 755 /home/oracle/scripts/dba_db_log.sh

#设置定时任务
echo "0 0 * * * /home/oracle/scripts/dba_db_log.sh > /home/oracle/scripts/dba_db_log.log 2>&1" > /var/spool/cron/oracle
chown oracle:oinstall /var/spool/cron/oracle
echo "crontab is created ----- SUCCEEDED" >> install.log

#Database infomation
cat > DB_Inf.txt<<EOF
OS Infomation:
$hostip    $hostname 

OS User name&passwd: 
oracle / $ORAPASSWD 
 
Database Infomation: 
ORACLE_SID = $ORACLE_SID

Database version :  $DB_VERSION

TNS: 
**********************************************
${ORACLE_SID}_TNS =
        (DESCRIPTION= 
            (ADDRESS_LIST=
                (LOAD_BALANCE=YES)
                (FAILOVER=YES)
                (ADDRESS=(PROTOCOL=tcp)(HOST=$hostip)(PORT=1521))
            )
            (CONNECT_DATA=
                (SERVICE_NAME=$ORACLE_SID)
            )
        )
********************************************** 

DB User name&passwd: system / $SYSTEM_PASSWD
 
DB NLS LANG: 
$ENV_NLS_LANG 
EOF
echo "#################################"
cat DB_Inf.txt
echo "#################################"
#这里可以配置mail,然后将DB_Inf邮件通知

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值