參考手冊:http://docs.oracle.com/cd/E11882_01/nav/portal_11.htm/Database Quick Installation Guide for Linux x86-64
一,前期准備:
1,環境說明:
Linux:64位Centos release 6.5 (Final)
Oracle:linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip
方式:通過本地虛擬機給遠程服務器安裝oracle
2, 在線安裝Oracle需要的RPM支持包(選擇x86_64的devel類型的安裝包,如果沒有聯網,可以去ISO安裝文件里面去找,
注意不同的操作系統版本對應的安裝包不一樣,下面是基於RedHat5的安裝要求,centos是基於RedHat的):
1. binutils-2.17.50.0.6
2. compat-libstdc++-33-3.2.3 (33表示3.3版,296表示2.96版)
3. elfutils-libelf-0.125
4. elfutils-libelf-devel-0.125
5. elfutils-libelf-devel-static-0.125
6. gcc-4.1.2
7. gcc-c++-4.1.2
8. glibc-2.5-24
9. glibc-common-2.5
10. glibc-devel-2.5
11. glibc-headers-2.5
12. kernel-headers-2.6.18
13. ksh-20060214
14. libaio-0.3.106
15. libaio-devel-0.3.106
16. libgcc-4.1.2
17. libgomp-4.1.2
18. libstdc++-4.1.2
19. libstdc++-devel-4.1.2
20. make-3.81
21. numactl-devel-0.9.8.i386
21. numactl-devel-0.9.8.i386
22. sysstat-7.0.2
23. unixODBC-2.2.11 (官方文檔里面沒有寫)
24. unixODBC-devel-2.2.11
說明:安裝之前可以先通過rpm -qa | grep binutils 來檢查本機上已經安裝的包,然后在安裝未安裝的包。這些包在系統安裝文件ISO里面有。
3,開始安裝前我們首先要配置內核參數,保證Oracle的正常運行(Oracle啟動需要較多的資源)。配置如下:
修改文件/etc/sysctl.conf,用vi /etc/sysctl.conf打開文件修改一下內容,有責略過,沒有責添加。

編輯完成后按Esc鍵,輸入“:wq”存盤退出 各參數意義如下:
(1)shmmax:該參數定義了共享內存段的最大尺寸(以字節為單位),通常將其設置為2G或更大。
(2)shmmni:用於設置系統范圍內共享內存段的最大數量。默認值是 4096 ,通常不需要更改。
(3)shmall:該參數表示系統一次可以使用的共享內存總量(以頁為單位)。缺省值就是2097152,如系統自動生成則不需要修改。
(4)sem:該參數表示設置的信號量,當oracle DB初始化參數文件中PROCESSES參數設置較大時,需要調整SEM設置如:kernel.sem = 250 32000 100 128各數據段含義如下。 SEMMSL SEMMNSSEMOPM SEMMNI
SEMMSL應該設置為服務器中各個實例中最大的PROCESSES參數+10,如當最大的PROCESSES參數為5000時,SEMMSL應設置為5010。
SEMMNS參數應設置為SEMMSL*SEMMNI,如例SEMMSL為5010,SEMMNS參數應為(5010*128)=641280。 SEMOPM參數應設置與SEMMSL參數相同,接上例此處應設置為5010
(5)file-max:該參數表示文件句柄的最大數量。文件句柄設置表示在linux系統中可以打開的文件數量。
(6)rmem_default — 默認的TCP/IP接收緩沖大小
(7)rmem_max — 最大的TCP/IP接收窗口的大小
(8)wmem_default — 默認的TCP/IP發送窗口大小
(9)wmem_max — 最大的TCP/IP發送窗口的大小
要使 /etc/sysctl.conf 更改立即生效,執行以下命令: > sysctl -p
可能出現如下錯誤:
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
解決方法:
>lsmod | grep bridge
>modprobe bridge
>lsmod | grep bridge
如果還有其他的出錯,那就是配置文件輸入時的拼寫錯誤。
4,修改用戶的SHELL的限制,修改/etc/security/limits.conf文件 輸入命令:vi /etc/security/limits.conf,按i鍵進入編輯模式,加入內容。
oracle soft nproc 4096
oracle hard nproc 16384
oracle soft nofile 4096
oracle hard nofile 65536
oracle soft stack 10240
編輯完成后按Esc鍵,輸入“:wq”存盤退出.
5,修改/etc/pam.d/login 文件,輸入命令:vi /etc/pam.d/login,按i鍵進入編輯模式,將下列內容加入該文件。
session required /lib
64/security/pam_limits.so
session required pam_limits.so
備注:如果安裝的Oracle是32為的,第一行就應該是 session required /lib/security/pam_limits.so,否則登錄時會出現循環登錄。
6,編輯 /etc/profile ,輸入命令:vi /etc/profile,按i鍵進入編輯模式,加入下列內容。

