在redhat上安裝oracle9i的詳細過程____oracle

來源:互聯網
上載者:User

    Oracle9i的安裝
    花費了周一和周二兩天的時間終於裝上了oracle,下面是安轉步驟,以備以後參考。
    在rh9(2.4.20-8)上安裝oracle9i(oracle9201)。


    1在rh的安裝過程中要注意四點
    一是硬碟空間要大一些,rh9全部安裝大約需要4.5G的空間,oracle9i資料庫大約需要2-2.5G的空間,所以檔案分區至少7G吧,太小了容易出問題,越大越好哈。
    二是為了執行Oracle9i標準安裝和建立原型(simple prototype)資料庫,Oracle建議Oracle9i(9.0.1)伺服器至少需要 512M 記憶體,兩倍記憶體或不少於 400M 的交換 (swap) 空間,我強烈建議設在1G左右,如果swap較小,例如512M,在資料庫建立階段會提示“out of memory”的錯誤。當然也可以通過建立臨時分頁檔臨時增加交換空間,代替使用原始裝置(raw device),方法如下:
    su -
    dd if=/dev/zero of=tmpswap bs=1k count=900000 註:約1G左右
    chmod 600 tmpswap
    mkswap tmpswap
    swapon tmpswap
    取消臨時交換空間,可以執行以下命令:
    su -
    swapoff tmpswap
    rm -rf tmpswap
    三是rh9要安裝英文的,在安裝時有兩次選擇機會,最好是兩次都安裝英文的。我在安裝時第一次選擇中文,第二次選擇英文,oracle還是有亂碼,登出後以英文環境登陸都不行。所以建議第一次選英文,第二次選英文和中文兩種,但是安裝oracle時必須是英文環境。
    四是要多安裝一些開發包,因為後續安裝時可能需要,只要你有空間完全可以全部安裝。


    2建立oracle使用者和組
    su -
    groupadd oinstall # group owner of oracle files
    groupadd dba #group of users to be granted with SYSDBA system privilege
    groupadd -g oinstall -G dba oracle
    passwd oracle


    3準備oracle檔案目錄
    su -
    mkdir -p /opt/ora9/product/9.2
    mkdir /var/opt/oracle
    chown oracle.dba /var/opt/oracle
    chown -R oracle.dba /opt/ora9
    註:我第一次安裝出現問題,就把or9/刪除了,又重新mkdir,但是忘了chown,結果再以oracle使用者安裝時提示沒有目錄操作許可權。


    4安裝支援軟體包
    su -
    運行以下命令,檢查開發包是否安裝
    rpm –q gcc cpp compat-libstdc++ glibc-devel glibc-kernheaders binutils
    如果其中任何一個沒有安裝,例如package cpp is not installed,則插入rh9的安裝盤,cdrom的掛載命令是
    mount -t iso9660 /dev/cdrom /mnt
    在RPMS檔案夾中找的cpp時則運行以下命令安裝
    rpm –ivh cpp-3.2.2-5.i386.rpm
    註:不同的rh版本中cpp的版本也是不一樣的


    5設定核心參數,調節號誌及共用記憶體
    開啟/etc/sysctl.conf檔案,將以下資料寫到末尾並儲存
    kernel.shmmax = 。
    註:為了安裝 oracle9i(9.2.0),需要增加所有rh版本的linux伺服器的最大共用記憶體(maximum shared memeory)。否則oracle資料庫配置助手(the Oracle Database Configuration Assistant)會顯示如下錯誤資訊:
    ORA-27123: unable to attach to shared memory segment unable to attach to share memory segment
    kernel.shmmni = 4096
    kernel.shmall = 2097152
    kernel.sem = 250 32000 100 128
    fs.file-max = 65536
    net.ipv4.ip_local_port_range = 1024 65000
    建議關於net.ipv4.ip_local_port_range不要改動,可以用cat /proc/sys/net/ipv4/ip_local_port_range看到rh9對這個所定義的範圍已經符合,而且連接埠範圍比這個小。
    其中kernel.shmmax是共用記憶體段的最大尺寸,kernel.shmmin是共用記憶體段的最小尺寸,進入/proc/sys/kernel可以用以下命令查看其數值。
    cat shmmax
    cat shmmni
    cat shmall
    而kernel.shmmax的計算方法一般是RAM(K)*1024*2,RAM的數值可以用以下命令查看。
    grep MemTotal /proc/meminfo
    MemTotal:        XXXX KB
    關於kernel.sem的數值,其中250是參數SEMMSL的值,32000是參數SEMMNS的值,100是參數SEMOPM的值,128則是參數SEMMNI的值。
    接下來,開啟/etc/security/limits.conf檔案,將以下資料寫入末尾並儲存,這是設定oracle對檔案的要求。
    oracle soft nofile 65536
    oracle hard nofile 65536
    oracle soft nproc 16384
    oracle hard nproc 16384


    6設定oracle的系統內容
    su - oracle
    編輯/home/oracle/.bashrc檔案,加入以下資料
    #oracle9i
    export ORACLE_BASE=/opt/ora9 註:等號前後不要有空格
    export ORACLE_HOME=/opt/ora9/product/9.2
    export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
    export ORACLE_OWNER=oracle
    export ORACLE_SID=ora9i 註:這個值唯一標示一個資料庫,可以更改,建議用大寫字母(小寫也可)
    export ORACLE_TERM=vt100
    export LD_ASSUME_KERNEL=2.4.1
    注:rh9預設使用本地POSIX線程庫(the Native POSIX Thread Library - NPTL),POSIX線程的linux改進實現。但是,由於使用了NPTL,oracle應用程式會引起一些問題,rh9沒有通過oracle9i認證。為了修正這些問題,你可以設定環境變數LD_ASSUME_KERNEL=2.4.1,通知系統使用原來的浮點堆棧linux線程(Linuxthreads with floating stacks)。否則會導致oracle安裝器runInstaller掛起、資料庫配置助手(the Database Configuration Assistant)dbca不能啟動等問題。
    export THREADS_FLAG=native
    export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH
    export PATH=/opt/ora9/product/9.2/bin:$PATH
    環境變數的配置非常關鍵,一定要留神。


    7解壓安裝檔案
    將下載的或者光碟片上的oracle9i安裝檔案拷貝到某個目錄,例如(光碟片)
    su -
    mkdir /mnt/oracle
    mount -t iso9660 /dev/cdrom /mnt
    waiting
    cp /mnt/cdrom/lux_920_disk* /mnt/oracle
    注意一般有三個安裝檔案lux_920_disk1.cpio.gz,lux_920_disk2.cpio.gz,lux_920_disk3.cpio.gz,還有每次換光碟片之前記得
    umount /dev/cdrom
    註:我之所以寫得這麼詳細是因為我是菜鳥哈,經常犯一些弱弱的錯誤:(
    現在開始解壓/mnt/oracle下的檔案,linux支援多線程的,開啟三個terminal,輸入以下指令
    terminal1#zcat lux_920_disk1.cpio.gz | cpio -idmv
    terminal2#zcat lun_920_disk2.cpio.gz | cpio -idmv
    terminal3#zcat lun_920_disk3.cpio.gz | cpio -idmv
    解壓過程中,自動在/mnt/oracle下建立了三個包含安裝檔案的目錄
    Disk1
    Disk2
    Disk3
    記住,熱身工作到此完畢,reset,一定要重啟嗎。不太清楚,可能上面設定的某些參數需要重啟才會生效。


    8安裝及錯誤處理
    su -
    export DISPLAY=localhost.localdomain:0.0
    xhost +localhost.localdomain
    其中的localhost.localdomain其實就是hostname,可以用命令hostname查看。
    註:上述兩項不設定的話會出錯,runinstaller無法運行,提示如下錯誤:
    Xlib:connection to “:0.0” refused by server
    Xlib:Client is not authorized to connect to Server
    上面這個問題好像比較複雜,我沒有仔細看。大概是oracle不再支援字元安裝模式,為了在遠端桌面上顯示runinstaller的介面,即X資訊,需要做相應的設定。注意,如果不使用Exceed,X顯示重連結機制不能工作在NT案頭機器之上。因為我是本地安裝,問題就簡單了哈:)
    然後切換到oracle使用者,開始安裝
    su - oracle
    cd /mnt/oracle/Disk1
    ./runinstaller
    你看激動人心的oracle安裝介面了嗎。嘻嘻
    oh baby,come on!
    剛開始安裝時需要輸入一些資訊,可參考下面幾項:
    ---what would you like as the base directory(Inventory Location)
    /opt/ora9/oraInventory
    ---unix group name(permission for updating oracle software)
    oinstall 註:也可以使用dba,但出於安全考慮不推薦使用dba
    ---full path name for oracle home
    /opt/ora9/product/9.2
    等等
    在接下來的安裝過程中一般會碰到四個問題。
    第一個問題是安裝介面字元亂碼,肯定是中文的原因,解決方案
    su - oracle
    export LANG=en_US:LANG
    註:我也碰到了這個問題,但是利用該解決方案沒有成功,最後我不得不重裝了一遍rh9,全英。如果有更好的辦法,請告訴我w_fenghui@sina.com.cn,但我還是建議裝英文系統。
    第二個問題是提示關於這個檔案ins_oemagent.mk的,解決方案,忽略,我們將在下面的步驟中修複它。
    第三個問題是提示"Error in invoking target install of makefile $ORACLE_HOME/ctx/lib/ins_ctx.mk",解決方案,編輯檔案$ORACLE_HOME/ctx/lib/env_ctx.mk,在"INSO_LINK ="行(第1365行)加入"$(LDLIBFLAG)dl",修改後如下:
    INSO_LINK = -L$(CTXLIB) $(LDLIBFLAG)m $(LDLIBFLAG)dl $(LDLIBFLAG)sc_ca $(LDLIBFLAG)sc_fa $(LDLIBFLAG)sc_ex $(LDLIBFLAG)sc_da $(LDLIBFLAG)sc_ut $(LDLIBFLAG)sc_ch $(LDLIBFLAG)sc_fi $(LLIBCTXHX) $(LDLIBFLAG)c -Wl,rpath,
