Centos6.5靜默安裝Oracle 10 g

安裝基礎服務

  • 安裝說明

    • 有的云服務環境只能提供web的方式連接linux服務器,導致安裝Oracle的時候不能使用Xstart進行圖形化界面安裝,所以只能使用靜默的方式進行安裝
  • 安裝前準備

    • 需要把centos6.5的兩張ISO鏡像掛載到服務器本地磁盤上,進行本地yum源已經安裝依賴,切記需要兩張iso鏡像光盤不然有問題
  • swap交換分區設置

SWAP與RAM的大小配置關系
    1)、RAM為1-2GB時,SWAP大小建議為RAM大小的1.5倍
    2)、RAM為2-16GB時,SWAP大小建議與RAM大小相等
    3)、RAM大于16GB時,SWAP大小建議為16GB
    
  • 安裝需要依賴的相關包
yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc* gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make  gcc* libXp*  libXp.i686 libXt.i686 libXtst.i686    libXp-devel.i686 libXt-devel.i686 libXtst-devel.i686  

  • 修改系統參數

    • ln -s /lib/libc.so.6 /lib/libc.so.5
    • vim /etc/ld.so.conf 修改成如下
    include ld.so.conf.d/*.conf  /usr/X11R6/lib/
    
    • 修改Hosts
    192.168.127.1 oracle
    
    • vim /etc/sysconfig/network
    HOSTNAME= oracle
    
    • 重啟網絡服務
    service network restart 
    
    • 修改內核參數
    kernel.shmall = 2097152 
    kernel.shmmax = 2147483648 
    kernel.shmmni = 4096 
    kernel.sem = 250 32000 100 128 
    fs.file-max = 65536 
    net.ipv4.ip_local_port_range = 1024 65000 
    net.core.rmem_default = 1048576 
    net.core.rmem_max = 1048576 
    net.core.wmem_default = 262144 
    net.core.wmem_max = 262144
    
    • 刷新修改的內核參數
    sysctl -p
    
    • 修改oracle用戶使用環境限制, vim /etc/security/limits.conf
    在# End of file 的上面的行上添加,#\*  為轉義符
    \*                soft      nproc            2047
    \*                hard      nproc           16384
    \*                soft      nofile            1024
    \*                hard      nofile           65536
    
    • 修改登陸配置文件,編輯vim /etc/pam.d/login,在文件的最下面進行添加,#* 為轉義符
    \* session required /lib/security/pam_limits.so
    \* session required pam_limits.so
    
    • 修改 /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
- 修改Linux 發行版本. 因為Oracle10G發行的時候, Centos6.5還沒有發行. 所以必須修改,vim /etc/redhat-release
redhat-4
```

安裝oracle

  • 基礎設置

    ROOT用戶,創建oracle用戶:
    groupadd oinstall  創建主組 
    groupadd dba  創建副組
    useradd -g oinstall -G dba oracle  創建oracle用戶并且賦予oinstall為主組dba為副組
    passwd oracle  修改密碼oracle
    
    修改權限
    chown -R oracle:oinstall /home/oracle(不能執行)
    chmod -R 755 /home/oracle
    
    ORACLE用戶建立目錄
    su - oracle  切換oracle用戶
    mkdir db_home  作為建oracle實例用的目錄
    mkdir oracle10g  oracle安裝目錄
    mkdir db_files  建立db_files目錄
    
  • Oracle環境變量設置

    umask 022
    export PATH 
    export ORACLE_BASE=/home/oracle/oracle10g
    export ORACLE_SID=ccod
    export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 
    export PATH=$ORACLE_HOME/bin:$PATH 
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib 
    export LC_CTYPE=en_US.UTF-8
    export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
    
    
  • 執行下面的命令使環境變量生效

    source .bash_profile
    
    
  • 上傳Oracle安裝文件和解壓和設置權限

    10201_database_linux_x86_64.cpio.tar.gz
    p6810189_10204_Linux-x86-64.zip
    tar zxf  10201_database_linux_x86_64.cpio.tar.gz   &&  cpio -idmv < 10201_database_linux_x86_64.cpio  && mv  database  /home/oracle/ora10g
    chown -R oracle:oinstall /home/oracle/ora10g/database/
    

編輯安裝Oracle需要的應答文件

  • (1) 以root身份登錄
  • (2) 靜默模式(Silent)安裝必須指定一個應答文件來完成安裝過程所須的各類參數。
    • 在Oracle安裝目錄的response子目錄里有enterprise.rsp、standard.rsp和custom.rsp三個應答文件,分別對應企業版、標準版和定制的安裝。
  • (3) 以enterprise.rsp為例,用任意的文本編輯器打它,修改以下這些項目的值。
安裝Oracle軟件
  • 配置enterprise.rsp文件

  • 編輯此文件 vi /home/oracle/ora10g/database/response/enterprise.rsp

    RESPONSEFILE_VERSION=2.2.1.0.0
    UNIX_GROUP_NAME="oinstall"
    ORACLE_HOME_NAME="OraDb10g_home1"
    ORACLE_HOME="/home/oracle/oracle10g/product/10.2.0/db_1"
    SHOW_INSTALL_PROGRESS_PAGE= true
    SHOW_END_OF_INSTALL_MSGS= true
    COMPONENT_LANGUAGES={"zh_CN"}   默認en
    s_nameForDBAGrp= "dba"                         如設置無效組,會出現權限不夠錯誤
    s_nameForOPERGrp="dba"
    INSTALL_TYPE="EE"
    n_configurationOption=3                    安裝類型(1為在安裝后創建數據庫, 2    為安裝后創建一個自動存儲管理實例, 3為只安裝服務器軟件),這里我選擇3。
    RESTART_SYSTEM=false
    RESTART_REMOTE_SYSTEM=false
    說明:這幾項要視情況而定比如說 UNIX_GROUP_NAME="oinstall" 和s_nameForDBAGrp=     "dba" s_nameForOPERGrp="dba"還有環境變量都要參照前面自己定義好的來
    
    
  • 靜默安裝

    ./runInstaller -silent -ignoreSysPrereqs -responseFile /home/oracle/ora10g/database/response/enterprise.rsp
    
系統初始化
  • 以root用戶登錄

  • 運行一下腳本

    /home/oracle/ora10g/oraInventory/orainstRoot.sh
    /home/oracle/oracle10g/product/10.2.0/db_1/root.sh
    
安裝網絡監聽器
  • 已oracle用戶登錄

  • 沒有網絡監聽器,客戶端就無法通過網絡連接oraclef服務器,則需要靜默安裝

  • 編輯Oracle安裝目錄里response子目錄下的應答文件 netca.rsp, 修改以下項目:

INSTALL_TYPE=""CUSTOM"" 安裝的類型,這里我使用默認值
LISTENER_NUMBER=1 監聽器數量,這里我使用默認值
LISTENER_NAMES={"LISTENER"} 監聽器的名稱列表,這里我使用默認值
LISTENER_PROTOCOLS={"TCP;1521"} 監聽器使用的通訊協議列表,這里我使用默認值
LISTENER_START=""LISTENER"" 監聽器啟動的名稱,這里我使用默認值
```

  • 然后運行 $ORACLE_HOME/bin/netca /silent /responseFile <應答文件的絕對路徑>

    $ORACLE_HOME/bin/netca /silent /responseFile /home/oracle/oracle10g/database/response/netca.rsp
    
  • 修改監聽啟動配置

    1、使用oracle用戶登錄
    2、打開 $ORACLE_HOME/bin/dbstart,將
            ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
         改為
            ORACLE_HOME_LISTNER=$ORACLE_HOME
        否則網絡監聽器可能無法自動啟動。
    
安裝oracle數據庫實例
  • 修改/home/oracle/oracle10g/database/response/dbca.rsp
    OPERATION_TYPE = "createDatabase"
    GDBNAME = "oracle10g"
    SID = "ccod"
    TEMPLATENAME = "General_Purpose.dbc"   如不設置會出現“靜默DBCA創建數據庫時遭遇模板不存在問題”
    SYSPASSWORD = "oracle"
    SYSTEMPASSWORD = "oracle"
    CHARACTERSET = "ZHS16GBK"
    
    
  • 運行以下命令安裝實例
    $ORACLE_HOME/bin/dbca -silent –responseFile /home/oracle/oracle10g/database/response/dbca.rsp -cloneTemplate
    
    
修改Oracle啟動配置文件/etc/oratab

-以oracle用戶登錄

  • 然后編輯 /etc/oratab
    將<Oracle的SID>:<Oracle的主目錄>:N
    修改為ora10g:/app/oracle/10g:Y
    使數據庫實例能夠自動啟動。
    

故障匯總

連接oracle報錯
  • ORA-28547:連接服務器失敗
 [oracle@localhost admin]$  cat listener.ora
 
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = orcl10g)
      (ORACLE_HOME = /home/oracle/ora10g/product/10.2.0/db_1)
#      (PROGRAM = extproc)           要注釋掉,否則會出現“ORA-28547:連接服務器失敗,可能是Net8管理錯誤”          
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )

#tnsnames文件

[oracle@localhost admin]$ cat tnsnames.ora
EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = oracle10g)
    )
  )

  • 故障2
ORA-01078: failure in processing system parameters
LRM-00123: invalid character 0 found in the input file
LRM-00109: could not open parameter file '/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora

   經查:pfile目錄下無參數文件,SORACLE_HOME/dbs下無密碼文件,flash_recovery_area下無相關實例文件
   解決:實例未創建成功,dbca重新創建實例即可,如果有實例情況下,則拷貝pfile下參數文件到dbs下并命名即可。

  • 故障3,ORA-01031: insufficient privileges
[oracle@wz_oracle2 ~]$ cat enterprise.rsp | egrep -i "grp|group"
UNIX_GROUP_NAME="dba"
s_nameForDBAGrp="oracle"
s_nameForOPERGrp="oracle"

解決:

[oracle@wz_oracle2 ~]$ cat $ORACLE_HOME/rdbms/lib/config.c
/*  SS_DBA_GRP defines the UNIX group ID for adminstrative access.  */
/*  Refer to the Installation and User's Guide for further information.  */
#define SS_DBA_GRP "oracle"  /* 改成 dba */
#define SS_OPER_GRP "oracle"  /* 改成 dba */
char *ss_dba_grp[] = {SS_DBA_GRP, SS_OPER_GRP};

