本文主要步驟是參考:https://www.linuxidc.com/Linux/2014-02/97374.htm
后來自己加入了一些安裝過程中遇到的問題和解決方法。使用圖形界面安裝Oracle已經不推薦,使用配置好的相關腳本來安裝(靜默安裝)更方便。
安裝前須知
- 內存(RAM)的最小要求是 1GB,建議 2GB 及以上。
- 虛擬內存 swap 建議:內存為 1GB~2GB 時建議swap大小為內存大小的 1.5 倍;內存為 2GB~16GB 時建議swap大小為內存的大小;內存超過 16GB 時swap保持16GB。
- 要求臨時文件目錄,如 /tmp 的磁盤空間至少 1GB。
- 磁盤空間要求:企業版為4.35GB的安裝空間和1.7GB以上的數據文件空間;標准版為4.22GB的安裝空間和1.5GB以上的數據文件空間。
- 需要 X window 圖形界面。
- 需要 root 用戶權限
- 用CentOS7安裝的步驟是一樣的。只是依賴包的版本會有所不同。詳細見具體的步驟會有注明。
本文安裝環境
操作系統
CentOS 6.4 2.6.32-358.el6.x86_64(desktop),2GB RAM,80GB 硬盤空間(4GB swap、100MB /boot、30GB /)
主機名
L3, IP 192.168.88.53(靜態)
安裝所需程序包(在root帳號下操作):
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
compat-libstdc++-33-3.2.3 (32 bit)
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-2.5-24 (32 bit)
glibc-common-2.5
glibc-devel-2.5
glibc-devel-2.5 (32 bit)
glibc-headers-2.5
ksh-20060214
libaio-0.3.106
libaio-0.3.106 (32 bit)
libaio-devel-0.3.106
libaio-devel-0.3.106 (32 bit)
libgcc-4.1.2
libgcc-4.1.2 (32 bit)
libstdc++-4.1.2
libstdc++-4.1.2 (32 bit)
libstdc++-devel 4.1.2
make-3.81
sysstat-7.0.2
unixODBC-2.2.14-11.el6 (x86_64) or later
unixODBC-2.2.14-11.el6.i686 or later
unixODBC-devel-2.2.14-11.el6 (x86_64) or later
unixODBC-devel-2.2.14-11.el6.i686 or later
libXp
使用命令 yum list | grep ‘package name’ 或者 rpm -q ‘package name’ 或者 rpm -qa | grep ‘package name’ 查看程序包是否已經安裝。 使用命令 yum install -y ‘package name’ 安裝所缺的程序包,
pdksh包除外。注意:要用yum安裝32 bit的程序包,可先修改 vi /etc/yum.conf,添加一行:multilib_policy=all。Oracle在檢查環境的時候會要求安裝i386,但CentOS 6.4光盤中32 bit的程序包都是i686,其實都一樣,忽略這個差異問題應該不大(見下邊的安裝部分)。
yum install -y binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel make numactl sysstat libXp unixODBC unixODBC-devel
安裝pdksh包(該程序包未被納入CentOS的安裝盤中):
使用命令:wget ftp://rpmfind.net/linux/centos/5.9/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm 將pdksh程序包下載到本地
使用命令yum localinstall
pdksh-5.2.14-21.x86_64.rpm進行安裝(注意:該程序包與ksh沖突,如果已經安裝ksh,建議使用命令 rpm -e ksh-* 卸載)
-------------------------------
(CentOS7下安裝11g2的步驟也是一樣的,所需的依賴包有一部分的版本不同而已)
暫時發現pdksh-5.2.14-21.x86_64.rpm這個包在CentOS7下安裝會與ksh沖突,
需要安裝pdksh-5.2.14-37.el5_8.1.i386。
wget http://vault.centos.org/5.11/os/i386/CentOS/pdksh-5.2.14-37.el5_8.1.i386.rpm
--------------------------------
2018-03-09補充:
貌似CentOS 6 / CentOS 7都是安裝
pdksh-5.2.14-37.el5_8.1.i386才會通過安裝程序的檢測。
創建所需的用戶組(在root帳號下操作):
groupadd oinstall
groupadd dba
groupadd oper
創建所需的帳號(在root帳號下操作):
使用命令 id oracle查看oracle 帳號是否已存在,若未存在則使用如下命令進行創建:
#初始群組為 oinstall,有效群組為 dba、oper
useradd -g oinstall -G dba,oper oracle
#為oracle帳號設置密碼(安裝的時候需要登錄)
passwd oracle
123456
若oracle帳號已存在,則使用命令 usermod -a -G dba,oper oracle 將其加入群組 dba 和 oper中
修改內核參數(在root帳號下操作):
編輯內核參數配置文件 vim /etc/sysctl.conf,在該文件下修改或添加如下行:
fs.file-max = 6815744
fs.aio-max-nr = 1048576
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
再執行以下命令使以上配置立即生效:
sysctl -p
修改系統資源限制(在root帳號下操作):
編輯系統資源限制配置文件 vim /etc/security/limits.conf,在該文件下添加如下行:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
編輯文件 vi /etc/pam.d/login,添加如下行(11gR1有要求,R2沒有要求):
session required pam_limits.so
編輯 vi /etc/profile 文件,添加如下行(11gR1有要求,R2沒有要求):
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
該配置在用戶oracle登錄時會立即生效,如果當前 oracle 用戶已經登錄可退出后重新登錄使之生效。
關閉SELinux(在root帳號下操作):
編輯SELinux配置文件 vim /etc/selinux/config,將SELINUX的值設為 disabled,如下:
SELINUX=disabled;
修改該文件可使重啟系統后不啟動SELinux。關閉當前已開啟的SELinux使用如下命令:
setenforce 0
修改/etc/hosts文件(在root帳號下操作):
編輯文件 vim /etc/hosts,添加一行(L3為主機名):
192.168.88.53 L3
若不進行此操作會在安裝時彈出警告,並且可能影響監聽程序的正常運行,所以建議做這個修改。
創建所需的目錄(在root帳號下操作):
把oracle安裝在 /opt/oracle 目錄下,所以需創建該目錄:
mkdir /opt/oracle
chown oracle:oinstall /opt/oracle
chmod 755 /opt/oracle
安裝時還需要設置 Inventory 目錄,所以需創建該目錄:
mkdir /opt/oraInventory
chown oracle:oinstall /opt/oraInventory
chmod 755 /opt/oraInventory
安裝包相關:
Oracle 11g R2的安裝包被壓縮成兩個文件:linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip,將它們上傳到安裝機器上,並使用
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
進行解壓縮,將得到一個名稱為 database 的目錄,這里把它放在 /home/oracle/database 中。
由於安裝過程是以 oracle 身份進行的,所以需確保oracle帳號對 /home/oracle/database 有執行權限,可使用如下命令將該目錄賦予oracle帳號所有,並擁有執行權限:
chmod -R 700 /home/oracle/database
chown -R oracle:oinstall /home/oracle/database
退出 root,以 oracle 身份登錄
設置oracle帳號登錄時環境(以oracle身份登錄):
編輯文件 vim /home/oracle/.bash_profile,添加如下行:
#安裝目錄
ORACLE_BASE=/opt/oracle
#oracle家目錄
ORACLE_HOME=$ORACLE_BASE/11gr2
#實例名
ORACLE_SID=orcl
LD_LIBRARY_PATH=$ORACLE_HOME/lib
PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH PATH
保存退出后執行如下命令使以上設置立即生效:
source /home/oracle/.bash_profile
開始安裝(以oracle身份登錄):
export LANG=en_US
#在x windows下的終端執行該程序開始安裝(
注意用oracle登錄x window,再運行runInstaller):
/home/oracle/database/runInstaller
以下將進入圖形安裝界面
輸入email,或者不輸入
不輸入email會有一個提示,點Yes繼續
選擇Create and configure a database
選擇Server Class
選擇Single instance database installation
選擇Advanced install
選擇 Enterpise Edition
安裝基目錄和Home目錄,由於已設置好環境變量Oracle_BASE和ORACLE_HOME,此處無需再選擇
以oinstall群組身份進行安裝
安裝General Puupose / Transaction Processing
由於已設置好環境變量ORACLE_SID,所以此步無需修改
安裝程序對環境進行檢查,由於CentOS的32bit程序包都是i686的,而Oracle要求i386,所以此處會失敗,忽略即可。點擊next。
如果不放心,可以手動每個包都檢查一下有沒有安裝。
[root@L2 /opt/oracle_install]# rpm -qa | grep libaio
libaio-devel-0.3.107-10.el6.x86_64
libaio-0.3.107-10.el6.x86_64
[root@L2 /opt/oracle_install]# rpm -qa | grep glibc
glibc-headers-2.12-1.209.el6_9.2.x86_64
glibc-2.12-1.209.el6_9.2.x86_64
glibc-devel-2.12-1.209.el6_9.2.x86_64
glibc-common-2.12-1.209.el6_9.2.x86_64
[root@L2 /opt/oracle_install]# rpm -qa | grep compat-libstdc
compat-libstdc++-33-3.2.3-69.el6.x86_64
[root@L2 /opt/oracle_install]# rpm -qa | grep libgcc
libgcc-4.4.7-18.el6.x86_64
[root@L2 /opt/oracle_install]# rpm -qa | grep libstdc
libstdc++-devel-4.4.7-18.el6.x86_64
libstdc++-4.4.7-18.el6.x86_64
compat-libstdc++-33-3.2.3-69.el6.x86_64
[root@L2 /opt/oracle_install]# rpm -qa | grep unixODBC
unixODBC-devel-2.2.14-14.el6.x86_64
unixODBC-2.2.14-14.el6.x86_64
點擊Password Management可設置相關管理帳號的密碼,由於前面已設過所以無需再設,直接點擊OK
以root身份登錄執行那兩個sh文件,如下圖左下角。
執行完成后,點擊OK,就大功告成了。
打開瀏覽器,輸入https://localhost:1158/em,可打開Database Control管理界面,則Oracle已經開始運行了。
安裝故障
故障1
如果是CentOS7安裝Oracle 11gr2,會報缺少pdksh。但是安裝時,又發現與ksh沖突。去卸載ksh又發現沒有安裝,最后上網找到答案,使用
i386的pdksh版本才行。
[root@bmtoracle /opt/oracle_install]# rpm -ivh
pdksh-5.2.14-21.x86_64.rpm
warning: pdksh-5.2.14-21.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 73307de6: NOKEY
Preparing... ################################# [100%]
file /usr/bin/ksh conflicts between attempted installs of pdksh-5.2.14-21.x86_64 and pdksh-5.2.14-21.x86_64
[root@bmtoracle /opt/oracle_install]# whereis ksh
ksh:[root@bmtoracle /opt/oracle_install]#
[root@bmtoracle /opt/oracle_install]#
[root@bmtoracle /opt/oracle_install]# which ksh
/usr/bin/which: no ksh in (/usr/local/jdk1.8.0/bin:/usr/local/jdk1.8.0/jre/bin:/usr/share/maven//bin:/usr/local/node//bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@bmtoracle /opt/oracle_install]# wget http://vault.centos.org/5.11/os/i386/CentOS/pdksh-5.2.14-37.el5_8.1.i386.rpm
[root@bmtoracle /opt/oracle_install]# rpm -ivh
pdksh-5.2.14-37.el5_8.1.i386.rpm
warning: pdksh-5.2.14-37.el5_8.1.i386.rpm: Header V3 DSA/SHA1 Signature, key ID e8562897: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:pdksh-5.2.14-37.el5_8.1 ################################# [100%]
故障2
x windows是root登錄,再切換到oracle用戶下去執行runInstaller,出現如下報錯。解決方法:先用oracle用戶登錄x winodws,
故障3
如果沒有設置相關目錄權限,則顯示如下錯誤。
