Oracle 11GR2單機一鍵部署(sh腳本)
注:本腳本只適用于新系統用于安裝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. 參數提前配置 ################################################################################### ## 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
content {red|yellow|blue|green|pink|wb|db|fr}" exit fi case "" in red | RED) echo -e "${RED_COLOR}${RES}" ;; yellow | YELLOW) echo -e "${YELLOW_COLOR}${RES}" ;; green | GREEN) echo -e "${GREEN_COLOR}${RES}" ;; blue | BLUE) echo -e "${BLUE_COLOR}${RES}" ;; pink | PINK) echo -e "${PINK_COLOR}${RES}" ;; wb | wb) echo -e "${WHITE_BLUE}${RES}" ;; db | db) echo -e "${DOWN_BLUE}${RES}" ;; fr | fr) echo -e "${FLASH_RED}${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 }') 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 }') 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 <
四、生成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
Oracle
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。