RedHat上靜默安裝Oracle11g

devsai發表於2019-03-02

之前為某某大學後勤部門開發了一套幹部考核系統,我也參與了開發。後來公司用此作為案例,接到了一些其他學校的考核系統的開發專案。原來系統是用mysql作為資料庫,如今接到的一所學校的考核系統,要求用oracle資料庫。所以公司要求我來為客戶那邊安裝oracle資料庫。之前我對mysql的安裝有所瞭解,而對liunx上oracle安裝從來沒接觸過。通過兩天的不斷的找資料後,最終安裝成功,其中也多虧了同事的指點,讓安裝變得順利許多。

在此,我寫下此文,希望對大家有所幫助。

Oracle安裝前,依賴包的檢測

這個就不用多說什麼了,直接的上程式碼:

    rpm -q binutils    compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel 
        elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel
        glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make
        pdksh sysstat unixODBC unixODBC-devel | grep "not installed"複製程式碼

執行以上程式碼後,如果顯示某個包名,說明該包沒有被安裝。
安裝以上依賴包需要系統的安裝盤或系統映象。

使用者那邊把系統的映象檔案copy到了系統根目錄上,我通過mount掛載了映象:

    mount -o loop -t iso9660 /ISONAME.iso /media/cdrom/複製程式碼

然後在/media/cdrom裡面就有相應的依賴包,我是在裡面的Server目錄下面
找到了所有的依賴包。

安裝依賴需要執行以下命令:

    rpm -ivh <依賴包名>複製程式碼

安裝依賴包是個麻煩的過程,我是一個個安裝的,而且在安裝某個包的時候有時會提示你先安裝其他的包,非常的麻煩。不知道有沒有什麼簡單方便的方式進行操作。如果有誰有更好的方法,希望能評論告訴
我。

沒有圖形,就靜默吧

不管圖形還是靜默都需要做的事

  • 建立群組
        groupadd oinstall 
        groupadd dba複製程式碼
  • 建立oracle使用者並使用其屬於剛建立的群組
        useradd –m –g oinstall –G dba oracle複製程式碼
  • 檢查oracle是否屬於組oinstall 和 dba

    id oracle

    正確的顯示:uid=1001(oracle) gid=1000(oinstall) groups=1001(dba)

  • 給oracle設定密碼

    passwd oracle

  • 建立安裝oracle的目錄並賦相應的許可權

        mkdir -p /u01/oracle
        chown -R oracle:oinstall /u01
        chmod -R 775 /u01複製程式碼
  • 核心引數的配置(網上尋找到的,這一步不是很明白其作用),使用vivim(其他編輯器也行)修改 /ect/sysctl.conf檔案,一般都有,沒有就建立一個,對它做如下的修改或新增:

    fs.file-max = 6815744

    fs.aio-max-nr = 1048576

    kernel.shmall = 2097152

    kernel.shmmax = 2147483648

    kernel.shmmni = 4096

    kernel.sem = 250 32000 100 128

    net.ipv4.ip_local_port_range = 9000 65500

    net.core.rmem_default = 4194304

    net.core.rmem_max = 4194304

    net.core.wmem_default = 262144

    net.core.wmem_max = 1048576

    輸入命令:sysctl -p使其立即生效

  • 配置oracle使用者的環境變數

    切換到oracle使用者下:su -l oracle,然後輸入:vim ~/.bash_profile,在其中新增如下環境變數

       export ORACLE_HOME=/u01/oracle/product/11.2/db_1
       export ORACLE_BASE=/u01/oracle 
       export ORACLE_SID=orcl
       export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib複製程式碼

    source ~/.bash_profile使其立即生效

Oracle的下載,解壓,安裝

下載oracle並進行解壓: 這裡提供一下我使用的oracle, 點選此處下載
建立目錄mkdir /oinstall,我把下載下來的oracle放到了/oinstall下,再通過以下命令解壓:

unzip p10404530_112030_Linux-x86-64_1of7.zip
unzip p10404530_112030_Linux-x86-64_2of7.zip複製程式碼

