此次安裝oracle選擇的是oracle 11.2.0.3版本,下載的安裝包總共有7個,單獨安裝數據庫須要使用前兩個,具體安裝步驟以下:linux
1. 將數據庫文件複製到服務器上
cp p10404530_112030_Linux-x86-64_{1,2,}* /u01/c++
2. 解壓數據庫文件
unzip p10404530_112030_Linux-x86-64_1of7.zip
unzip p10404530_112030_Linux-x86-64_2of7.zip數據庫
3. 檢查/etc/hosts
注意將主機名的對應信息加入hosts文件安全
關閉sendmail 與iptablesbash
Chkconfig –list iptables服務器
Chkconfig –list sendmail網絡
service sendmail stopsession
service iptables stoporacle
4. 建立用戶和組
useradd oracleapp
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. 配置安全更新
12. 跳過軟件更新配置
13. 安裝選項選擇建立數據庫
14. 系統類型選擇服務器類型
15. 安裝單實例數據庫
16. 選擇是否自定義安裝
17. 產品語言選擇,english和simple chinese都選上
18. 數據庫版本選擇企業版
19. 安裝路徑以環境變量裏的配置爲準
20. 選擇oracle安裝組
21. 選擇數據庫類型爲oltp類型
22. 根據實際須要輸入數據庫實例名
23. 選擇字符集等參數
24. 選擇文件系統,暫不使用asm
25. 設置系統帳戶密碼
26. 選擇數據庫管理員組
27. 安裝檢查
28. 開始安裝
29. 在安裝中會彈出一個要求執行u01/oraInventory/oraInstRoot.sh和/u01/oracle/root.sh的提示框,以ROOT用戶執行這兩個文件後結束安裝