因爲常常須要部署oracle12c環境,我就將部署過程編寫成shell腳原本,提升安裝部署的效率,自動安裝部署的腳本分爲兩部分,第一部分oracle_software.sh的做用是安裝oracle軟件環境;第二部分是listener_dbca.sh,做用是安裝監聽、配置oracle系統啓停服務、配置數據庫實例,臨時表空間,數據表空間及受權。完成這兩個腳本以後,最後的操做就是將待導入的dmp備份文件上傳到服務器,操做expdp還原便可。
腳本的內容具體以下:
oracle數據庫自動安裝部署腳本:linux
[root@~]# cat oracle_software.sh #!/bin/bash #################### Steup 1 Install oracle software #################### #script_name: oracle_software.sh #Author: Danrtsey #mail:mydefiniteaim@126.com #auto_install_oracle12c version=12.1.0.2 # attentions: # 1.上傳12c軟件安裝包至/opt/路徑下(本腳本支持上傳至任意路徑,根據腳本執行執行) ######################################## # # linuxamd64_12102_database_1of2.zip # # linuxamd64_12102_database_2of2.zip # # # ######################################## # 2.出現以下提示時,注意新開shell窗口並以root用戶鏈接至服務器,執行提示的兩個腳本 # 若是您是按腳本提示的路徑安裝oracle,將出現以下提示 ############################################################ # As a root user, execute the following script(s): # # 1./u01/oraInventory/orainstRoot.sh # # 2./u01/oracle/product/12c/dbhome_1/root.sh # ############################################################ # 3.待使用root用戶執行完提示的腳本以後,回到原來窗口按回車,結束腳本的運行 # 4.預設oracle用戶的密碼爲 Odbinstall 請根據須要修改 ##################################### #ORACLE_OS_PWD= # #if [ "$ORACLE_OS_PWD" = "" ]; then # # ORACLE_OS_PWD="Odbinstall" # #fi # ##################################### # 5.此腳本分爲如下兩部分,請注意拆分按順序執行 # Steup 1 Install oracle software # chmod + oracle_software.sh # sh +x oracle_software.sh # Steup 2 Confiture oracle listener&dbca # chmod + listener_dbca.sh # sh -x listener_dbca.sh export PATH=$PATH #Source function library. . /etc/init.d/functions #Require root to run this script. uid=`id | cut -d\( -f1 | cut -d= -f2` if [ $uid -ne 0 ];then action "Please run this script as root." /bin/false exit 1 fi ##set oracle password ORACLE_OS_PWD= if [ "$ORACLE_OS_PWD" = "" ]; then ORACLE_OS_PWD="Odbinstall" fi ###set firewalld & optimize the os system & set selinux echo "################# Optimize system parameters ##########################" firewall-cmd --permanent --zone=public --add-port=1521/tcp && firewall-cmd --reload if [ `getenforce` == "Enforcing" ];then setenforce 0 sed -i "s@SELINUX=enforcing@SELINUX=disabled@g" /etc/selinux/config elif [ `getenforce` == "Permissive" ];then sed -i "s@SELINUX=enforcing@SELINUX=disabled@g" /etc/selinux/config else continue fi echo "================更改成中文字符集=================" \cp /etc/locale.conf /etc/locale.conf.$(date +%F) cat >>/etc/locale.conf<<EOF LANG="zh_CN.UTF-8" #LANG="en_US.UTF-8" EOF source /etc/locale.conf grep LANG /etc/locale.conf action "更改字符集zh_CN.UTF-8完成" /bin/true echo "=================================================" echo "" sleep 2 ###set the ip in hosts echo "############################ Ip&Hosts Configuration #######################################" hostname=`hostname` ip=`ip a|grep 'inet '|grep -v '127.0.0.1'|awk '{print $2}'|awk -F '/' '{print $1}'` for i in ${ip} do A=`grep "${i}" /etc/hosts` if [ ! -n "${A}" ];then echo "${i} ${hostname}" >> /etc/hosts else break fi done ###create group&user echo "############################ Create Group&User #######################################" ora_user=oracle ora_group=('oinstall' 'dba' 'oper') for i in ${ora_group[@]} do B=`grep '${i}' /etc/group` if [ ! -n ${B} ];then groupdel ${i} && groupadd ${i} else groupadd ${i} fi done C=`grep 'oracle' /etc/passwd` if [ ! -n ${C} ];then userdel -r ${ora_user} && useradd -u 501 -g ${ora_group[0]} -G ${ora_group[1]},${ora_group[2]} ${ora_user} else useradd -u 501 -g ${ora_group[0]} -G ${ora_group[1]},${ora_group[2]} ${ora_user} fi echo "${ORACLE_OS_PWD}" | passwd --stdin ${ora_user} ###create directory and grant priv echo "############################ Create DIR & set privileges & set OracleSid ##################" echo "############################ Create OracleBaseDi #######################################" echo "############################ Create OracleHomeDir #######################################" count=0 while [ $count -lt 3 ] do read -p "Please input the ORACLE_SID(e.g:orcl):" S1 read -p "Please input the ORACLE_SID again(e.g:orcl):" S2 if [ "${S1}" == "${S2}" ];then export ORACLE_SID=${S1} break else echo "You input ORACLE_SID not same." count=$[${count}+1] fi done count=0 while [ $count -lt 3 ] do read -p "Please input the ORACLE_BASE(e.g:/u01/oracle):" S1 read -p "Please input the ORACLE_BASE again(e.g:/u01/oracle):" S2 if [ "${S1}" == "${S2}" ];then export ORACLE_BASE=${S1} break else echo "You input ORACLE_BASE not same." count=$[${count}+1] fi done count=0 while [ $count -lt 3 ] do read -p "Please input the ORACLE_HOME(e.g:/u01/oracle/product/12c/dbhome_1):" S1 read -p "Please input the ORACLE_HOME again(e.g:/u01/oracle/product/12c/dbhome_1):" S2 if [ "${S1}" == "${S2}" ];then export ORACLE_HOME=${S1} break else echo "You input ORACLE_HOME not same." count=$[${count}+1] fi done if [ ! -d ${ORACLE_HOME} ];then mkdir -p ${ORACLE_HOME} else continue fi if [ ! -d ${ORACLE_BASE}/data ];then mkdir -p ${ORACLE_BASE}/data else continue fi if [ ! -d ${ORACLE_BASE}/recovery ];then mkdir -p ${ORACLE_BASE}/recovery else continue fi ora_dir=`echo ${ORACLE_BASE}|awk -F '/' '{print $2}'` ###install require packages echo "############################ Installation dependency #######################################" yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel \ compat-libstdc++-33 compat-libstdc++-33*.devel elfutils-libelf elfutils-libelf-devel gcc gcc-c++ \ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel \ libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 \ libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686 zip unzip tree ###set the sysctl,limits and profile echo "############################ Configure environment variables #######################################" D=`grep 'fs.aio-max-nr' /etc/sysctl.conf` if [ ! -n "${D}" ];then cat << EOF >> /etc/sysctl.conf kernel.shmmax = 68719476736 kernel.shmmni = 4096 kernel.shmall = 16777216 kernel.sem = 1010 129280 1010 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 4194304 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 fs.aio-max-nr = 1048576 fs.file-max = 6815744 EOF else continue fi E=`grep 'oracle' /etc/security/limits.conf` if [ ! -n "${E}" ];then cat << EOF >> /etc/security/limits.conf oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 EOF else continue fi F=`grep 'ORACLE_SID' /home/${ora_user}/.bash_profile` if [ ! -n "${F}" ];then cat << EOF >> /home/${ora_user}/.bash_profile export ORACLE_SID=${ORACLE_SID} export ORACLE_BASE=${ORACLE_BASE} export ORACLE_HOME=${ORACLE_HOME} export PATH=\$PATH:\$ORACLE_HOME/bin EOF else continue fi G=`grep 'oracle' /etc/profile` if [ ! -n "${G}" ];then cat << EOF >> /etc/profile if [ \$USER = "oracle" ];then if [ \$SHELL = "/bin/ksh" ];then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi else continue fi EOF else continue fi ###unzip the install package and set response file echo "############################ unzip the install package #######################################" count=0 while [ $count -lt 3 ] do read -p "Please input the zip file location(e.g:/opt/linuxamd64_12102_database_1of2.zip):" zfileone if [ ! -f ${zfileone} ];then echo "You input location not found zip file." count=$[${count}+1] else export zfileone=${zfileone} break fi done unzip ${zfileone} -d /${ora_dir} count=0 while [ $count -lt 3 ] do read -p "Please input the zip file location(e.g:/opt/linuxamd64_12102_database_2of2.zip):" zfiltwo if [ ! -f ${zfiltwo} ];then echo "You input location not found zip file." count=$[${count}+1] else export zfiltwo=${zfiltwo} break fi done unzip ${zfiltwo} -d /${ora_dir} && chown -R ${ora_user}:${ora_group[0]} /${ora_dir} && chmod -R 775 /${ora_dir} ###set Oracle SysPassword echo "############################ set SysPassword #######################################" count=0 while [ $count -lt 3 ] do read -p "Please input the SYSPASSWORD(e.g:orcl20200202):" S1 read -p "Please input the SYSPASSWORD again(orcl20200202):" S2 if [ "${S1}" == "${S2}" ];then export SYSPASSWORD=${S1} break else echo "You input SYSPASSWORD not same." count=$[${count}+1] fi done ###set Response File echo "############################ set ResponseFile #######################################" free_m=`free -m | grep 'Mem:'|awk '{print $2}'` #db_response_file=`find / -type f -name db_install.rsp` db_response_file=`find /${ora_dir} -type f -name db_install.rsp` data_dir=${ORACLE_BASE}/data recovery_dir=${ORACLE_BASE}/recovery cd `find / -type f -name db_install.rsp | sed -n 's:/[^/]*$::p'` && cd ../ install_dir=`pwd` sed -i "s!oracle.install.option=!oracle.install.option=INSTALL_DB_SWONLY!g" ${db_response_file} sed -i "s!ORACLE_HOSTNAME=!ORACLE_HOSTNAME=${hostname}!g" ${db_response_file} sed -i "s!UNIX_GROUP_NAME=!UNIX_GROUP_NAME=${ora_group[0]}!g" ${db_response_file} sed -i "s!INVENTORY_LOCATION=!INVENTORY_LOCATION=${ORACLE_BASE}/oraInventory!g" ${db_response_file} sed -i "s!SELECTED_LANGUAGES=en!SELECTED_LANGUAGES=en,zh_CN!g" ${db_response_file} sed -i "s!ORACLE_HOME=!ORACLE_HOME=${ORACLE_HOME}!g" ${db_response_file} sed -i "s!ORACLE_BASE=!ORACLE_BASE=${ORACLE_BASE}!g" ${db_response_file} sed -i "s!oracle.install.db.InstallEdition=!oracle.install.db.InstallEdition=EE!g" ${db_response_file} sed -i "s!oracle.install.db.DBA_GROUP=!oracle.install.db.DBA_GROUP=${ora_group[1]}!g" ${db_response_file} sed -i "s!oracle.install.db.OPER_GROUP=!oracle.install.db.OPER_GROUP=${ora_group[2]}!g" ${db_response_file} sed -i "s!oracle.install.db.BACKUPDBA_GROUP=!oracle.install.db.BACKUPDBA_GROUP=${ora_group[1]}!g" ${db_response_file} sed -i "s!oracle.install.db.DGDBA_GROUP=!oracle.install.db.DGDBA_GROUP=${ora_group[1]}!g" ${db_response_file} sed -i "s!oracle.install.db.KMDBA_GROUP=!oracle.install.db.KMDBA_GROUP=${ora_group[1]}!g" ${db_response_file} sed -i "s!oracle.install.db.config.starterdb.type=!oracle.install.db.config.starterdb.type=GENERAL_PURPOSE!g" ${db_response_file} sed -i "s!oracle.install.db.config.starterdb.globalDBName=!oracle.install.db.config.starterdb.globalDBName=${ORACLE_SID}!g" ${db_response_file} sed -i "s!oracle.install.db.config.starterdb.SID=!oracle.install.db.config.starterdb.SID=${ORACLE_SID}!g" ${db_response_file} sed -i "s!oracle.install.db.config.starterdb.characterSet=!oracle.install.db.config.starterdb.characterSet=AL32UTF8!g" ${db_response_file} sed -i "s!oracle.install.db.config.starterdb.memoryLimit=!oracle.install.db.config.starterdb.memoryLimit=$[free_m*8/10]!g" ${db_response_file} sed -i "s!oracle.install.db.config.starterdb.password.ALL=!oracle.install.db.config.starterdb.password.ALL=${SYSPASSWORD}!g" ${db_response_file} sed -i "s!oracle.install.db.config.starterdb.storageType=!oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE!g" ${db_response_file} sed -i "s!oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=!oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=${data_dir}!g" ${db_response_file} sed -i "s!oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=!oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=${recovery_dir}!g" ${db_response_file} sed -i "s!oracle.installer.autoupdates.option=!oracle.installer.autoupdates.option=SKIP_UPDATES!g" ${db_response_file} sed -i "s/"^SECURITY_UPDATES_VIA_MYORACLESUPPORT=.*"/SECURITY_UPDATES_VIA_MYORACLESUPPORT=false/g" ${db_response_file} sed -i "s/"^DECLINE_SECURITY_UPDATES=.*"/DECLINE_SECURITY_UPDATES=true/g" ${db_response_file} ###starting to install oraclesoftware echo "############################ Oracle Installing #######################################" su - oracle -c "${install_dir}/runInstaller -silent -ignoreDiskWarning -ignoreSysPrereqs -ignorePrereq -responseFile ${db_response_file}" echo "####################### 安裝完成 請記錄數據庫信息 ##############################" echo "##### oracle用戶系統登陸密碼: #####" echo -e "\e[31;47;5m $ORACLE_OS_PWD \e[0m" echo "##### 數據庫實例名: #####" echo -e "\e[30;47;5m $ORACLE_SID \e[0m" echo "##### 數據庫install.db.starterdb密碼: #####" echo -e "\e[31;47;5m $SYSPASSWORD \e[0m"
監聽與數據庫實例自動安裝部署腳本:c++
[root@~]# cat listener_dbca.sh #!/bin/bash #################### Steup 2 Confiture oracle listener&dbca #################### #script_name: listener_dbca.sh #Author: Danrtsey #mail:mydefiniteaim@126.com #auto_install_oracle12c version=12.1.0.2 # attentions ######################################## # 1.according to the different environment to set the processes && sessions value # alter system set processes=500 scope=spfile; # alter system set sessions=555 scope=spfile; # 2.ignore these warnings # /u01/database/response/netca.rsp:LINE30: [GENERAL]: command not found # /u01/database/response/netca.rsp:LINE62: [oracle.net.ca]: command not found ######################################## export PATH=$PATH . /etc/init.d/functions echo "############################ set oracle schema sysPassword #######################################" count=0 while [ $count -lt 3 ] do read -p "Please input the SYSPASSWORD(e.g:orcl20200202):" S1 read -p "Please input the SYSPASSWORD again(e.g:orcl20200202):" S2 if [ "${S1}" == "${S2}" ];then export SYSPASSWORD=${S1} break else echo "You input SYSPASSWORD not same." count=$[${count}+1] fi done echo "############################ set oracle app_user #######################################" count=0 while [ $count -lt 3 ] do read -p "Please input the USER_NAME(e.g:orcl):" S1 read -p "Please input the USER_NAME again(e.g:orcl):" S2 if [ "${S1}" == "${S2}" ];then export USER_NAME=${S1} break else echo "You input USER_NAME not same." count=$[${count}+1] fi done echo "############################ set oracle app_passwd #######################################" count=0 while [ $count -lt 3 ] do read -p "Please input the USER_PASSWD(e.g:orcl2020):" S1 read -p "Please input the USER_PASSWD again(e.g:orcl202):" S2 if [ "${S1}" == "${S2}" ];then export USER_PASSWD=${S1} break else echo "You input USER_PASSWD not same." count=$[${count}+1] fi done echo "############################ set app_user tmp_dbf #######################################" count=0 while [ $count -lt 3 ] do read -p "Please input the TMP_DBF(e.g:orcl_temp):" S1 read -p "Please input the TMP_DBF again(e.g:orcl_temp):" S2 if [ "${S1}" == "${S2}" ];then export TMP_DBF=${S1} break else echo "You input TMP_DBF not same." count=$[${count}+1] fi done echo "############################ set app_user data_dbf #######################################" count=0 while [ $count -lt 3 ] do read -p "Please input the DATA_DBF(e.g:orcl_data):" S1 read -p "Please input the DATA_DBF again(e.g:orcl_data):" S2 if [ "${S1}" == "${S2}" ];then export DATA_DBF=${S1} break else echo "You input DATA_DBF not same." count=$[${count}+1] fi done ORACLE_SID=`su - oracle -c 'source ~/.bash_profile && echo $ORACLE_SID'` ORACLE_BASE=`su - oracle -c 'source ~/.bash_profile && echo $ORACLE_BASE'` ORACLE_HOME=`su - oracle -c 'source ~/.bash_profile && echo $ORACLE_HOME'` ora_dir=`echo ${ORACLE_BASE}|awk -F '/' '{print $2}'` DB_SHUT=${ORACLE_HOME}/bin/dbshut DB_START=${ORACLE_HOME}/bin/dbstart DATA_DIR=${ORACLE_BASE}/data BACKUP_DIR=${ORACLE_BASE}/backup [ ! -f $BACKUP_DIR ] && mkdir $BACKUP_DIR CDB_SQL=" sqlplus / as sysdba << EOF create temporary tablespace $TMP_DBF tempfile '$DATA_DIR/$ORACLE_SID/${TMP_DBF}.dbf' size 64m autoextend on next 64m maxsize unlimited extent management local; create tablespace $DATA_DBF logging datafile '$DATA_DIR/$ORACLE_SID/${DATA_DBF}.dbf' size 64m autoextend on next 64m maxsize unlimited extent management local; create user $USER_NAME identified by $USER_PASSWD default tablespace $DATA_DBF temporary tablespace $TMP_DBF; grant connect,resource to $USER_NAME; grant create view to $USER_NAME; grant create public synonym to $USER_NAME; grant drop public synonym to $USER_NAME; grant unlimited tablespace to $USER_NAME; create or replace directory dir_dump as '$BACKUP_DIR'; grant read,write on directory dir_dump to $USER_NAME; ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; alter system set processes=500 scope=spfile; alter system set sessions=555 scope=spfile; exit EOF " temp=`ls ${ORACLE_BASE}|grep 'data'` if [ ! -n ${temp} ];then mkdir ${ORACLE_BASE}/data export DATAFILE=${ORACLE_BASE}/data else export DATAFILE=${ORACLE_BASE}/data fi temp=`ls ${ORACLE_BASE}|grep 'area'` if [ ! -n ${temp} ];then mkdir ${ORACLE_BASE}/flash_recovery_area export RECOVERY=${ORACLE_BASE}/flash_recovery_area else export RECOVERY=${ORACLE_BASE}/flash_recovery_area fi #NETCA=`find / -type f -name netca.rsp` NETCA=`find /${ora_dir} -type f -name netca.rsp` sed -i "s!INSTALL_TYPE=""typical""!INSTALL_TYPE=""custom""!g" ${NETCA} MEM=`free -m|grep 'Mem:'|awk '{print $2}'` TOTAL=$[MEM*8/10] ###set listener&tnsnames echo "############################ Oracle listener&dbca #######################################" su - oracle << EOF source ~/.bash_profile ${ORACLE_HOME}/bin/netca -silent -responsefile ${NETCA} dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname ${ORACLE_SID} -sid ${ORACLE_SID} -sysPassword ${SYSPASSWORD} -systemPassword ${SYSPASSWORD} -responseFile NO_VALUE -datafileDestination ${DATAFILE} -redoLogFileSize 1000 -recoveryAreaDestination ${RECOVERY} -storageType FS -characterSet AL32UTF8 -nationalCharacterSet UTF8 -sampleSchema false -memoryPercentage 80 -totalMemory $TOTAL -databaseType OLTP -emConfiguration NONE EOF sed -i "s!${ORACLE_SID}:${ORACLE_HOME}:N!${ORACLE_SID}:${ORACLE_HOME}:Y!g" /etc/oratab AUTO_START_CONFIG=`cat /etc/oratab|grep ${ORACLE_SID} |awk -F ':' '{print $NF}'` AUTO_START_CONFIG_expected='Y' if [ ${AUTO_START_CONFIG} = ${AUTO_START_CONFIG_expected} ];then echo "AUTO_START_CONFIG successed!" else echo "AUTO_START_CONFIG failed!" exit 1 fi #set oracle to use dbstart & dbshut to control the dbsoftware sed -i "s/ORACLE_HOME_LISTNER=\$1/ORACLE_HOME_LISTNER=\$ORACLE_HOME/g" ${DB_SHUT} sed -i "s/ORACLE_HOME_LISTNER=\$1/ORACLE_HOME_LISTNER=\$ORACLE_HOME/g" ${DB_START} #set oracle start&stop sys_service echo "############################ Oracle sys_service #######################################" su - oracle -c "touch /home/oracle/oracle" cat >/etc/init.d/oracle <<EOF #!/bin/sh # chkconfig: 35 80 10 # description: Oracle auto start-stop script. # Set ORACLE_HOME to be equivalent to the \$ORACLE_HOME # Oracle database in ORACLE_HOME. LOGFILE=/home/oracle/oracle ORACLE_HOME=$ORACLE_HOME ORACLE_OWNER=oracle LOCK_FILE=/var/lock/subsys/oracle if [ ! -f $ORACLE_HOME/bin/dbstart ] then echo "Oracle startup: cannot start" exit fi case "\$1" in 'start') # Start the Oracle databases: echo "Starting Oracle Databases ... " echo "-------------------------------------------------" >> \${LOGFILE} date +" %T %a %D : Starting Oracle Databases as part of system up." >> \${LOGFILE} echo "-------------------------------------------------" >> \${LOGFILE} su - \$ORACLE_OWNER -c "\$ORACLE_HOME/bin/dbstart" >> \${LOGFILE} echo "Done" # Start the Listener: echo "Starting Oracle Listeners ... " echo "-------------------------------------------------" >> \${LOGFILE} date +" %T %a %D : Starting Oracle Listeners as part of system up." >> \${LOGFILE} echo "-------------------------------------------------" >> \${LOGFILE} su - \$ORACLE_OWNER -c "\$ORACLE_HOME/bin/lsnrctl start" >> \${LOGFILE} echo "Done." echo "-------------------------------------------------" >> \${LOGFILE} date +" %T %a %D : Finished." >> \${LOGFILE} echo "-------------------------------------------------" >> \${LOGFILE} touch \$LOCK_FILE ;; 'stop') # Stop the Oracle Listener: echo "Stoping Oracle Listeners ... " echo "-------------------------------------------------" >> \${LOGFILE} date +" %T %a %D : Stoping Oracle Listener as part of system down." >> \${LOGFILE} echo "-------------------------------------------------" >> \${LOGFILE} su - \$ORACLE_OWNER -c "\$ORACLE_HOME/bin/lsnrctl stop" >> \${LOGFILE} echo "Done." rm -f \$LOCK_FILE # Stop the Oracle Database: echo "Stoping Oracle Databases ... " echo "-------------------------------------------------" >> \${LOGFILE} date +" %T %a %D : Stoping Oracle Databases as part of system down." >> \${LOGFILE} echo "-------------------------------------------------" >> \${LOGFILE} su - \$ORACLE_OWNER -c "\$ORACLE_HOME/bin/dbshut" >> \${LOGFILE} echo "Done." echo "" echo "-------------------------------------------------" >> \${LOGFILE} date +" %T %a %D : Finished." >> \${LOGFILE} echo "-------------------------------------------------" >> \${LOGFILE} ;; 'restart') \$0 stop \$0 start ;; esac EOF #set privileges chmod +x /etc/init.d/oracle chkconfig oracle on # check oracle service service oracle start if [ $? -ne 0 ];then action "oracle service start failed." /bin/false exit 2 fi service oracle stop if [ $? -ne 0 ];then action "oracle service stop failed." /bin/false exit 3 fi service oracle restart if [ $? -ne 0 ];then action "oracle service restart failed." /bin/false exit 4 fi #set create app_user & app_passwd echo "############################ Oracle sys_service #######################################" su - oracle -c "${CDB_SQL}" if [ $? -eq 0 ];then echo -e "\e[30 CDB_SQL execute successed & restart the oracle_service \e[0m" service oracle restart else action "oracle create app_user && app_passwd failed." /bin/false exit 5 fi echo "####################### 安裝完成 請記錄數據庫信息 ##############################" echo "##### 數據庫實例名: #####" echo -e "\e[30;47;5m $ORACLE_SID \e[0m" echo "##### 數據庫實例的sys管理用戶密碼: #####" echo -e "\e[31;47;5m $SYSPASSWORD \e[0m" echo "##### 數據庫應用鏈接用戶名: #####" echo -e "\e[30;47;5m $USER_NAME \e[0m" echo "##### 數據庫應用鏈接用戶名對應的密碼: #####" echo -e "\e[31;47;5m $USER_PASSWD \e[0m"