主頁 > 資料庫 > Oracle 11GR2單機一鍵部署(sh腳本)

Oracle 11GR2單機一鍵部署(sh腳本)

2021-04-02 09:19:44 資料庫

注:本腳本只適用于新系統用于安裝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

標籤:其他

上一篇:MySQL運算子 != 和 <> 以及 = 和 <=> 的區別

下一篇:java.lang.NullPointerException: null

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more