圖文詳解在Oracle Linux 6.9安裝和Oracle 11.2.0.4.0安裝及psu更新檔更新過程,本文操作都在VMware虛拟機上完成。
目錄:
1.作業系統安裝
2.資料庫安裝
3.PSU更新檔更新解除安裝
part1 作業系統安裝
Oracle (Enterprise) Linux 是一個基于 Red Hat Enterprise Linux 源碼建構的 Linux 發行版,由 Oracle 公司打包并免費分發。相較于後者,Oracle 對核心等元件進行了修改,并包含了一些新的特性。下載下傳位址:V860937-01.iso
建立虛拟機,開始安裝orace linux6.9
選擇第一項
跳過檢測
next
選擇安裝時的語言,下一步
下一步
下一步
選擇忽略所有資料
自定義主機名
編輯網絡參數,設定ip等資訊
選擇時區,去除UTC時間,下一步
輸入密碼,忽略告警,下一步
選擇建立自定義布局,下一步
虛拟機添加了兩塊盤,sda用于系統分區,sdb用于資料分區
選擇驅動器并建立标準分區
boot分區500M
建立實體卷sda2
使用全部剩餘空間
pv sd2建立完成,準備建立卷組和邏輯卷
建立vg,名稱為system,PE選擇預設的4M(PE越小硬碟利于率越高),此時vg最大大小為256G(每個vg塊的PE最大數量是65534,4M*65534=256G),可根據實際情況選擇PE大小;邏輯卷大小可根據實際情況指派;swap也位于邏輯卷中以友善擴容;由于虛拟機記憶體是2G,此時swap設定為4G,對于虛拟記憶體設定,有個參考:
4G以内的實體記憶體,SWAP 設定為記憶體的2倍;
4-8G的實體記憶體,SWAP 等于記憶體大小;
8-64G 的實體記憶體,SWAP 設定為8G;
64-256G實體記憶體,SWAP 設定為16G。
複制
同理在另一塊盤sdb上建立pv sdb1、vg data和邏輯卷,邏輯卷oracle用于安裝資料庫軟體,orasvr用于存放資料庫檔案。
分區總覽,下一步
選擇‘格式化’
選擇‘将修改寫入磁盤’
下一步
選擇‘Database Server’和‘Oracle Linux Server’
啟動安裝
完成安裝,重新開機
進入系統
part2 資料庫安裝
系統環境參數配置
1.安裝依賴包
由于生産上很多時候伺服器是連不了外網的,是以本文的yum源選擇本地源
挂載CD光牒,制作本地yum源
[root@linux-oracle6 ~]# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@linux-oracle6 ~]# cd /etc/yum.repos.d/
[root@linux-oracle6 yum.repos.d]# mv public-yum-ol6.repo public-yum-ol6.repo.bak
建立源檔案cdrom.repo
[root@linux-oracle6 yum.repos.d]# more cdrom.repo
[CDROM]
name=isofile
baseurl=file:///mnt
enabled=1
gpgcheck=0
gpgkey=file:///mnt/RPM-GPG-KEY-oracle
清理過期緩存,建立緩存
[root@linux-oracle6 yum.repos.d]# yum clean all
[root@linux-oracle6 yum.repos.d]# yum makecache
安裝依賴包:
[root@linux-oracle6 ~]# yum -y install compat-libcap1 compat-libstdc++-33-3.2.3 libstdc++-devel-4.4.4 gcc gcc-c++ ksh libaio-devel
2.建立使用者組
[root@linux-oracle6 ~]# groupadd -g 511 oinstall
[root@linux-oracle6 ~]# groupadd -g 510 dba
[root@linux-oracle6 ~]# useradd -u 2000 -g 511 -d /oracle oracle
由于/oracle已經存在,會有告警資訊
useradd:警告:此主目錄已經存在。
不從 skel 目錄裡向其中複制任何檔案。
且切換至oracle使用者時提示符異常:
[root@linux-oracle6 oracle]# su - oracle
-bash-4.1$
解決該問題可從/etc/skel複制檔案即可
[root@linux-oracle6 oracle]# cp /etc/skel/.* /oracle
更改oracle使用者密碼
[root@linux-oracle6 oracle]# passwd oracle
3.修改oracle使用者資源使用限制
[root@linux-oracle6 ~]# more /etc/security/limits.conf|grep oracle
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
4.修改linux核心參數
修改和新增如下核心參數,并及時生效
[root@linux-oracle6 ~]# vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 2147483648
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 = 1048576
[root@linux-oracle6 ~]# sysctl -p
kernel.shmall和kernel.shmmax需根據實際的實體記憶體大小做出更改,其它為預設值
各參數說明如下:
fs.aio-max-nr
同時擁有的異步IO請求數
fs.file-max
同時打開的檔案數最大值
kernel.shmall
該參數是控制共享記憶體頁數。Linux 共享記憶體頁大小為4KB, 共享記憶體段的大小都是共享記憶體頁大小的整數倍。公式:4G*1024*1024/4K = 1048576(頁),檢視記憶體頁大小方法#getconf PAGESIZE,記憶體8G以上,可設定為記憶體總數/頁大小,記憶體8G内可設定為2097152
kernel.shmmax
單個記憶體共享段的最大值,需要比規劃的SGA容量大,建議大于實體記憶體的一半,本文設定為實體記憶體大小,即:2G*1024*1024*1024=2147483648(位元組)
kernel.shmmni
共享記憶體段總數
kernel.sem
信号量的相關的4個參數設定
net.ipv4.ip_local_port_range
表示端口的範圍
net.core.rmem_default
表示接收套接字緩沖區大小的預設值
net.core.rmem_max
表示接收套接字緩沖區大小的最大值
net.core.wmem_default
表示發送套接字緩沖區大小的預設值
net.core.wmem_max
表示發送套接字緩沖區大小的最大值
核心參數設定參考連結:https://docs.oracle.com/cd/E11882_01/install.112/e24324/toc.htm#BABFGGIE
ORACLE環境參數配置
1.上傳安裝媒體
上傳安裝媒體至/oracle目錄
[root@linux-oracle6 ~]# ll /oracle/
總用量 2487224
drwx------. 2 oracle oinstall 16384 8月 24 14:37 lost+found
-rw-r--r--. 1 root root 1395582860 8月 15 16:53 p13390677_112040_Linux-x86-64_1of7.zip
-rw-r--r--. 1 root root 1151304589 8月 15 16:52 p13390677_112040_Linux-x86-64_2of7.zip
2.修改屬主
[root@linux-oracle6 ~]# chown -R oracle:oinstall /oracle
3.解壓安裝包
使用oracle解壓安裝包
[oracle@linux-oracle6 ~] unzip p13390677_112040_Linux-x86-64_1of7.zip[oracle@linux-oracle6 ~] unzip p13390677_112040_Linux-x86-64_2of7.zip
4.建立profile檔案
[oracle@linux-oracle6 ~] view .bash_profileumask 022export ORACLE_BASE=/oracle/app/oracleexport ORACLE_HOME=ORACLE_BASE/product/11.2.0/db_1export NLS_LANG=AMERICAN_AMERICA.ZHS16GBKexport ORACLE_SID=oradbexport LD_LIBRARY_PATH=ORACLE_HOME/lib64:ORACLE_HOME/lib:/usr/libexport ORACLE_DOC=ORACLE_HOME/docexport TNS_NAMES=ORACLE_HOME/network/adminexport TNS_ADMIN=ORACLE_HOME/network/adminexport LANG=Cexport TEMP=/tmpexport TMPDIR=/tmpexport PATH=/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib/mit/bin:/usr/lib/mit/sbin:ORACLE_HOME/bin[oracle@linux-oracle6 ~] chmod u+x .bash_profile[oracle@linux-oracle6 ~] source .bash_profile
5.修改主機名
[root@linux-oracle6 ~]# hostname oracle-linux6.9
[root@linux-oracle6 ~]# more /etc/hosts
172.27.9.56 oracle-linux6.9
[root@linux-oracle6 ~]# vim /etc/sysconfig/network
HOSTNAME=oracle-linux6.9
資料庫軟體安裝
1.啟動并配置Xmanager
啟動Xmanager - Passive,設定DISPLAY
[oracle@linux-oracle6 ~]$ export DISPLAY=172.27.9.246:0.0
DISPLAY為本地的windows客服端主機ip
2.啟動資料庫軟體安裝
[oracle@linux-oracle6 ~] cd database[oracle@linux-oracle6 database] ./runInstaller
如遇報錯: Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set.
則執行xdpyinfo安裝:
[root@linux-oracle6 ~]# yum -y install xdpyinfo
再次執行安裝指令,彈框正常
去除郵件登記,next,忽略告警
忽略軟體更新,next
隻安裝資料庫軟體,next
單執行個體,next
選擇預設的English,next
選擇預設的安裝版本,next
配置oracle資料庫目錄,由于安裝程式已讀取環境變量裡的配置,此處無需修改,next
選擇oraInventory安裝目錄,安裝程式已讀取,無需修改,next
選擇OSDBA所屬組,保持預設,next
安裝要求檢查,一般會報核心參數設定和缺包的告警,修複後check again就行,由于之前的準備工作已完成參數配置和包的安裝,此處無告警,預覽無問題後點選install安裝
執行安裝配置腳本
[root@linux-oracle6 ~]# /oracle/app/oraInventory/orainstRoot.sh
[root@linux-oracle6 ~]# /oracle/app/oracle/product/11.2.0/db_1/root.sh
local bin directory選擇預設的/usr/local/bin,回車就行
傳回安裝界面,安裝完成
配置監聽
打開監聽配置程式
[oracle@oracle-linux6 ~]$ netmgr
建立listener
選擇類型為Listening Locations,Add Address後輸入Host(主機名或者ip),Port預設
選擇Database Services标簽頁,輸入global database name和sid
儲存配置,關閉視窗,監聽配置完成
建立資料庫
1.修改/orasvr屬主
[root@linux-oracle6 ~]# chown -R oracle:oinstall /orasvr
2.在oracle使用者下輸入dbca,彈出oracle圖形化歡迎界面
[oracle@oracle-linux6 ~]$ dbca
next
選擇建立資料庫
選擇自定義模闆
輸入global database name和sid,next
将configure enterprise manager前面的勾去掉,不使用圖形化管理工具
輸入使用者名和密碼,确定
選擇資料庫存放目錄,next
禁用快速恢複,不啟用歸檔,資料庫建立完之後再開啟歸檔
去掉所有元件,加快資料庫建立速度
自定義系統記憶體區的大小,還可以單獨指定PGA和SGA的大小,此數值根據應用需求而定
設定資料庫大小,保持預設的8K。程序數根據應用的實際需求而定,一般數量在600以上
選擇字元集,此處應選擇ZHS16GBK,不然不能正常顯示中文
選擇預設的獨占模式,next
配置資料檔案,包括控制檔案,表空間,資料檔案和重做日志檔案
資料檔案數量為3個
控制檔案能夠決定資料庫中資料檔案和重做日志檔案的最大數量,資料檔案最大值選300,重做日志最大值選30,最大日志成員數選5
表空間管理選擇選擇預設值:擴充管理選為本地管理模式并選擇automatic allocation;段空間管理選擇自動管理模式,選擇automatic;日志選項選擇yes,啟用重做日志
資料檔案配置項,可更改資料檔案大小
系統表空間大小設定如圖
設定5個日志檔案組,每組各一個日志檔案,檔案大小為512MB
配置完成,next
儲存為模闆和腳本為可選項,這裡不選
預覽配置資訊,單擊Ok開始建庫
安裝完成
part3 PSU更新檔更新
psu簡介
PSU(Patch Set Update)簡單講就是多個更新檔的集合,它減輕了小版本周期長而帶來的不能及時更新的影響,解決了多個個别更新檔沖突和互相影響的問題,同時減輕DBA安裝更新檔的負擔,減少更新檔安裝次數。
OPatch工具更新
在更新PSU更新檔之前,必須要先更新oracle opatch工具,opatch更新工具為11.2.0.3.5以上版本才能使用
1.修改oracle使用者環境變量
[oracle@oracle-linux6 ~]$ vim .bash_profile
export PATH=$PATH:$ORACLE_HOME/OPatch
複制
oracle退出重新登入加載環境變量
2.檢視opatch版本
[oracle@oracle-linux6 ~]$ opatch version
OPatch Version: 11.2.0.3.4
複制
opatch版本過低,需更新
3.opatch最新軟體包上傳解壓并替換原Opatch目錄
[oracle@oracle-linux6 ~]$ unzip p6880880_112000_Linux-x86-64.zip
[oracle@oracle-linux6 ~]$ mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch.bak
[oracle@oracle-linux6 ~]$ cp -R OPatch $ORACLE_HOME
複制
4.檢查上傳後的opatch版本
[oracle@oracle-linux6 ~]$ opatch version
OPatch Version: 11.2.0.3.6
複制
opatch更新完成
PSU更新檔安裝
1.關閉應用
2.關閉資料庫
[oracle@oracle-linux6 ~]$ lsnrctl stop
SQL> shutdown immediate;
複制
3.檢視資料庫更新檔情況
[oracle@oracle-linux6 ~]$ opatch lsinventory
複制
發現沒有安裝更新檔包
4.上傳更新檔包并解壓
[oracle@oracle-linux6 ~]$ unzip p26392168_112040_Linux-x86-64.zip
5.更新檔安裝前預先驗證
進入解壓後目錄,進行更新檔安裝前的預先驗證
[oracle@oracle-linux6 ~]$ cd 26392168/
[oracle@oracle-linux6 26392168]$ opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir ./
複制
驗證無誤
6.更新檔安裝
在更新檔包解壓後目錄執行更新檔安裝指令
[oracle@oracle-linux6 26392168]$ opatch apply
複制
按提示輸入y或者回車
更新檔安裝時退出需退出sqlplus,不然會報錯
7.驗證安裝的更新檔
[oracle@oracle-linux6 26392168]$ opatch lsinventory
複制
8.開啟資料庫更新資料字典
[oracle@oracle-linux6 ~]$ cd $ORACLE_HOME/rdbms/admin
[oracle@oracle-linux6 admin]$ sqlplus / as sysdba
SQL> startup
SQL> @catbundle.sql psu apply
複制
檢視日志是否有error報錯
9.檢視更新記錄
select * from dba_registry_history;
複制
PSU更新檔解除安裝
1.關閉監聽和資料庫
[oracle@oracle-linux6 ~]$ lsnrctl stop
SQL> shutdown immediate;
複制
2.檢視更新檔包
[oracle@oracle-linux6 ~]$ opatch lsinventory
複制
3.解除安裝更新檔集26392168
進入26392168目錄
[oracle@oracle-linux6 ~]$ cd 26392168/
[oracle@oracle-linux6 26392168]$ opatch rollback -id 26392168
複制
4.啟動資料庫更新資料字典
[oracle@oracle-linux6 ~]$ cd $ORACLE_HOME/rdbms/admin
[oracle@oracle-linux6 admin]$ sqlplus / as sysdba
SQL> startup;
SQL> @catbundle_PSU_ORADB_ROLLBACK.sql
複制
5.檢視更新檔解除安裝
[oracle@oracle-linux6 ~]$ opatch lsinventory
複制