Red Hat Enterprise Linux 4 下安裝 Oracle 10g

來源:互聯網
上載者:User

上周用VM在RHEL4下裝了oracle10.2,中間碰到不少問題。
總結了一下發個貼子,若有不足之處,請大家指正,謝謝!

參考資料:
Oracle官方網站: http://download.oracle.com/docs/html/B10813_01/toc.htm  
國外非Oracle官方網站: http://www.puschitz.com/Installi ... uxErrorsAndProblems

一、以root使用者登入, 進行如下操作:

1 檢查硬體要求
  * 主要包括:

  1.   **********************************************
  2.   * 記憶體:                              >=512M                                     *
  3.   * 交換空間:                         1.0 GB或者2倍記憶體大小 *
  4.   * 臨時空間(/tmp>):>=400M                                               *
  5.   * 軟體所需空間:   >=2.5G                                                  *
  6.   * 資料庫檔案:     >=1.2G                                                  *
  7.   **********************************************

複製代碼

  # cat /etc/issue
  # uname -r
  # grep "model name" /proc/cpuinfo
  # grep MemTotal /proc/meminfo
  # grep SwapTotal /proc/meminfo
  # free
  # df -k /tmp
  # df -k
  
2 檢查軟體要求(安裝軟體包)
  說明:雖然官方文檔只要求如下幾個軟體包(具體版本號碼可能不一樣),
            但實際上在真正安裝的時候,往往需要更多.
            binutils-2.15.92.0.2-10.EL4
            compat-db-4.1.25-9
            control-center-2.8.0-12
            gcc-3.4.3-9.EL4
            gcc-c++-3.4.3-9.EL4
            glibc-2.3.4-2
            glibc-common-2.3.4-2
            gnome-libs-1.4.1.2.90-44.1
            libstdc++-3.4.3-9.EL4
            libstdc++-devel-3.4.3-9.EL4
            make-3.80-5
            pdksh-5.2.14-30
            sysstat-5.0.5-1
            xscreensaver-4.18-5.rhel4.2
         
   2.1 首先,在你的RHEL光碟片裡找到如上RPM包;

   2.2 然後,執行以下命令:
         # rpm -Uvh binutils*   
         # rpm -Uvh compat-db*            
         # rpm -Uvh control-center*        
         # rpm -Uvh gcc-3.4*               
         # rpm -Uvh gcc-c++*            
         # rpm -Uvh glibc-2.3*               
         # rpm -Uvh glibc-common*           
         # rpm -Uvh gnome-libs*     
         # rpm -Uvh libstdc++-3.4*         
         # rpm -Uvh libstdc++-devel*   
         # rpm -Uvh make*                  
         # rpm -Uvh pdksh*               
         # rpm -Uvh sysstat*               
         # rpm -Uvh xscreensaver*     
                  
        說明:若執行以上命令時提示須安裝其它,則再從RHEL4的安裝盤拷貝相應的包,然後再繼續安裝
  
3 建立安裝資料庫的使用者、組和安裝目錄
   3.1 建立使用者和相關的組
         # /usr/sbin/groupadd oinstall
         # /usr/sbin/groupadd dba
         # /usr/sbin/useradd -g oinstall -G dba oracle 
         # passwd oracle  

  3.2 建立相關目錄並授權

  1.        # mkdir -p /usr/app/oracle (the Oracle base directory)
  2.        # mkdir -p /usr/oradata    (an optional Oracle datafile directory)
  3.        # chown -R oracle:oinstall /usr/app/oracle /usr/oradata
  4.        # chmod -R 77

複製代碼

  
4 配置核心參數
   4.1 修改核心參數並檢查
         4.1.1 修改參數
                  # vi /etc/sysctl.conf
                  說明:在該檔案末尾加入如下內容:
                   kernel.shmmax = 2147483648
                   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.core.rmem_default=262144
                   #net.core.rmem_max=262144
                   #net.core.wmem_default=262144
                   #net.core.wmem_max=262144
        
      4.1.2 啟用新參數
               # /sbin/sysctl -p

      4.1.3 檢查參數
               # /sbin/sysctl -a | rpm sem
               # /sbin/sysctl -a | rpm shm
               # /sbin/sysctl -a | rpm file-max
               # /sbin/sysctl -a | rpm ip_local_port_range
  
  4.2 設定oracle使用者的shell限制
        4.2.1 編輯limits.conf
                 # vi /etc/security/limits.conf
                 說明:添加如下的行
                  # nofile(可開啟的檔案描述符的最大數)和nproc(單個使用者可用的最大進程數量)
                   *               soft    nproc   2047
                   *               hard    nproc   16384
                   *               soft    nofile  1024
                   *               hard    nofile  65536

      4.2.2 編輯/etc/pam.d/login,添加1行:
               # vi /etc/pam.d/login
               session    required     /lib/security/pam_limits.so
            
       4.2.3 編輯/etc/profile,添加如下部分:

  1.                 # vi /etc/profile                 
  2.                             if [ $USER = "oracle" ]; then  
  3.                                           if [ $SHELL = "/bin/ksh" ]; then  
  4.                                               ulimit -p 16384  
  5.                                               ulimit -n 65536  
  6.                                            else  
  7.                                               ulimit -u 16384 -n 65536  
  8.                                            fi  
  9.                                        fi