7,創建Oracle用戶和安裝目錄。
創建用戶和用戶組,輸入命令:
>groupadd oinstall //創建Oracle Inventory 組
>groupadd dba //創建組群DBA 組
>useradd -g oinstall -G dba oracle //創建Oracle軟件擁有者(-g表示輔助組,-G表示主組)(還可以在后面接-d dir,表示用戶的家目錄的位置,默認普通用戶的家目錄在/home下)
>passwd oracle
//修改oracle用戶的密碼
創建安裝目錄:
>mkdir -p /home/oracle/app #基目錄
>mkdir /home/oracle/app/oraInventory #該目錄就像Windows下的注冊表文件,每當有軟件安裝,就會向里面寫一些注冊表
>mkdir /home/oracle/app/oracle #oracle數據庫目錄
>mkdir /home/oracle/app/oracle/product #oracle實例目錄
>mkdir /home/oracle/app/oracle/product #oracle實例目錄
更改目錄屬主為Oracle用戶所有(防止安裝過程中發生權限不夠的問題),輸入命令:
>chown -R oracle:oinstall /home/oracle/app
>chmod -R 775 /home/oracle/app/
8,配置oracle用戶的環境變量,要在oracle用戶下進行操作,輸入:
>su oracle
>vi /home/oracle/.bash_profile
export EDITOR=vi
export ORACLE_SID=orcl #實例名
export ORACLE_BASE=/home/oracle/app
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
export INVENTORY_LOCATION=/home/oracle/app/oraInventory
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export NLS_LANG="American_america.zhs16gbk"
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin
umask 022
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export erase ^h #用於消除換車鍵產生的亂碼
補充:如果我們的Linux是mini安裝的,那么就沒有JDK,我們需要安裝它: yum install java-1.7.0-openjdk-devel.x86_64 -y
注意,安裝的目錄默認就是上面的JAVA_HOME,但是后面的版本數字可能會不一樣,需要改動。
二,安裝Oracleuyn
1,安裝准備
1)退出系統以Oracle用戶登陸。
2)首先將Oracle軟件安裝包復制到linux系統中的一個目錄下,確保Oracle用戶對此目錄有足夠權限。
3)打開一個終端,運行unzip命令解壓oracle軟件安裝包。
2)首先將Oracle軟件安裝包復制到linux系統中的一個目錄下,確保Oracle用戶對此目錄有足夠權限。
3)打開一個終端,運行unzip命令解壓oracle軟件安裝包。

解壓完成后生成新目錄database,進入解壓后的database目錄查看。

2.1,開始安裝(系統安裝有圖形化界面)
[ oracle@localhost database ]$ ./runInstaller
安裝報錯:

這種錯誤有可能發生,也有可能不發生,主要是因為Oracle的安裝需要可視化界面。
解決:

如果解決不了,退出登錄,重新用Oracle用戶登錄,然后用Oracle用戶執行startx開啟圖形化界面。
2.2,開始安裝(系統沒有安裝圖形化界面或者是通過ssh遠程安裝oracle)
在這種情況是不能直接安裝,因為Oracle的安裝需要圖形化界面,可以通過Xmanager實現,添加配置如下:
(1)安裝Xmanager,打開Xmanager下的Xmanager - Passive,用戶接收顯示ssh傳來的圖形化界面。
(2)重新編輯配置文件:vi /home/oracle/.bash_profile,增加一行:
export DISPLAY=192.168.178.1:0.0 #192.168.178.1是安裝Xmanager物理主機的真實IP地址。后面的0.0應該是Xmanager的圖形界面認證標識

(3)[ oracle@localhost database ]$ ./runInstaller

3,安裝過程


選擇常見一個數據庫和配置一個數據庫:

創建一個桌面版數據庫:






(注意)安裝快完成時,系統會提示你需要用root權限執行2個shell腳本。 按照其提示的路徑 執 行/home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh 和 /home/oracle/ oraInventory/orainstRoot.sh,安裝完成會有提示信息。 執行命令:①>cd /home/oracle/app/oracle/product/11.2.0/dbhome_1
>sh root.sh #當中有個敲回車的點
② >cd /home/oracle/app/oraInventory
>sh orainstRoot.sh

close:

三,啟動執行Oracle
1,執行>sqlplus / as sysdba
SQL>select TABLE_NAME from user_tables;
報錯:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not existLinux-x86_64
Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0
這種問題可能會出現,也可能不會出現,一般是
ORACLE_HOME 和ORACLE_SID環境變量的錯誤,也有可能是Oracle實例沒有啟動,剛好我兩種都碰到了。首先我在ORACLE_HOME前面多加了個斜杠,注意最后面也不能有斜杠:
>
echo $ORACLE_HOME
//home/oracle/app/oracle/product/11.2.0/dbhome_1
>echo $ORACLE_SID
>orclps -ef | grep smon
執行>vi /home/oracle/.bash_profile查看文件內容:

如果僅僅是修改了上面的錯誤,還是會報出同樣的錯誤,那是因為我們的oracle數據庫實例沒有啟動,看下一步。
2,修改后,重啟Linux,啟動Oracle實例
>sqlplus / as sysdba #注意第一次登陸必須要用管理員的身份登陸(無需密碼),因為只有管理員才有啟動實例的權限。
>
startup

成功啟動oracle。
3,切換用戶,操作數據庫。
四,當你進入sqlplus后,發現無法使用上下鍵來翻出歷史命令,我們可以使用第三方工具包解決該問題。
(1)到官網下載rlwrap-0.42.tar.gz包;
(2)上傳到Linux,然后執行 tar -zxvf rlwrap-0.30.tar.gz 解壓;
(3)進入解壓目錄,編譯配置文件 ./configure,此時可能會報出如下錯誤:

這是因為缺少readline相關包,執行yum list | grep readline 可以找到這些包,執行yum -y install readline*
(4)如果報錯,解決后,重新編譯直到無誤,然后編譯安裝軟件make ; make install;
(5)編輯Oracle用戶配置文件:vi /home/oracle/.bash_profile,添加如下兩行:
alias sqlplus=‘rlwrap sqlplus'
alias rman='rlwrap rman'
OK,這樣就可以像Windows下一樣通過上下翻動調出sqlplus的歷史命令了。
至此安裝完畢!