CentOS上oracle 11g R2數據庫安裝折騰記
1.虛擬機上centos鏡像的獲取。這裏推薦網易鏡像站中的CentOS7版本(其他開源鏡像站亦可)。這裏給出鏈接:
http://mirrors.163.com/centos/7.3.1611/isos/x86_64/CentOS-7-x86_64-DVD-1611.iso
ps:這是64位的,現在也很少人使用32位系統了吧。安裝CentOS系統(網上教程很多,這裏不再贅述)
ps:最好留著10G左右的空留空間(安裝包就有2G,再加上最後安裝的體積,多留點,筆者安裝時就不夠用了,到時候虛擬機中擴空間也是十分麻煩的事情)
ps:內存最好2G及2G以上
2.oracle安裝包獲取。百度貼吧中的Oracle安裝包大多是Windows系統版本的。我們需要的是Linux版本的,這裏推薦直接從官網獲取:
http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_1of2.zip
http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_2of2.zip
這裏有兩個包,但是直接單擊鏈接的話,會提示需要登錄oracle賬戶才能下載。因此這裏筆者推薦使用下載軟件(筆者使用的迅雷9)直接添加下載鏈接,進行下載
3.下載完成後,解壓到當前文件夾。會出現一個database的文件夾。安裝包的準備工作就此完成。重頭戲和麻煩事來了。
在CentOS的終端中切換到root用戶,我們需要更新一些包。切換命令:
su
之後輸入root用戶密碼(r如果是初次使用root用戶,這裏會提示設置密碼)
之後我們需要更新下面這些包(版本比下述高即可,有些已有最新版的,系統不會更新,這時候直接下一個就可以):
binutils-2.17.50.0.6 compat-libstdc++-33-3.2.3 (33表示3.3版,296表示2.96版) elfutils-libelf-0.125 elfutils-libelf-devel-0.125 elfutils-libelf-devel-static-0.125 gcc-4.1.2 gcc-c++-4.1.2 glibc-2.5-24 glibc-common-2.5 glibc-devel-2.5 glibc-headers-2.5 kernel-headers-2.6.18 ksh-20060214 libaio-0.3.106 libaio-devel-0.3.106 libgcc-4.1.2 libgomp-4.1.2 libstdc++-4.1.2 libstdc++-devel-4.1.2 make-3.81 numactl-devel-0.9.8.i386 sysstat-7.0.2 unixODBC-2.2.11 (官方文檔裏面沒有寫) unixODBC-devel-2.2.11
安裝命令示例:
yum install gcc
包後無需跟版本號,其他的包類似。
4.開始安裝前我們首先要配置內核參數,保證Oracle的正常運行(Oracle啟動需要較多的資源)。配置如下:
修改文件/etc/sysctl.conf,這裏筆者使用
gedit /etc/sysctl.conf
打開文件修改一下內容,有責略過,沒有責添加
修改如下:
kernel.shmall=4294967296 kernel.shmmax=68719476736 fs.file-max=6815744 fs.aio-max-nr=1048576 kernel.shmmni=4096 kernel.sem=800 113600 800 142 net.ipv4.ip_local_port_range=1024 65500 net.core.rmem_default=262144 net.core.rmem_max=4194304 net.core.wmem_default=262144 net.core.wmem_max=1048576
各參數意義如下:
(1)shmmax:該參數定義了共享內存段的最大尺寸(以字節為單位),通常將其設置為2G或更大。
(2)shmmni:用於設置系統範圍內共享內存段的最大數量。默認值是 4096 ,通常不需要更改。 (3)shmall:該參數表示系統一次可以使用的共享內存總量(以頁為單位)。缺省值就是2097152,如系統自動生成則不需要修改。 (4)sem:該參數表示設置的信號量,當oracle DB初始化參數文件中PROCESSES參數設置較大時,需要調整SEM設置如:kernel.sem = 250 32000 100 128各數據段含義如下。 SEMMSL SEMMNSSEMOPM SEMMNISEMMSL應該設置為服務器中各個實例中最大的PROCESSES參數+10,如當最大的PROCESSES參數為5000時,SEMMSL應設置為5010。
SEMMNS參數應設置為SEMMSL*SEMMNI,如例SEMMSL為5010,SEMMNS參數應為(5010*128)=641280。 SEMOPM參數應設置與SEMMSL參數相同,接上例此處應設置為5010
(5)file-max:該參數表示文件句柄的最大數量。文件句柄設置表示在linux系統中可以打開的文件數量。
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 解決方法:
lsmod | grep bridge modprobe bridge lsmod | grep bridge5.修改用戶的用戶的SHELL的限制,修改/etc/security/limits.conf文件 輸入命令:
gedit /etc/security/limits.conf加入內容下面內容:並保存退出
oracle soft nproc 4096 oracle hard nproc 16384 oracle soft nofile 4096 oracle hard nofile 65536 oracle soft stack 10240
6.修改/etc/pam.d/login 文件,輸入命令:gedit /etc/pam.d/login,將下列內容加入該文件。
session required /lib64/security/pam_limits.so session required pam_limits.so
7.編輯 /etc/profile ,輸入命令:gedit /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
8.創建oracle用戶和安裝目錄
ps:安裝目錄可以之後用oracle賬戶登錄系統後通過圖形化界面創建
創建用戶和用戶組,輸入命令:
groupadd oinstall //創建Oracle Inventory 組 groupadd dba //創建組群DBA 組 useradd -g oinstall -G dba oracle //創建Oracle軟件擁有者(-g表示輔助組,-G表示主組)(還可以在後面接-d dir,表示用戶的家目錄的位置,默認普通用戶的家目錄在/home下) passwd oracle //修改oracle用戶的密碼
之後設置密碼(Linux中密碼不會顯示,也不會顯示“*“,這裏不要懷疑自己鍵盤壞了)
之後我們創健安裝目錄(可之後登錄後用圖形化界面創健)
mkdir -p /home/oracle/app #基目錄 mkdir /home/oracle/app/oraInventory #該目錄就像Windows下的註冊表文件,每當有軟件安裝,就會向裏面寫一些註冊表 mkdir /home/oracle/app/oracle #oracle數據庫目錄 mkdir /home/oracle/app/oracle/product #oracle實例目錄
更改目錄屬主為Oracle用戶所有(防止安裝過程中發生權限不夠的問題),輸入命令:
chown -R oracle:oinstall /home/oracle/app chmod -R 775 /home/oracle/app/
9.配置oracle用戶的環境變量,要在oracle用戶下進行操作,輸入:
su oracle
之後輸入上一步自己設置的密碼登錄,輸入vim /home/oracle/.bash_profile,按I鍵進入插入模式,在裏面輸入回車後,先按ESC鍵,再按:wq退出
之後我們再輸入gedit /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 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 JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH export erase ^h #用於消除換車鍵產生的亂碼
10.安裝前準備
重啟CentOS系統,用Oracle賬戶登錄
將第3步中的database文件夾拷貝進入home文件夾中。
(之前沒有新建文件夾的此時可以新建)
11.開始安裝。
輸入命令切換到database中,再輸入安裝命令
cd /database
./runInstaller
12.安裝過程
這一步之後或者之前都可能出現一個問題(筆者出現很多次,折騰了幾天),問題如下圖:
這時候安裝界面突然暗下來,然後正中間出現一條豎線。這時候就會卡死不動。其實這是一個窗口,但是Linux的圖形界面你懂得,沒有顯示出來。這時候按下Enter鍵可能會進入下一步。如果沒有,就將密碼改成8位以上包括大寫字母,小寫字母,數字,檢車下上面的安裝路徑是否正確。之後點next,按enter鍵。後面出現這個問題同樣卡死的時候,可以試試按下右移鍵,再按回車。
安裝快完成時,系統會提示你需要用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
至此安裝完成!
CentOS上oracle 11g R2數據庫安裝折騰記