在OEL6.1下安裝ORACLE 11G R2

這次安裝oracle選擇的是oracle 11.2.0.3版本,下載的安裝包總共有7個,單獨安裝數據庫需要使用前兩個,具體安裝步驟如下:

1. 將數據庫文件複製到服務器上
cp p10404530_112030_Linux-x86-64_{1,2,}* /u01/

2. 解壓數據庫文件
unzip p10404530_112030_Linux-x86-64_1of7.zip
unzip p10404530_112030_Linux-x86-64_2of7.zip

3. 檢查/etc/hosts
注意將主機名的對應信息加入hosts文件

關閉sendmail 與iptables

Chkconfig –list iptables

Chkconfig –list sendmail

service sendmail stop

service iptables stop

4. 創建用戶和組
useradd oracle

passwd oracle

groupadd dba

usermod -G dba oracle

chown -R oracle:dba /u01/
chmod –R 755 /u01/

檢查以下補丁是否已經安裝(掛載iso文件,使用mount –o loop 路徑 /mnt/iso)

binutils-2.15.92.0.2-18

compat-libstdc++-33.2.3-47.3

elfutils-libelf-0.97-5

elfutils-libelf-devel-0.97-5

glibc-2.3.9.4-2.19

glibc-common-2.3.9.4-2.19

glibc-devel-2.3.9.4-2.19

gcc-3.4.5-2

gcc-c++-3.4.5-2

libaio-devel-0.3.105-2

libaio-0.3.105-2

libgcc-3.4.5

libstdc++-3.4.5-2

libstdc++-devel-3.4.5-2

make-3.80-5

sysstat-5.0.5

unixODBC-2.2.11

unixODBC-devel-2.2.11
[root@erp1 Packages]# rpm -ivh binutils-2.20.51.0.2-5.28.el6.x86_64.rpm compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm elfutils-libelf-0.152-1.el6.x86_64.rpm elfutils-libelf-devel-0.152-1.el6.x86_64.rpm glibc-common-2.12-1.47.el6.x86_64.rpm glibc-devel-2.12-1.47.el6.x86_64.rpm gcc-4.4.6-3.el6.x86_64.rpm gcc-c++-4.4.6-3.el6.x86_64.rpm libaio-devel-0.3.107-10.el6.x86_64.rpm libaio-0.3.107-10.el6.x86_64.rpm libgcc-4.4.6-3.el6.x86_64.rpm libstdc++-4.4.6-3.el6.x86_64.rpm libstdc++-devel-4.4.6-3.el6.x86_64.rpm make-3.81-19.el6.x86_64.rpm sysstat-9.0.4-18.el6.x86_64.rpm unixODBC-2.2.14-11.el6.x86_64.rpm unixODBC-devel-2.2.14-11.el6.x86_64.rpm compat-libcap1-1.10-1.x86_64.rpm compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm ksh-20100621-12.el6.x86_64.rpm libaio-devel-0.3.107-10.el6.x86_64.rpm

5. 修改/etc/sysctl.conf,加入以下內容:

kernel.shmmax = 4294967295

# Controls the maximum number of shared memory segments, in pages

kernel.shmall = 2097152

kernel.shmmni = 4096

#semaphores:semmsl,semmns,semopm,semmni

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default = 4194304

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 262144

結束後,執行

/sbin/sysctl -p

6. 修改/etc/security/limits.conf,加入內容

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

7. 修改/etc/pam.d/login,加入內容

session required /lib/security/pam_limits.so //對64位系統這條不需要

session required pam_limits.so

8. 修改/etc/profile,加入內容

if [ $USER = "oracle" ]; then

if [ $SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

9. 使用oracle用戶登錄,修改.bash_profile文件

su - oracle

vi .bash_profile 加入以下內容

#DISPLAY=localhost:0.0

#export DISPLAY

export ORACLE_SID=center

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/u01/app/oracle/product/11.2.0./db_1

export ORA_CRS_HOME=/u01/app/product/crs_1

export ORACLE_ADMIN=$ORACLE_BASE/admin

export ORACLE_HOME_LISTNER=$ORACLE_HOME

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/jlib

export JAVA_HOME=$ORACLE_HOME/jdk

export PATH=$PATH:$ORACLE_HOME/bin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/lib:$JAVA_HOME/bin:$ORA_CRS_HOME/bin:
相關參數文件的內容解釋:

a) vi /etc/sysctl.conf
kernel.shmall爲物理內存除以pagesize;

kernel.shmmax爲物理內存的一半;

fs.file-max爲512 乘以 processes (如128個process則爲 65536);

net.ipv4.ip_local_port_range/net.core.rmem_default/net.core.rmem_max三個參數設置和官方文檔不一樣, 這是根據metalink 343431.1 最新要求更改的;

net.ipv4.tcp_rmem/net.ipv4.tcp_wmem兩個參數一般情況下無需設置, 除非是在Dataguard/Streams等需很多網絡傳輸情況下;

其它參數根據官方文檔要求設置即可.

# vi /etc/sysctl.conf

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 9000 65000

net.core.rmem_default = 4194304

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 262144

修改以後讓參數生效:

# /sbin/sysctl -p

Shmmax 是核心參數中最重要的參數之一,用於定義單個共享內存段的最大值,

shmmax 設置應該足夠大,能在一個共享內存段下容納下整個的SGA ,設置的過低可能會導致需要創建多個共享內存段,這樣可能導致系統性能的下降。

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.shmmni ----

shmmni 內核參數是共享內存段的最大數量(注意這個參數不是 shmmin,是

shmmni, shmmin 表示內存段最小大小 ) 。shmmni 缺省值 4096 ,一般肯定是夠用了 。