由於靜默(silent)安裝oracle,需要配置靜默響應檔案,在/oinstall/database/response下用三個檔案,其中一個檔案就是用來安裝使用,複製一份出來修改其內容。 這是一種方法,若不配置響應檔案,則需要設定響應變數。我用了第二種方式 ,程式碼如下:

    ./runInstaller -silent -force 
    FROM_LOCATION=/oinstall/database/stage/products.xml 
    oracle.install.option=INSTALL_DB_SWONLY 
    UNIX_GROUP_NAME=oinstall 
    INVENTORY_LOCATION=/home/oracle/oraInventory 
    ORACLE_HOME=/u01/oracle/product/11.2/db_1 
    ORACLE_HOME_NAME="OraDb11g_Home1" 
    ORACLE_BASE=/u01/oracle 
    oracle.install.db.InstallEdition=EE 
    oracle.install.db.isCustomInstall=false 
    oracle.install.db.DBA_GROUP=dba 
    oracle.install.db.OPER_GROUP=dba 
    DECLINE_SECURITY_UPDATES=true複製程式碼

為了方便使用,通過vim create_db.sh,新增上述程式碼,給該文件許可權修改為可執行。

執行需要數分鐘的時間,結束時,提示安裝成功並且會給出兩個檔案的路徑,分別執行這兩個檔案。

靜默安裝監聽

複製/oinstall/database/responsenetca.rsp

     cd /oinstall/database/response 
     cp  netca.rsp ../myNetca.rsp
     cd ..
     vim myNetca.rsp複製程式碼

vim MyNetca.rsp修改檔案,以下為需要修改的專案:

    NSTALL_TYPE=""custom"" 安裝的型別
    LISTENER_NUMBER=1 監聽器數量
    LISTENER_NAMES={"LISTENER"} 監聽器的名稱列表
    LISTENER_PROTOCOLS={"TCP;1521"} 監聽器使用的通訊協議列表
    LISTENER_START=""LISTENER"" 監聽器啟動的名稱複製程式碼

然後執行:

    $ORACLE_HOME/bin/netca /silent /responsefile /oinstall/database/response/myNetca.rsp複製程式碼

RedHat上靜默安裝Oracle11g

建立oracle例項庫

複製/oinstall/database/responsedbca.rsp

    cd /oinstall/database/response
    cp dbca.rsp ../myDbca.rsp
    cd ..
    vim myDbca.rsp複製程式碼

vim myDbca.rsp修改檔案,以下為需要修改的專案:

    # RESPONSEFILE_VERSION = "11.2.0" 
    # OPERATION_TYPE = "createDatabase" 
    # [CREATEDATABASE]  
    # GDBNAME = "orcl" 
    # SID = "orcl" 
    # TEMPLATENAME = "General_Purpose.dbc" 
    #  
    # [CONFIGUREDATABASE]  
    # EMCONFIGURATION = "LOCAL" 
    # SYSMANPASSWORD = "123456" 
    # DBSNMPPASSWORD = "123456"複製程式碼

然後執行:

    $ORACLE_HOME/bin/dbca -silent -responsefile /oinstall/database/response/dbca.rsp複製程式碼

到這裡,ORACLE的安裝差不多了。但我用本機訪問伺服器上oracle時,連線不上,出現監聽超時的錯誤,以為是伺服器上防火牆沒有開放1521埠,但檢視後發現1521埠已經加上了。經過幾翻折騰才知道,是連線伺服器的網路上1521埠未開放,問題總算解決了。

問題總會一個接一個的,在向表插入資料時,發現中文存在無法識別的情況。
在網上找了一堆的資料,最後通過閱讀這篇部落格解決了問題。

主要原因是:當前的系統的語言環境和環境變數,與oracle的字符集不一致。

可以通過以下步驟修改

    su -l oracle
    vim ~/.bash_profile複製程式碼

檔案bash_profile中修改或新增以下內容:

    NLS_LANG = AMERICAN _ AMERICA. ZHS16GBK複製程式碼

然後修改sudo vim /etc/sysconfig/i18n

    LANG="en_US.UTF-8"
    SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"
    SYSFONT="latarcyrheb-sun16"複製程式碼

檢視oracle的字符集:

    sqlplus / as sysdba
    select userenv(`language`) from dual;複製程式碼

總結

Oracle在Liunx下安裝是件麻煩的事,由於是沒有圖形介面使用靜默安裝,貌似不會出錯停止,還會繼續安裝,然後就一堆的問題,oracle沒法用還得重新安裝,這種情況下oracle安裝後的Log是一定要看的,看看在安裝過程中有什麼錯誤資訊。但也發現,oracle靜默安裝的速度確實是相當的快。與我在WIN上安裝Oracle速度根本不是一個級別的。

相關文章