[oracle@wz_oracle2 ~]$ relink all

  • 故障點3ORA-01031: insufficient privileges
原因:system無法登陸,sys和其他普通登陸能正常登陸,經查是登陸驗證問題

解決:cat /home/oracle/ora10g/product/10.2.0/db_1/network/admin/sqlnet.ora
      SQLNET.AUTHENTICATION_SERVICES   不設置即可
  • 故障點4使用Oracle 10g的dbca.rsp文件靜默創建數據庫的時候遭遇模板不存在的問題
[oracle@newadm database]$ dbca -silent -responseFile /home/oracle/database/response/dbca.rsp
Template General Purpose does not exist. Please specify an existing template for database creation.

解決:更改dbca.rsp文件中的General Purpose為 General_Purpose.dbc即可
    TEMPLATENAME = "General_Purpose.dbc"
  • 故障點5ORA-27125: unable to create shared memory segment
發現問題和linux上的hugetbl有關。
解決方法也很簡單,首先檢查oracle用戶的組信息:

[oracle@yans1 ~]$ id oracle
uid=500(oracle) gid=502(oinstall) groups=502(oinstall),501(dba)

[oracle@yans1 ~]$ more /proc/sys/vm/hugetlb_shm_group
0

下面用root執行下面的命令,將dba組添加到系統內核中:
# echo 501 > /proc/sys/vm/hugetlb_shm_group

然后啟動數據庫,問題消失。
但以上這種方式在重啟操作系統后失效, /proc/sys/vm/hugetlb_shm_group又變為了0,建議采用以下方式解決:
加入vm.hugetlb_shm_group = 501 到/etc/sysctl.conf中來解決:

# vi /etc/sysctl.conf
加入如下的內容,其中501為dba組號,需要根據你實際的情況進行改變。
vm.hugetlb_shm_group = 501

# sysctl -p

  • 故障點6ORA-28547:連接服務器失敗,可能是Net8管理錯誤
將listener.ora中的(PROGRAM = extproc)這句注釋掉就可以了

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。