在安裝Oracle 之前通常需要設置kernel.sem這個參數,下面對些作簡單介紹:

sem其實是semaphores的縮寫,查看當前設置

[Oracle@ebsse oracle]$ cat /proc/sys/kernel/sem

250 32000 100 128

4個數據分別對應

SEMMSL SEMMNS SEMOPM SEMMNI

如當Oracle DB初始化參數文件中PROCESSES參數設置較大時,需要調整SEMAPHORES設置

SEMMSL應該設置爲服務器中各個實例中最大的PROCESSES參數+10,例如,當最大的PROCESSES參數爲5000時,SEMMSL應設置爲5010。

SEMMNS參數應設置爲SEMMSL*SEMMNI,接上例SEMMSL爲5010,SEMMNS參數應爲(5010*128)=641280。

SEMOPM參數應設置與SEMMSL參數相同,接上例此處應設置爲5010

更改當前SEMAPHORES參數設置:

[Oracle@ebsse oracle]$ su

Password:

[root@ebsse Oracle]# echo "5010 641280 5010 128" > /proc/sys/kernel/sem

[root@ebsse Oracle]# cat /proc/sys/kernel/sem

5010 641280 5010 128

如需啓動時自動應用,可在/etc/sysctl.conf增加:

kernel.sem =5010 641280 5010 128

SEMMNI 100 Defines the maximum number of semaphore sets in the entire system.

SEMMNS 256 Defines the maximum semaphores on the system. This setting is a minimum recommended value, for initial installation only. The SEMMNS parameter should be set to the sum of the PROCESSES parameter for each Oracle database, adding the largest one twice, and then adding an additional 10 for each database.

SEMOPM 100 Defines the maximum number of operations for each semop call.

SEMMSL 100 Defines the minimum recommended value, for initial installation only.

SHMMAX 2147483648 Defines the maximum allowable size of one shared memory segment. 2 GB for SMP kernel. The recommended size is half the RAM size.

SHMMIN 1 Defines the minimum allowable size of a single shared memory segment.

SHMMNI 100 Defines the maximum number of shared memory segments in the entire system.

SHMSEG 4096 Defines the maximum number of shared memory segments one process can attach.

SHMVMX 32767 Defines the maximum value of a semaphore.

SEMMSL :每個信號量集中的最大信號量數 200

SEMMNS :系統中信號量集的最大數 20000

SEMOPM :每個semop調用所包含的最大操作數 200

SEMMNI :系統中信號量集的最小數 100

例子:

Linux X86-64操作系統,Oracle 10g數據庫,由8G加到16G,把kernel.shmmax參數改到17179869184(16G)後,發現只要修改sga_max_size和sga_target參數到超過8G,Oracle就會報內存不夠無法啓動,檢查另外兩個共享內存參數相關參數:kernel.shmall和kernel.shmmni,kernel.shmall參數是控制共享內存頁數,kernel.shmmni參數是控制共享內存段總數,目前的參數值是4096,足夠大了,那麼問題應該是出在kernel.shmall上,用8589934592(8G)除以當前的參數值2097152,結果是4096,說明頁大小是4K,現在要把SGA調到大於8G,就要調大kernel.shmall參數,調整到當前值的2倍(4194304)後,就可以成功地將sga設置到13G了。

b) 附件2:linux limits.conf 配置

limits.conf 文件實際是 Linux PAM(插入式認證模塊,Pluggable Authentication Modules)中 pam_limits.so 的配置文件,而且只針對於單個會話。

limits.conf的格式如下:

username|@groupname type resource limit

username|@groupname:設置需要被限制的用戶名,組名前面加@和用戶名區別。也可以用通配符*來做所有用戶的限制。

type:有 soft,hard 和 -,soft 指的是當前系統生效的設置值。hard 表明系統中所能設定的最大值。soft 的限制不能比hard 限制高。用 - 就表明同時設置了 soft 和 hard 的值。

resource:

core - 限制內核文件的大小

date - 最大數據大小

fsize - 最大文件大小

memlock - 最大鎖定內存地址空間

nofile - 打開文件的最大數目

rss - 最大持久設置大小

stack - 最大棧大小

cpu - 以分鐘爲單位的最多 CPU 時間

noproc - 進程的最大數目

as - 地址空間限制

maxlogins - 此用戶允許登錄的最大數目

要使 limits.conf 文件配置生效,必須要確保 pam_limits.so 文件被加入到啓動文件中。查看 /etc/pam.d/login 文件中有:

session required /lib/security/pam_limits.so

 

10. 使用oracle用戶登陸,輸入startx ,進入圖形界面,然後再進入安裝目錄輸入./runInstaller開始安裝.

 

11. 配置安全更新

image

12. 跳過軟件更新配置

image

13. 安裝選項選擇創建數據庫

image

14. 系統類型選擇服務器類型

image

15. 安裝單實例數據庫

image

16. 選擇是否自定義安裝

image

17. 產品語言選擇,english和simple chinese都選上

image

18. 數據庫版本選擇企業版

image

19. 安裝路徑以環境變量裏的配置爲準

image

20. 選擇oracle安裝組

image

21. 選擇數據庫類型爲oltp類型

image

22. 根據實際需要輸入數據庫實例名

image

23. 選擇字符集等參數

image

24. 選擇文件系統,暫不使用asm

image

25. 設置系統賬戶密碼

image

26. 選擇數據庫管理員組

image

27. 安裝檢查

image

28. 開始安裝

image

29. 在安裝中會彈出一個要求執行u01/oraInventory/oraInstRoot.sh和/u01/oracle/root.sh的提示框,以ROOT用戶執行這兩個文件後結束安裝
image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章