注:本腳本只適用于新系統用于安裝ORACLE的初始化,請不要用于已存在ORACLE資料庫的系統,如有問題,后果自負,
###########################################################################################
## Author:lucifer
## 本檔案針對 Red Hat Enterprise Linux Server release 6.x 7.x 版本 進行 11GR2 單實體 部署的配置操作
## ORACLE VERSION:ORACLE 11204
###########################################################################################
##需要提前配置Public IP
##需要提前創建 /soft 目錄,并提前將安裝包上傳到目錄中
##運行:sh /soft/11204單機一鍵部署.sh |tee -a /soft/11204_install.log 可以追加日志
##需要創建 /soft 目錄資料上傳到目錄中
## 0. 引數提前配置
## 1. 環境資訊檢查
## 2. 節點資訊確認
## 3. 關閉防火墻
## 4. 關閉LINUX作業系統的SELINUX功能
## 5. 配置hosts檔案
## 6. 安裝必要的軟體包
## 7. 關閉大頁
## 8. 內核引數調整
## 9. 用戶目錄及Limit環境配置
## 10. Edit responseFile of db_install.rsp
## 11. 靜默安裝oracle軟體
## 12. dbca靜默建庫
## 13. 啟動監聽
################################### 已驗證 Linux 發行版 #############################
#rhel-server-6.8-x86_64
#rhel-server-6.9-x86_64
#CentOs-7.8-x86_64
#CentOS Linux release 7.6.1810 (Core)
#Red Hat Enterprise Linux Server release 7.9 (Maipo)
#ORACLE LINUX 6.8
################################### 請根據自己實際情況修改變數 ########################
一、主機配置
1、安裝rhel-server-6.8-x86_64系統(最小化安裝)
2、配置publicIP
[root@t11g ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
[root@t11g ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=08:00:27:47:B9:E2
TYPE=Ethernet
UUID=037f6cb7-441b-4244-a3b8-7f7148e1ccbe
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.56.100
NETMASK=25.255.255.0
[root@t11g ~]# service network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: Determining if ip address 192.168.56.100 is already in use for device eth0...
[ OK ]
3、創建安裝包目錄/soft
mkdir /soft
二、引數配置
################################### 請根據自己實際情況修改變數 ########################
## 0. 引數提前配置
###################################################################################
## 1. IP規劃
## public IP,根據實際需要修改
PublicIP=192.168.1.120
## 2. 主機名,根據實際需要修改
HostName=g11g
## 3. 資料庫實體名稱,根據實際需要修改
ORACLE_SIDTemp=orcl
## 4. 密碼設定
## Oracle用戶密碼
oraclePasswd=oracle
###################################################################################
## 以下引數如無特殊需求,可以不改
###################################################################################
## 5. 字符集
##資料庫字符集
CharacterSet=AL32UTF8
##國家字符集
NationalCharacterSet=AL16UTF16
## 7. 安裝軟體存放目錄
Soft=/soft
# oracle 根目錄
OracleHomeTemp=/u01
# 安裝grid時候的:ORAINVENTORY
ORAINVENTORYTemp=/u01/app/oraInventory
## 安裝database時候的:Oracle Base
ORACLE_BASETemp=/u01/app/oracle
# 安裝database時候的:Oracle home
ORACLE_HOMETemp=/u01/app/oracle/product/11.2.0/db
# 資料檔案位置
ORADATATemp=/oradata
## 8. 安裝檔案名稱
#ORACLE安裝包名稱
OracleSoft1=p13390677_112040_Linux-x86-64_1of7.zip
OracleSoft2=p13390677_112040_Linux-x86-64_2of7.zip
#通過變數給字體加顏色
#這里定義一個c1()函式,后面如果想改變字體顏色直接呼叫即可
c1() {
RED_COLOR='\E[1;31m'
GREEN_COLOR='\E[1;32m'
YELLOW_COLOR='\E[1;33m'
BLUE_COLOR='\E[1;34m'
PINK_COLOR='\E[1;35m'
WHITE_BLUE='\E[47;34m'
DOWN_BLUE='\E[4;36m'
FLASH_RED='\E[5;31m'
RES='\E[0m'
#這里判斷傳入的引數是否不等于2個,如果不等于2個就提示并退出
if [ $# -ne 2 ]; then
echo "Usage $0 content {red|yellow|blue|green|pink|wb|db|fr}"
exit
fi
case "$2" in
red | RED)
echo -e "${RED_COLOR}$1${RES}"
;;
yellow | YELLOW)
echo -e "${YELLOW_COLOR}$1${RES}"
;;
green | GREEN)
echo -e "${GREEN_COLOR}$1${RES}"
;;
blue | BLUE)
echo -e "${BLUE_COLOR}$1${RES}"
;;
pink | PINK)
echo -e "${PINK_COLOR}$1${RES}"
;;
wb | wb)
echo -e "${WHITE_BLUE}$1${RES}"
;;
db | db)
echo -e "${DOWN_BLUE}$1${RES}"
;;
fr | fr)
echo -e "${FLASH_RED}$1${RES}"
;;
*)
echo -e "請輸入指定的顏色代碼:{red|yellow|blue|green|pink|wb|db|fr}"
;;
esac
}
##示例
##c1 "程式安裝報錯!" red
##c1 "程式安裝成功!" green
##c1 "輸出相關注釋資訊" blue
二、環境檢查
###################################################################################
## 1. 環境資訊檢查
###################################################################################
# 請選擇你的系統版本(RedHat6或者Redhat7)
read -p "系統版本為:6 or 7:" LinuxVer
if [ ${LinuxVer} -eq 6 ]; then
c1 "您選擇的系統是Linux發行版:6" blue
elif [ ${LinuxVer} -eq 7 ]; then
c1 "您選擇的系統是Linux發行版:7" blue
else
c1 "輸入錯誤,程式將推出" red
exit
fi
echo
# 檢查當前用戶是否為root權限
if [ "$(id -u)" -eq 0 ]; then
c1 "當前用戶是root用戶,將繼續安裝!" wb
else
c1 "非root用戶!" red
exit 0
fi
echo
echo "##################################################################################"
echo
c1 "1. 環境資訊檢查:" red
echo
echo "##################################################################################"
echo
c1 "OS Release Info:" blue
echo
more /etc/system-release
echo
c1 "OS Kernel Info:" blue
uname -r
echo
cpu=$(grep "model name" /proc/cpuinfo | wc -l)
c1 "Cpu Info: " blue
echo
echo $cpu
echo
MemTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
memory=$(expr $MemTotal / 1048576)
##分配給ORACLE的記憶體,1/3
MemOracle=$(expr $MemTotal / 3072)
c1 "Memory Info: " blue
echo
echo $memory G
echo
SwapTotal=$(grep SwapTotal /proc/meminfo | awk '{print $2}')
swap=$(expr $SwapTotal / 1048576)
c1 "Swap Info: " blue
echo
echo $swap G
echo
c1 "ZONE:" blue
echo
if [ ${LinuxVer} -eq 6 ]; then
more /etc/sysconfig/clock
else
timedatectl | grep zone
fi
echo
c1 "Tmp Info:" blue
echo
df -h /tmp
echo
c1 "Disk Info:" blue
echo
df -h
echo
c1 "Network Info:" blue
echo
ip addr
echo
c1 "Transparent HugePages:" blue
echo
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag
echo
#vm.min_free_kbytes,記憶體<=32G可以忽略設定,記憶體足夠大時建議設定為512MB
c1 "vm.min_free_kbytes:" blue
echo
echo "vm.min_free_kbytes = $(cat /proc/sys/vm/min_free_kbytes) KB"
echo
c1 "vm.swappiness:" blue
echo
echo "vm.swappiness = $(cat /proc/sys/vm/swappiness)"
echo
c1 "Selinux:" blue
echo
grep ^SELINUX= /etc/selinux/config
echo
c1 "Firewalld:" blue
echo
if [ ${LinuxVer} -eq 6 ]; then
service iptables status
echo
c1 "avahi-daemon:" blue
echo
service avahi-daemon status
else
systemctl status firewalld | grep Active
echo
c1 "avahi-daemon:" blue
echo
systemctl status avahi-daemon
fi
echo
echo
sleep 1
# 輸出提示,是否已設定靜態公網IP并掛載光驅
echo
read -p "請確認您已經將PublicIP設定為靜態公網IP并已掛載Linux安裝鏡像.按Enter鍵開始,Ctrl+C退出"
echo
三、安裝前配置
###################################################################################
## 2. 防火墻關閉
###################################################################################
echo "###################################################################################"
echo
c1 "2. 防火墻關閉:" red
echo
echo "###################################################################################"
echo
if [ ${LinuxVer} -eq 6 ]; then
service iptables stop
chkconfig iptables off
c1 "Iptables Check:" blue
echo
service iptables status
else
systemctl stop firewalld
systemctl disable firewalld
systemctl stop avahi-daemon >/dev/null 2>&1
systemctl disable avahi-daemon >/dev/null 2>&1
c1 "Firewalld Check:" blue
echo
systemctl status firewalld | grep Active
echo
c1 "avahi-daemon Check:" blue
echo
systemctl status avahi-daemon
fi
###################################################################################
## 3. 關閉LINUX作業系統的SELINUX功能
###################################################################################
echo
echo "###################################################################################"
echo
c1 "3. 關閉LINUX作業系統的SELINUX功能 禁用ZEROCONF:" red
echo
echo "###################################################################################"
echo
##禁用SELINUX
SELINUX=$(grep ^SELINUX= /etc/selinux/config)
if [ $SELINUX != "SELINUX=disabled" ]; then
cp /etc/selinux/config /etc/selinux/config.bak
sed -i 's/^SELINUX=/#SELINUX=/g' /etc/selinux/config
sed -i '$a SELINUX=disabled' /etc/selinux/config
else
echo "SELINUX is already disabled"
fi
c1 "SELINUX Check:" blue
grep ^SELINUX= /etc/selinux/config
##禁用ZEROCONF
echo
NOZEROCONF=$(grep ^NOZEROCONF= /etc/sysconfig/network)
if [[ $NOZEROCONF != "" ]]; then
cp /etc/sysconfig/network /etc/sysconfig/network.bak
sed -i 's/^NOZEROCONF=/#NOZEROCONF=/g' /etc/sysconfig/network
sed -i '$a NOZEROCONF=yes' /etc/sysconfig/network
else
sed -i '$a NOZEROCONF=yes' /etc/sysconfig/network
fi
echo
c1 "NOZEROCONF Check:" blue
echo
grep ^NOZEROCONF= /etc/sysconfig/network
###################################################################################
## 4. 配置hosts檔案和主機名
###################################################################################
echo "###################################################################################"
echo
c1 "4. 配置hosts檔案和主機名:" red
echo
echo "###################################################################################"
HOSTNAME=$(grep "HOSTNAME" /etc/sysconfig/network)
if [ ${LinuxVer} -eq 6 ]; then
if [[ $HOSTNAME != "" ]]; then
echo "HOSTNAME is already set"
else
hostname ${HostName}
sed -i "/HOSTNAME=/c HOSTNAME=${HostName}" /etc/sysconfig/network
fi
else
hostnamectl set-hostname $HostName
fi
echo
c1 "HOSTNAME Check:" blue
echo
hostname
echo
cat <<EOF >/etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
$PublicIP $HostName
EOF
echo
c1 "Hosts Check:" blue
echo
cat /etc/hosts
echo
###################################################################################
## 5. 安裝必要的軟體包
###################################################################################
echo "###################################################################################"
echo
c1 "5. 安裝必要的軟體包:" red
echo
echo "###################################################################################"
echo
mount /dev/cdrom /media/ >/dev/null 2>&1
rm -rf /etc/yum.repos.d/*
cat >>/etc/yum.repos.d/local.repo <<"EOF"
[base]
name=base
baseurl=file:///media
enabled=1
gpgcheck=0
EOF
yum clean all >/dev/null 2>&1 #清理本地快取
yum clean plugins >/dev/null 2>&1 #清理插件快取
c1 "正在安裝依賴包......" fr
echo
yum install -y binutils compat-libcap1 elfutils-libelf-devel compat-libstdc++* gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make sysstat readline* unzip device-mapper* smartmontools openssh-clients --skip-broken >/dev/null 2>&1
echo
c1 "RPM Check:" blue
echo
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils compat-libcap1 elfutils-libelf-devel compat-libstdc++ gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make sysstat readline
echo
c1 "依賴包安裝完成" blue
echo
###################################################################################
## 6. Disable HugePage
###################################################################################
echo "################################################################################"
echo
c1 "6. Disable Transparent HugePages:" blue
echo
echo "################################################################################"
echo
if [ ${LinuxVer} -eq 6 ]; then
cat >>/etc/rc.d/rc.local <<EOF
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
EOF
echo
else
sed -i 's/quiet/quiet transparent_hugepage=never/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg >/dev/null 2>&1
fi
#臨時生效:
echo never >/sys/kernel/mm/transparent_hugepage/enabled
echo never >/sys/kernel/mm/transparent_hugepage/defrag
echo
c1 "Transparent HugePages Check:" blue
echo
cat /sys/kernel/mm/transparent_hugepage/enabled
echo
###################################################################################
## 7. 內核引數調整
###################################################################################
echo "#################################################################################"
echo
c1 "7. 內核引數調整:" red
echo
echo "#################################################################################"
cp /etc/sysctl.conf /etc/sysctl.conf.bak
cat >/etc/sysctl.conf <<EOF
##################### Sysctl Add #####################
kernel.shmall = 2097152
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmax = 4294967295
kernel.shmmni = 4096
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
##################### Sysctl End #####################
EOF
echo
c1 "SYSCTL Check:" blue
echo
sysctl -p
echo
###################################################################################
## 8. 用戶、目錄及Limit環境配置
###################################################################################
echo "###################################################################################"
echo
c1 "8. 用戶、目錄及Limit環境配置:" red
echo
echo "###################################################################################"
echo
c1 "8.1 創建用戶組和用戶:" blue
echo
OINSTALL=$(grep "oinstall" /etc/group)
DBA=$(grep "dba" /etc/group)
OPER=$(grep "oper" /etc/group)
ORACLE=$(grep "oracle" /etc/passwd)
if [[ $OINSTALL != "" ]]; then
echo "GROUP OINSTALL is already create"
else
groupadd oinstall
fi
echo
if [[ $DBA != "" ]]; then
echo "GROUP DBA is already create"
else
groupadd dba
fi
echo
if [[ $OPER != "" ]]; then
echo "GROUP OPER is already create"
else
groupadd oper
fi
echo
if [[ $ORACLE != "" ]]; then
echo "USER ORACLE is already create"
else
useradd -g oinstall -G dba,oper -u 1000 oracle
echo $oraclePasswd | passwd --stdin oracle
fi
echo
c1 "Users Check:" blue
echo
id oracle
echo
c1 "8.2 創建目錄:" blue
echo $ORAINVENTORYTemp
echo $ORACLE_BASETemp
echo $ORACLE_HOMETemp
echo $ORADATATemp
echo
mkdir -p $ORACLE_BASETemp
mkdir -p $ORACLE_HOMETemp
mkdir -p $ORADATATemp
mkdir -p $ORAINVENTORYTemp
chown -R oracle:oinstall $ORADATATemp
chown -R oracle:oinstall $ORAINVENTORYTemp
chown -R oracle:oinstall $ORACLE_BASETemp
chmod -R 775 $OracleHomeTemp
c1 "8.3 修改會話限制:" blue
echo
cp /etc/security/limits.conf /etc/security/limits.conf.bak
cat >/etc/security/limits.conf <<"EOF"
############### Limits Add ##########################
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
############### Limits End ##########################
EOF
c1 "Limits Check:" blue
echo
grep -v "#" /etc/security/limits.conf
echo
PAM_LIMITS=$(grep "pam_limits.so" /etc/pam.d/login)
if [[ $PAM_LIMITS != "" ]]; then
echo "PAM_LIMITS is already set"
else
cat >>/etc/pam.d/login <<"EOF"
################# Pam_limits Add ####################
session required pam_limits.so
################# Pam_limits End ####################
EOF
fi
echo
c1 "Pam_limits Check:" blue
echo
grep "pam_limits.so" /etc/pam.d/login
echo
c1 "8.4 編輯root用戶環境變數:" blue
echo
ALIAS=$(grep "alias" /etc/profile)
if [[ $ALIAS != "" ]]; then
echo "ROOT PROFILE is already set"
else
cat >>/etc/profile <<"EOF"
################# Root Rrofile Add ############################
if [ $USER = "oracle" ] || [ $USER = "root" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
alias so='su - oracle'
################# Root Rrofile End ############################
EOF
fi
echo
c1 "8.5 編輯oracle用戶環境變數:" blue
echo
ALIAS=$(grep "alias" /home/oracle/.bash_profile)
if [[ $ALIAS != "" ]]; then
echo "ORACLE PROFILE is already set"
else
cat <<EOF >>/home/oracle/.bash_profile
################ Oracle Profile Add #########################
umask 022
export TMP=/tmp
export TMPDIR=\$TMP
export ORACLE_BASE=$ORACLE_BASETemp
export ORACLE_HOME=$ORACLE_HOMETemp
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=$ORACLE_SIDTemp
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias lsnrctl='rlwrap lsnrctl'
alias asmcmd='rlwrap asmcmd'
alias adrci='rlwrap adrci'
alias sas='sqlplus / as sysdba'
alias ggsci='rlwrap ggsci'
alias alert='tail -500f \$ORACLE_BASE/diag/rdbms/$ORACLE_SIDTemp/$ORACLE_SIDTemp/trace/alert_$ORACLE_SIDTemp.log|more'
################ Oracle Profile End #########################
EOF
fi
echo
c1 "Oracle Profile Check:" blue
echo
cat /home/oracle/.bash_profile
echo
sleep 1
read -p "請檢查以上設定是否存在錯誤,如發現錯誤,請修改后重新執行該腳本,如沒有錯誤請按Enter鍵繼續,Ctrl+C退出"
sleep 1
###################################################################################
## 9. 解壓Oracle安裝包
###################################################################################
echo
echo "###################################################################################"
echo
c1 "9. 解壓Oracle安裝包:" red
echo
echo "###################################################################################"
echo
c1 "需要提前上傳的安裝包:" blue
echo
c1 "p13390677_112040_Linux-x86-64_1of7.zip" red
c1 "p13390677_112040_Linux-x86-64_2of7.zip" red
c1 "pdksh-5.2.14-37.el5.x86_64.rpm" red
c1 "rlwrap-0.42.tar.gz" blue
echo
sleep 3
echo
read -p "請確認您已經將ORACLE安裝包上傳至$Soft,上傳后按Enter鍵繼續"
c1 "安裝包正在解壓中,等待時間比較久......" fr
cd $Soft
rpm -e ksh-20120801-33.el6.x86_64 >/dev/null 2>&1
rpm -ivh $Soft/pdksh-5.2.14-37.el5.x86_64.rpm >/dev/null 2>&1
unzip -q $Soft/$OracleSoft1
unzip -q $Soft/$OracleSoft2
tar -zxvf $Soft/rlwrap-0.42.tar.gz -C $Soft >/dev/null 2>&1
cd $Soft/rlwrap-0.42/
./configure >/dev/null 2>&1
make >/dev/null 2>&1
make install >/dev/null 2>&1
c1 "安裝包解壓完成!" blue
echo
四、生成db.rsp靜默檔案
####################################################################################
# 10. Edit ResponseFile Of Db.rsp
####################################################################################
echo "###################################################################################"
echo
c1 "10. Edit ResponseFile Of Db.rsp:" red
echo
echo "###################################################################################"
echo
su - -c "echo 'oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.option=INSTALL_DB_SWONLY' >> ${Soft}/db.rsp"
su - -c "echo 'ORACLE_HOSTNAME='${HostName} >> ${Soft}/db.rsp"
su - -c "echo 'UNIX_GROUP_NAME=oinstall' >> ${Soft}/db.rsp"
su - -c "echo 'INVENTORY_LOCATION='$ORAINVENTORYTemp >> ${Soft}/db.rsp"
su - -c "echo 'SELECTED_LANGUAGES=en' >> ${Soft}/db.rsp"
su - -c "echo 'ORACLE_HOME='${ORACLE_HOMETemp} >> ${Soft}/db.rsp"
su - -c "echo 'ORACLE_BASE='${ORACLE_BASETemp}>> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.InstallEdition=EE' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.EEOptionsSelection=false' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.optionalComponents=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.DBA_GROUP=dba' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.OPER_GROUP=oper' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.CLUSTER_NODES=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.isRACOneInstall=false' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.racOneServiceName=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.type=GENERAL_PURPOSE' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.installExampleSchemas=false' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.enableSecuritySettings=true' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.globalDBName=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.SID=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.characterSet=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.memoryOption=false' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.memoryLimit=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.password.ALL=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.password.SYS=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.password.SYSTEM=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.password.SYSMAN=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.password.DBSNMP=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.control=DB_CONTROL' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.automatedBackup.enable=false' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.automatedBackup.osuid=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.automatedBackup.ospwd=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.storageType=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.asm.diskGroup=' >> ${Soft}/db.rsp"
su - -c "echo 'MYORACLESUPPORT_USERNAME=' >> ${Soft}/db.rsp"
su - -c "echo 'MYORACLESUPPORT_PASSWORD=' >> ${Soft}/db.rsp"
su - -c "echo 'SECURITY_UPDATES_VIA_MYORACLESUPPORT=false' >> ${Soft}/db.rsp"
su - -c "echo 'DECLINE_SECURITY_UPDATES=true' >> ${Soft}/db.rsp"
su - -c "echo 'PROXY_HOST=' >> ${Soft}/db.rsp"
su - -c "echo 'PROXY_PORT=' >> ${Soft}/db.rsp"
su - -c "echo 'PROXY_USER=' >> ${Soft}/db.rsp"
su - -c "echo 'PROXY_PWD=' >> ${Soft}/db.rsp"
su - -c "echo 'PROXY_REALM=' >> ${Soft}/db.rsp"
su - -c "echo 'COLLECTOR_SUPPORTHUB_URL=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.installer.autoupdates.option=SKIP_UPDATES' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.installer.autoupdates.downloadUpdatesLoc=' >> ${Soft}/db.rsp"
su - -c "echo 'AUTOUPDATES_MYORACLESUPPORT_USERNAME=' >> ${Soft}/db.rsp"
su - -c "echo 'AUTOUPDATES_MYORACLESUPPORT_PASSWORD=' >> ${Soft}/db.rsp"
echo
cat ${Soft}/db.rsp
echo
chown -R oracle:oinstall $Soft
echo
五、Oracle軟體靜默安裝
####################################################################################
# 11. 靜默安裝ORACLE軟體
####################################################################################
echo
echo "###################################################################################"
echo
c1 "11. 靜默安裝ORACLE軟體:" red
echo
echo "###################################################################################"
echo
su - oracle -c "${Soft}/database/runInstaller -silent -showProgress -ignoreSysPrereqs -ignorePrereq -responseFile ${Soft}/db.rsp"
echo
c1 "等待Successfully Setup Software.出現時,請按回車鍵繼續" fr
echo
sleep 1
echo
read -p "Oracle Software正在安裝......"
echo
##自動執行root.sh
$ORAINVENTORYTemp/orainstRoot.sh
$ORACLE_HOMETemp/root.sh
##設定sqlplus顯示格式
echo set sqlprompt '&_user.@&_connect_identifier.>' >>$ORACLE_HOMETemp/sqlplus/admin/glogin.sql
echo
sleep 1
read -p "Oracle Software安裝完成!按Enter鍵繼續,Ctrl+C退出"
echo
六、靜默建庫&啟動監聽
####################################################################################
# 12. dbca靜默建庫
####################################################################################
echo "###################################################################################"
echo "12. dbca靜默建庫"
echo
echo
su - oracle -c "dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname $ORACLE_SIDTemp -sid $ORACLE_SIDTemp -sysPassword $oraclePasswd -systemPassword $oraclePasswd -responseFile NO_VALUE -datafileDestination $ORADATATemp -redoLogFileSize 50 -storageType FS -listeners LISTENER -characterSet $CharacterSet -nationalCharacterSet $NationalCharacterSet -sampleSchema true -memoryPercentage 30 -totalMemory $MemOracle -databaseType OLTP -emConfiguration NONE"
echo
echo
####################################################################################
# 13. 啟動監聽
####################################################################################
echo "###################################################################################"
echo "13. 啟動監聽"
echo
echo
sleep 1
echo
read -p "請確認資料庫實體已成功創建,按Enter鍵開始,Ctrl+C退出"
echo
##如果監聽檔案已創建,則啟動監聽,否則靜默創建監聽
if [ -f /$ORACLE_HOMETemp/network/admin/listener.ora ]; then
su - oracle -c "lsnrctl start"
else
su - oracle -c "netca -silent -responsefile ${Soft}/database/response/netca.rsp"
fi
echo
echo
c1 "恭喜您,資料庫已創建成功!" red
echo
七、腳本使用方式
1、touch一個sh腳本,將以上所有腳本按順序放入其中,
2、根據實際情況,修改引數配置部分的IP,主機名,ORACLE_SID,oracle用戶密碼,字符集,
3、掛載磁盤鏡像,
4、切換到root用戶下,執行腳本,根據腳本提示進行操作,
sh 11GR2_auto_install.sh|tee 11GR2_auto_install.log
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/271437.html
標籤:其他
