1. 程式人生 > >CentOS上oracle 11g R2數據庫安裝折騰記

CentOS上oracle 11g R2數據庫安裝折騰記

現在 unknown product 密碼登錄 緩沖 libstdc 字節 虛擬機 命令

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 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 解決方法:
lsmod | grep bridge
modprobe  bridge
lsmod | grep bridge
5.修改用戶的用戶的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數據庫安裝折騰記