複製代碼

               5 裝載CD,或上傳並解壓縮檔案
   5.1 若裝載CD:
         # mount /media/cdrom
      
   5.2 若上傳並解壓縮檔案
         5.2.1 上傳:可用ftp命令或ftp工具
         5.2.2 解壓縮:
                  # unzip 10201_database_linux32.zip -d /tmp/oracle
         5.2.3 改變屬主和許可權:
                  # chown oracle /tmp/oracle
                  # chmod -R +755 /tmp/oracle
   
   5.3 設定在安裝Oracle的機器上以oracle使用者安裝

  1.          # xhost localhost:oracle

複製代碼

                        
            
二、以oracle使用者登入, 進行如下操作

1 配置oracle使用者的環境變數
  1.1 切換到Oracle使用者
       # su - oracle
      $ cd
                        
  1.2 設定環境變數
       $ vi .bash_profile (在檔案後面添加如下內容)      
        export ORACLE_BASE=/usr/app/oracle
        export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
        export ORACLE_SID=SHDB
        export PATH=$PATHHOME/binORACLE_HOME/bin
        export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
        export LANG=zh_CN.GBK
        export NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK
        1.3 使環境變數生效
       $ source .bash_profile
      
  1.4 設定本地字元集類型
       $ export LC_CTYPE=en_US.UTF-8
      
2 開始安裝
  說明:為了便於後結安裝,最好在安裝前開啟兩個shell視窗,1個以root登入,另外1個以oracle登入
  
  2.1 $ ./runInstaller
  
  2.2 根據安裝提示進行相應操作,中間需要root執行2個指令碼:
       # $ORACLE_BASE/oraInventory/orainstRoot.sh
      # $ORACLE_HOME/root.sh
      說明:把$ORACLE_BASE和$ORACLE_HOME替換成實際的目錄即可
   
  2.3 安裝過程中,不要選擇建立資料庫;
  
  其它就沒什麼了,只鬚根據提示進行相應操作,直至安裝成功。
  
  
三、安裝過程的問題

1 Q: 執行./runInstaller後,彈不出安裝介面,提示如下錯誤資訊:
  ---------------------------------------------------------------------------------------------
  Xlib: connection to ":0.0" refused by server
  Xlib: No protocol specified
  Error: Can't open display: :0.0
        
  A: 在安裝Oracle的機器上,以root身份運行命令:
     

  1. # xhost localhost:oracle

複製代碼

2 Q:安裝時,彈出的介面出現亂碼
  ---------------------------------------------------------------------------------------------
  A:以oracle使用者身份,設定本地字元集類型
     $ export LC_CTYPE=en_US.UTF-8

3 Q:安裝過程中,提示OUI-10066錯誤:
     Not all the dependencies for the component Oracle Database 10g 10.2.0.1.0 could be found.
     Missing component oracle.doc 10.2.0.1.0.
  ---------------------------------------------------------------------------------------------
  A:可能是oracle安裝檔案沒有完全解壓縮,重新解壓縮一下再安裝
     注意:若用root解壓後,更改其屬主為oracle

