用了一些公司自有的东西,比如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="("{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control01.ctl", "{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control02.ctl")"/>
<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邮件通知