安裝過程中遇到的問題:
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-修改主機名
[root@xuegod64 ~]# sed -i "s/HOSTNAME=xuegod64/HOSTNAME=oracledb/" /etc/sysconfig/network
[root@xuegod64 ~]# hostname oracledb
[root@xuegod64 ~]# cat /etc/sysconfig/network

步驟2-添加主機名與IP對應記錄
[root@oracledb ~]# vim /etc/hosts
[root@oracledb ~]# more /etc/hosts

步驟3-安裝依賴包
[root@oracledb ~]# 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-創建用戶和組
[root@oracledb ~]# groupadd -g 251 oinstall
[root@oracledb ~]# groupadd -g 252 dba
[root@oracledb ~]# useradd -u 256 -g oinstall -G dba -d /opt/oracle -s /bin/bash -m
[root@oracledb ~]# echo oracle | passwd --stdin oracle


參數解釋:
-g:指定用戶所屬的組
-G:指定用戶所屬的附加組
-u:指定用戶ID
-d:指定用戶主目錄
-s:指定用戶登錄shell
-m:若用戶主目錄不存在,則自動創建。
步驟 5 修改內核參數
[root@oracledb ~]# 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的值,表示系統信號量集合總數。
[root@oracledb ~]# 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 -修改系統資源限制
[root@oracledb ~]# vim /etc/security/limits.conf

參數解釋:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
[root@oracledb ~]# vim /etc/pam.d/login

參數解釋:
session required pam_namespace.so
session required pam_limits.so
步驟 6 -創建安裝目錄及設置權限
[root@oracledb ~]# mkdir -p /opt/oracle/app/
[root@oracledb ~]# mkdir -p /opt/oracle/oradata
[root@oracledb ~]# chmod 755 /opt/oracle/app/
[root@oracledb ~]# chmod 755 /opt/oracle/
[root@oracledb ~]# chown oracle:oinstall -R /opt/oracle/
步驟 7-設置oracle環境變量
su – oracle 切換到oracle用戶
[oracle@oracledb ~]$ 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
[oracle@oracledb ~]$ source ./.bash_profile #立即生效
步驟 8 -關閉Selinux
[root@oracledb ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
[root@oracledb ~]# setenforce 0
[root@oracledb ~]# getenforce

步驟9- 關閉防火牆
[root@oracledb ~]# service iptables stop
[root@oracledb ~]# chkconfig iptables off
-
安裝Oracle
安裝步驟
(1) 上傳Oracle安裝包
首先linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip上傳至Oracle家目錄/opt/oracle
(2) 利用Oracle用戶登錄並解壓安裝包
利用oracle用戶登錄圖形界面,解壓文件,並執行安裝(如果不用oracle用戶登錄安裝,例如從root用戶切換到oracle,可能會出現一些異常)
解壓
[root@oracledb~]# unzip /opt/oracle/linux_64_11gR2/linux.x64_11gR2_database_1of2.zip
[root@oracledb~]# unzip /opt/oracle/linux_64_11gR2/linux.x64_11gR2_database_2of2.zip
[root@oracledb ~]# mv database/ /opt/oracle/
[root@oracledb ~]#xhost+
[root@oracledb ~]#su – oracle
[oracle@oracledb ~]$ ./database/runInstaller





















開始安裝



安裝完成后,會提示執行下面兩個腳本
利用root用戶登錄,到下面的兩個目錄下執行腳本即可

執行腳本
/opt/oracle/oraInventory/orainstRoot.sh
/opt/oracle/app/product/11.2.0/dbhome_1/root.sh
驗證

