標籤:
安裝過程中遇到的問題:
1.建立oracle使用者時,最好指定家目錄,常規的為/opt/oracle,預設的/home/oracle也是可以的。
2.在"添加主機名稱與IP地址對應"一步中,一定要配置對IP,不然安裝過程中會出現"Oracle Net Configuration Assisant failed"的錯誤
RHEL6.5安裝部署Oracle 11g R2資料庫
虛擬機器版本 |
VM12 pro |
作業系統 |
RedHat-6.5-x86_64 |
主機名稱 |
oracledb |
記憶體 |
4G官方建議最低1G |
硬碟 |
30G依據自己的實際需求及配置而定 |
Oracle資料檔案 |
linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip |
步驟1-修改主機名稱
[[email protected] ~]# sed -i "s/HOSTNAME=xuegod64/HOSTNAME=oracledb/" /etc/sysconfig/network
[[email protected] ~]# hostname oracledb
[[email protected] ~]# cat /etc/sysconfig/network
步驟2-添加主機名稱與IP對應記錄
[[email protected] ~]# vim /etc/hosts
[[email protected] ~]# more /etc/hosts
步驟3-安裝依賴包
[[email protected] ~]# yum -y install gcc gcc-c++ make binutilscompat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-commonglibc-devel libaio libaio-devel libgcclibstdc++ libstdc++-devel unixODBC unixODBC-devel
步驟4-建立使用者和組
[[email protected] ~]# groupadd -g 251 oinstall
[[email protected] ~]# groupadd -g 252 dba
[[email protected] ~]# useradd -u 256 -g oinstall -G dba -d /opt/oracle -s /bin/bash -m
[[email protected] ~]# echo oracle | passwd --stdin oracle
參數解釋:
-g:指定使用者所屬的組
-G:指定使用者所屬的附加組
-u:指定使用者ID
-d:指定使用者主目錄
-s:指定使用者登入shell
-m:若使用者主目錄不存在,則自動建立。
步驟 5 修改核心參數
[[email protected] ~]# vim /etc/sysctl.conf
參數解釋:
kernel.msgmax = 65536 #從一個進程發送到另一個進程的訊息的最大長度。進程間的訊息傳遞是在核心的記憶體中進行,不會交換到磁碟上,所以如果增加該值,則將增加作業系統所使用的記憶體數量。預設設定:8192
net.ipv4.ip_local_port_range= 9000 65500 #表示應用程式可使用的IPv4連接埠範圍。
fs.file-max = 6815744 # 該參數決定了系統中所允許的檔案控制代碼最大數目,檔案控制代碼設定代表linux系統中可以開啟的檔案的數量。
kernel.shmmni = 4096 #該參數是共用記憶體段的最大數量。shmmni預設值4096.
net.core.rmem_default=262144 # 表示通訊端接收緩衝區大小的預設值。
net.core.wmem_default=262144 #表示通訊端發送緩衝區大小的預設值。
net.core.rmem_max=4194304 #表示通訊端接收緩衝區大小的最大值。
net.core.wmem_max=1048576 #表示通訊端發送緩衝區大小的最大值。
fs.aio-max-nr = 1048576 # 此參數限制並發未完成的請求,應該設定避免I/O子系統故障。
kernel.shmall = 10523004
#kernel.shmall:
該參數控制可以使用的共用記憶體的總頁數。Linux共用記憶體頁大小為4KB,共用記憶體段的大小都是共用記憶體頁大小的整數倍。一個共用記憶體段的最大大小是16G,那麼需要共用記憶體頁數是16GB/4KB=16777216KB /4KB=4194304(頁),也就是64Bit系統下16GB實體記憶體,設定kernel.shmall = 4194304才符合要求(幾乎是原來設定2097152的兩倍)。這時可以將shmmax參數調整到16G了,同時可以修改SGA_MAX_SIZE和SGA_TARGET為12G(您想設定的SGA最大大小,當然也可以是2G~14G等,還要協調PGA參數及OS等其他記憶體使用量,不能設定太滿,比如16G)
kernel.shmmax = 6465333657
# 用於定義單個共用記憶體段的最大值。設定應該足夠大,能在一個共用記憶體段下容納下整個的SGA ,設定的過低可能會導致需要建立多個共用記憶體段,這樣可能導致系統效能的下降。官方建議值:
32位linux系統:可取最大值為4GB(4294967296bytes)-1byte,即4294967295。建議值為多於記憶體的一半,所以如果是32為系統,一般可取值為4294967295。32位系統對SGA大小有限制,所以SGA肯定可以包含在單個共用記憶體段中。
64位linux系統:可取的最大值為實體記憶體值-1byte,建議值為多於實體記憶體的一半,一般取值大於SGA_MAX_SIZE即可,可以取實體記憶體-1byte。例如,如果為12GB實體記憶體,可取12*1024*1024*1024-1=12884901887,SGA肯定會包含在單個共用記憶體段中。
kernel.sem = 250 32000 100 128
#以kernel.sem = 250 32000 100 128為例:
250是參數semmsl的值,表示一個訊號量集合中能夠包含的訊號量最大數目。
32000是參數semmns的值,表示系統內可允許的訊號量最大數目。
100是參數semopm的值,表示單個semopm()調用在一個訊號量集合上可以執行的運算元量。
128是參數semmni的值,表示系統訊號量集合總數。
[[email protected] ~]# sysctl -p #立即生效
########################################################################
核心參數:
shmmax:
共用記憶體段的最大位元組數,建議設大點,甚至可以大過實體記憶體的位元組數。該參數定義了共用記憶體段的最大尺寸(以位元組為單位)。預設為32M,對於oracle來說,該預設值太低了,通常將其設定為2G。
shmmin:
共用記憶體段的最小尺寸。這個參數的設定一般不會出問題。
shmmni:
共用記憶體段的最大數目。這個核心參數用於設定系統範圍內共用記憶體段的最大數量。該參數的預設值是4096 。通常不需要更改。
shmseg:
每個進程可分配的最大共用記憶體段數目
shmall:
最大的並發共用記憶體段數目,比SGA還要大。該參數表示系統一次可以使用的共用記憶體總量(以頁為單位,一個頁大小為4KB)。預設值就是2097152,通常不需要修改。
sem:
是semaphores的縮寫,該參數表示設定的訊號量。它包含四個值:semmsl、semmns、semopm、semmni。
# sysctl -a|grep sem kernel.sem = 250 32000 100 128 |
semmns:
號誌的最大數量,跟ORACLE的PROCESS數有關。SEMMSL * SEMMNI
semopm:
系統調用允許的訊號量最大個數。至少100;或者等於SEMMSL
semmni:
系統訊號量set最大個數。最少128
semmsl:
每個號誌集合中最多的號誌數目。最小250;對於processes參數設定較大的系統建議設定為processes+10。
msgmni:
指定訊息佇列標識的最大數目。預設設定:16
msgmax:
從一個進程發送到另一個進程的訊息的最大長度。進程間的訊息傳遞是在核心的記憶體中進行,不會交換到磁碟上,所以如果增加該值,則將增加作業系統所使用的記憶體數量。預設設定:8192
msgmnb:
一個訊息佇列中最大的位元組數。預設設定:16384
optmem_max:每個socket的最大緩衝大小
rmem_default:接收socket的預設緩衝大小(位元組)
rmem_max:接收socket的最大緩衝大小(位元組)
wmem_default:發送的socket預設緩衝大小(位元組)
wmem_max:發送的socket最大緩衝大小(位元組)
p_local_port_range:表示用於向外串連的連接埠範圍。預設情況下很小:32768到61000,改為10000到65000。(注意:這裡不要將最低值設的太低,否則可能會佔用掉正常的連接埠!
file-max:表示檔案控制代碼的最大數量。檔案控制代碼設定表示在linux系統中可以開啟的檔案數量。如果設定過小,Oracle將無法啟動,或運行不正常。
########################################################################
步驟 5 -修改系統資源限制
[[email protected] ~]# vim /etc/security/limits.conf
參數解釋:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
[[email protected] ~]# vim /etc/pam.d/login
參數解釋:
session required pam_namespace.so
session required pam_limits.so
步驟 6 -建立安裝目錄及設定許可權
[[email protected] ~]# mkdir -p /opt/oracle/app/
[[email protected] ~]# mkdir -p /opt/oracle/oradata
[[email protected] ~]# chmod 755 /opt/oracle/app/
[[email protected] ~]# chmod 755 /opt/oracle/
[[email protected] ~]# chown oracle:oinstall -R /opt/oracle/
步驟 7-設定oracle環境變數
su – oracle 切換到oracle使用者
[[email protected] ~]$ vim .bash_profile
參數解釋:
export ORACLE_BASE=/opt/oracle/app
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orcl
[[email protected] ~]$ source ./.bash_profile #立即生效
步驟 8 -關閉Selinux
[[email protected] ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
[[email protected] ~]# setenforce 0
[[email protected] ~]# getenforce
步驟9- 關閉防火牆
[[email protected] ~]# service iptables stop
[[email protected] ~]# chkconfig iptables off
安裝步驟
(1) 上傳Oracle安裝包
首先linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip上傳至Oracle家目錄/opt/oracle
(2) 利用Oracle使用者登入並解壓安裝包
利用oracle使用者登入圖形介面,解壓檔案,並執行安裝(如果不用oracle使用者登入安裝,例如從root使用者切換到oracle,可能會出現一些異常)
解壓
[[email protected]~]# unzip /opt/oracle/linux_64_11gR2/linux.x64_11gR2_database_1of2.zip
[[email protected]~]# unzip /opt/oracle/linux_64_11gR2/linux.x64_11gR2_database_2of2.zip
[[email protected] ~]# mv database/ /opt/oracle/
[[email protected] ~]#xhost+
[[email protected] ~]#su – oracle
[[email protected] ~]$ ./database/runInstaller
開始安裝
安裝完成後,會提示執行下面兩個指令碼
利用root使用者登入,到下面的兩個目錄下執行指令碼即可
執行指令碼
/opt/oracle/oraInventory/orainstRoot.sh
/opt/oracle/app/product/11.2.0/dbhome_1/root.sh
驗證
redhat6.5部署oracle 11G R2 (參考配置)