4 Q:INFO: /bin/sh: /usr/bin/gcc: No such file or directory
     ......
     INFO: cannot stat `ntcontab.o'
     INFO: No such file or directory
     ......
     Exception Name: MakefileException
     Exception String: Error in invoking target 'ntcontab.o' of   
     makefile '/usr/app/oracle/product/10.2.0/db_1/network/lib/ins_net_client.mk'   
  ---------------------------------------------------------------------------------------------
  A: 檢查Linux系統的所有補丁是否安裝,尤其是gcc包,然後再繼續安裝

四 建立與設定資料庫(使用oracle使用者登入RHEL)
   
1 建立資料庫
1.1 以oracle使用者登入RHEL, 輸入:
    $ dbca
1.2 在輸入資料庫SID時, 要注意保持與oracle設定檔的$ORACLE_SID的值一致.
    否則,建立完資料庫後就啟動不了(具體看下節).
     
2 佈建服務名
  修改listener.ora
  $ vi $ORACLE_HOME/network/admin/tnsname.ora   
    增加以下內容:
   --------------------------------------------------------------------------
   # 說明: 把HOST的值設定為你要安裝資料庫那台機器的IP
         SHDB =
           (DESCRIPTION =
             (ADDRESS_LIST =
               (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.135.128)(PORT = 1521))
             )
             (CONNECT_DATA =
               (SERVICE_NAME = SHDB)
             )
           )

3 設定資料庫的監聽器
  3.1 修改listener.ora
     $ vi $ORACLE_HOME/network/admin/listener.ora   
       輸入以下內容:
     --------------------------------------------------------------------------
     # 說明: 把HOST的值設定為你要安裝資料庫那台機器的IP
     LISTENER =                                                            
        (DESCRIPTION_LIST =                                                
           (DESCRIPTION =                                                   
              (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))                    
                 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.135.128)(PORT = 1521))
               )                                                                 
         )                                                                  
                                                                  
     SID_LIST_LISTENER =                                                   
        (SID_LIST =                                                         
            (SID_DESC =                                                      
               (SID_NAME = PLSExtProc)                                         
                  (ORACLE_HOME = /usr/app/oracle/product/10.2.0/db_1)            
                     (PROGRAM = extproc)                                             
                   )                                                                 
               (SID_DESC =                                                      
                  (SID_NAME = SHDB)                                               
                  (ORACLE_HOME = /usr/app/oracle/product/10.2.0/db_1)            
                )                                                                 
          )
                     
3.2 啟動監聽器
     $ lsnrctl start

4 啟動資料庫                                    
  $ sqlplus / as sysdba
  $ startup
  若資料庫能正常啟動, 則配置到此結束

五、設定資料庫的問題
   
1 Q: TNS-01155: Incorrectly specified SID_LIST
     NL-00303: syntax error in NV string  
  ---------------------------------------------------------------------------------------------
  A: 可能是profile中設定的sid和你建立的DB的SID不一致

     (1) 查看資料庫的SID是否與.bash_profile的ORACLE_SID一致
         $ echo $ORACLE_SID
        $ ls $ORACLE_HOME/dbs/init*.ora
           
     (2) 修改.bash_profile的ORACLE_SID為你建立DB的SID, 然後儲存並生效
         $ source .bash_profile
           
     (3) 建立pfile
         $ sqlplus /nolog
         SQL> connect /as sysdba
         SQL> create pfile='/usr/app/oracle/product/10.2.0/db_1/initSHDB.ora' from spfile='/usr/app/oracle/product/10.2.0/db_1/dbs/spfileSHDB.ora';
         SQL> startup pfile='/usr/app/oracle/product/10.2.0/db_1/initSHDB.ora'
         或
          SQL> startup nomount pfile='/usr/app/oracle/product/10.2.0/db_1/initSHDB.ora'
         或
          SQL> startup
        說明: 把pfile和spfile的路徑修改成這兩個檔案在系統的實際位置即可
      
2 Q: ORA-01102:cannot mount database in EXCLUSIVE mode
  ---------------------------------------------------------------------------------------------
  A: 可能是關閉異常,造成資料庫已經裝載或共用的假象,而造成以下問題:

     (1) "lk<sid>" and "sgadef<sid>.dbf"這兩個用於鎖記憶體的檔案存在著。
           oracle$cd $ORACLE_HOME/dbs
          oracle$ls -l sgadef<sid>.dbf
         * 如果存在刪掉它
             oracle$rm sgadef<sid>.dbf
           oracle$ls -l lk<sid>
         * 如果存在刪掉它
             oracle$rm lk<sid>
               
     (2) pmon、smon、lwgw及dbwr這些後台進程依然存在著
           oracle$ps -ef | grep ora_ | grep $ORACLE_SID
         * 如果有pmon這些後台進程的殘留,kill -9掉它
           oracle$kill -9 pid
            
     (3) Oracle開闢的共用記憶體沒有釋放掉
           ① 清共用記憶體段
              oracle$ipcs -m   --顯示一下,看owner是Oracle使用者的
              oracle$ipcrm -m <Shared_Memory_ID>
          ② 清訊號集
               oracle$ipcs -s   --顯示一下,看owner是Oracle使用者的
               oracle$ipcrm -s <Semaphore_ID>
http://www.itpub.net/thread-910255-1-1.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.