$(CTXHOME)lib $(CORELIBS) $(COMPEOBJS)
    按"retry"鍵即可繼續。
    第四個問題是oracle agent configuration assistant啟動失敗,提示以下錯誤:
    parameter "nodeinfo"=NO_VALUE
    agent service failed
    該問題的解決方案是---我不知道:(
    因為我沒有用到agentctl服務,所以就沒有解決該問題,一般用不到吧。解決該問題需要補丁包的。
    最後,還需要根據提示,用root使用者執行一次 $ORACLE_HOME/root.sh,Oracle軟體就初步安裝完了。
    我們回頭來解決上邊的那個ins_oemagent.mk問題。以oracle使用者執行:
    cd $ORACLE_HOME/network/lib
    make -f ins_net_client.mk install
    編輯$ORACLE_HOME/ctx/lib/ins_ctx.mk檔案的第13-14行,由:
    ctxhx: $(CTXHXOBJ)
    $(LINK) $(CTXHXOBJ) $(INSO_LINK)
    改為
    ctxhx: $(CTXHXOBJ)
    $(LINK) -ldl $(CTXHXOBJ) $(INSO_LINK)
    然後執行
    make -f $ORACLE_HOME/ctx/lib/ins_ctx.mk install
    現在,Oracle 軟體已經完整安裝成功,你可以用dbca命令來建立資料庫,或者執行其他DBA命令啦。


    9經驗總結
    一:動不動就重裝不是解決問題的辦法,碰到問題去網上查一下,你碰到的問題估計其他人早就碰到了
    二:如果因為其他原因安裝未成功,請在再次運行之前,清除以下檔案:
    /etc/oraInst.loc /etc/oratab /tmp/<OtherOracleOwnerFile> $ORACLE_BASE/*

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.