在Redhat Enterprise Linux 7.0 x86_64下安裝Oracle12cR1資料庫

Redhat Enterprise Linux 7.0 x86_64下安裝Oracle12cR1資料庫

Redhat Enterprise Linux 7.0 x86_64下安裝Oracle12cR1資料庫

    Oracle12c資料庫去年發布,RHEL7今年也出來,作為技術人員,總是需要解的,以下是安裝過程,記錄下來以備後續使用。    
   
要想順利的安裝Oracle,最好當然是參考Oracle公司的用戶指南,用戶指南可以在Oracle公司的官方網站下載:
    http://www.oracle.com/technetwork/database/enterprise-edition/documentation/index.html
   
也可以閱讀在線文檔:
    http://docs.oracle.com/cd/E16655_01/install.121/e17718/toc.htm
   
目前Oracle12c資料庫官方是不支持RHEL7的,所以只能參考下RHEL6.
    Oracle12c
資料庫下載地址:
    http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

    安裝Oracle有以下步驟:
    1>.
安裝Linux作業系統.
    2>.
配置Linux系統下Oracle的安裝環境.
    3>.
安裝Oracle軟體與資料庫.
    4>.
測試運行安裝的Oracle系統.

    .安裝Linux.
    1.
系統環境需求
   
內存:最小1GB,推薦2GB或以上
   
交換空間: 內存大小是1-2GB時,交換空間是內存的1.5倍,內存大小2-16GB時,交換空間等於內存大小,內存大小16G以上時,交換空間為16GB.
   
需要選擇以下組件:GNOME桌面、編輯器、開發工具、開發庫等。
    2.
安裝Linux
   
使用安裝光碟安裝Redhat Enterprise Linux 7.0 x86_64,為方便測試,可以使用VMware Workstation虛擬一台機器,在虛擬機上安裝。
    3.
設置主機域名解析
   
安裝Linux後需使用靜態IP地址,並在/etc/hosts文件中設置主機域名解析(ip地址
主機名稱)
    # vi /etc/hosts
    192.168.1.66 hostname

    .配置Linux系統下Oracle的安裝環境.
    1.
檢查和更新所需軟體包.
   
安裝好Linux系統後需要配置一下系統。因OracleLinux下與Windows下有些不同,在Linux下安裝時有部分程序需要與Linux的程序包重新編譯和鏈接,所以需要有編譯器等軟體包。需要用到的軟體包在Oracle的用戶指南中有說明.root身份登錄Linux後執行以下命令檢查軟體包是否都已安裝:
    # rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel
    # rpm -q libaio libaio-devel libXext libXtst libX11 libXau libxcb libXi make sysstat
   
如果系統有軟體包沒有安裝,可以在Redhat Enterprise Linux 7.0的光碟Packages目錄中找到,安裝這些包。
   
例如安裝軟體包:
    # rpm -ivh compat-libstdc++-33-3.2.3-69.el6.i686.rpm

    Oracle官方文檔中確定要安裝的包如下:
    binutils-2.20.51.0.2-5.11.el6 (x86_64)
    compat-libcap1-1.10-1 (x86_64)
    compat-libstdc++-33-3.2.3-69.el6 (x86_64)
    compat-libstdc++-33-3.2.3-69.el6 (i686)
    gcc-4.4.4-13.el6 (x86_64)
    gcc-c++-4.4.4-13.el6 (x86_64)
    glibc-2.12-1.7.el6 (i686)
    glibc-2.12-1.7.el6 (x86_64)
    glibc-devel-2.12-1.7.el6 (x86_64)
    glibc-devel-2.12-1.7.el6 (i686)
    ksh
    libgcc-4.4.4-13.el6 (i686)
    libgcc-4.4.4-13.el6 (x86_64)
    libstdc++-4.4.4-13.el6 (x86_64)
    libstdc++-4.4.4-13.el6 (i686)
    libstdc++-devel-4.4.4-13.el6 (x86_64)
    libstdc++-devel-4.4.4-13.el6 (i686)
    libaio-0.3.107-10.el6 (x86_64)
    libaio-0.3.107-10.el6 (i686)
    libaio-devel-0.3.107-10.el6 (x86_64)
    libaio-devel-0.3.107-10.el6 (i686)
    libXext-1.1 (x86_64)
    libXext-1.1 (i686)
    libXtst-1.0.99.2 (x86_64)
    libXtst-1.0.99.2 (i686)
    libX11-1.3 (x86_64)
    libX11-1.3 (i686)
    libXau-1.0.5 (x86_64)
    libXau-1.0.5 (i686)
    libxcb-1.5 (x86_64)
    libxcb-1.5 (i686)
    libXi-1.3 (x86_64)
    libXi-1.3 (i686)
    make-3.81-19.el6
    sysstat-9.0.4-11.el6 (x86_64)
   
:(1)安裝glibc-2.17-55.el7.i686.rpm時,因為依賴包相互依賴,需要與依賴包同時安裝:
    rpm -ivh glibc-2.17-55.el7.i686.rpm nss-softokn-freebl-3.15.4-2.el7.i686.rpm
    (2)RHEL7
中缺少包compat-libstdc++-33,可以在RHEL6中找到.
    (3)
Oracle資料庫軟體安裝時,ksh實際是用的pdksh,但ksh也是可以使用的,只是安裝時會有警告,pdksh是一個早期的軟體包,可以在以下網站找到.
    http://rpm.pbone.net/
    (4)
建議安裝zlib-devel,不然後續可能會出錯。推薦安裝unixODBC

    2.驗證系統要求
   
查看內存大小
    # grep MemTotal /proc/meminfo
   
查看交換空間
    # grep SwapTotal /proc/meminfo
   
查看磁碟空間,Oracle 12c R1 x64企業版的磁碟空間要求6.4GB以上。
    # df -h

    3.創建Oracle組和用戶帳戶
   
需要創建以下組和用戶:
    The Oracle Inventory group (typically, oinstall)
    The OSDBA group (typically, dba)
    The Oracle software owner (typically, oracle)
    The OSOPER group (optional. Typically, oper)

    # groupadd oinstall
    # groupadd dba
    # groupadd oper
    # useradd -g oinstall -G dba,oper oracle
    # passwd oracle

    4.配置內核參數
   
root身份登錄系統,根據用戶指南配置以下參數:
   
修改文件/usr/lib/sysctl.conf,添加以下內容:
    # vi /usr/lib/sysctl.conf
    # for oracle
    fs.aio-max-nr = 1048576
    fs.file-max = 6815744
    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 = 262144
    net.core.rmem_max = 4194304
    net.core.wmem_default = 262144
    net.core.wmem_max = 1048586

    執行以下命令時參數生效:
    # /sbin/sysctl -p

    : 內核參數設置可以在安裝Oracle時產生的腳本修復。

    登錄oracle帳號檢查資源限制.
    $ ulimit -Sn
    $ ulimit -Hn
    $ ulimit -Su
    $ ulimit -Hu
    $ ulimit -Ss
    $ ulimit -Hs

    修改文件/etc/security/limits.conf,更改資源限制,添加以下內容:
    # vi /etc/security/limits.conf
    # for oracle
    oracle              soft    nproc   2047
    oracle              hard    nproc   16384
    oracle              soft    nofile  1024
    oracle              hard    nofile  65536
    oracle              soft    stack   10240
    oracle              hard    stack   32768

    5.創建Oracle Base目錄:
    # mkdir -p /u01/app/
    # chown -R oracle:oinstall /u01/app/
    # chmod -R 775 /u01/app/

    6.編輯Oracle用戶環境,編輯.bash_profile文件
    # su – oracle
    $ vi .bash_profile
   
編輯.bash_profile文件,添加以下內容
    # For Oracle
    export DISPLAY=:0.0
    export TMP=/tmp;
    export TMPDIR=$TMP;
    export ORACLE_BASE=/u01/app/oracle;
    export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1;
    export ORACLE_SID=sales;
    export ORACLE_TERM=xterm;
    export PATH=/usr/sbin:$PATH;
    export PATH=$ORACLE_HOME/bin:$PATH;
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
    export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
    
   
配置生效
    $ source .bash_profile

    .安裝Oracle軟體與資料庫
    1.
安裝Oracle軟體(12.1.0.1版本)
   
Oracle的安裝文件linuxamd64_12c_database_1of2.ziplinuxamd64_12c_database_2of2.zip解壓縮.
    # unzip linuxamd64_12c_database_1of2.zip
    # unzip linuxamd64_12c_database_2of2.zip

    oracle用戶身份登錄系統安裝Oracle,為避免出現中文亂碼,安裝前可以執行export LANG=””,顯示英文,
    $ export LANG=””
    $ cd database
    $ ./runInstaller
   
在安裝時選擇只安裝Oracle軟體。

    在安裝時,會出現以下錯誤:
    [INS-13001]Environment does not meet minimum requirements.
   
日誌文件顯示
    SEVERE: CVU do not support target environment..
    Refer associated stacktrace #oracle.install.ivw.common.validator.SupportedOSValidator:451
    INFO: Completed verification of target environment.
    WARNING: Verification of target environment returned with errors.
    WARNING: [WARNING] [INS-13001] Environment does not meet minimum requirements.
       CAUSE: Minimum requirements were not met for this environment
       ACTION: Either check the logs for more information or check the supported configurations for this product..
    Refer associated stacktrace #oracle.install.commons.util.exception.DefaultErrorAdvisor:454

    應該集群環境驗證不通過,可能需要補丁,目前Oracle12c剛出,應該還沒有補丁,當然直接跳過也可以繼續執行安裝.
   
這裡直接繼續執行安裝.

    安裝時出現的錯誤:
   
錯誤(1):
    Error in invoking target ‘links proc gen_pcscfg procob’ of makefile ‘/u01/app/oracle/product/12.1.0/db_1/precomp/lib/ins_precomp.mk’.
   
由於Oracle12c官方還不支持RHEL7系統,在新版系統下會表現出此錯誤.
   
解決方案參考網上的方法:
    http://www.oracle-base.com/articles/12c/oracle-db-12cr1-installation-on-oracle-linux-7.php
   
保留安裝進程,另外開啟一個終端窗口,修改文件env_rdbms.mk內容.
    # rm -rf /u01/app/oracle/product/12.1.0/db_1/lib/stubs/*
    # cp /u01/app/oracle/product/12.1.0/db_1/rdbms/lib/env_rdbms.mk /u01/app/oracle/product/12.1.0/db_1/rdbms/lib/env_rdbms.mk.orig
    # vi /u01/app/oracle/product/12.1.0/db_1/rdbms/lib/env_rdbms.mk
    # Line 176
    # FROM:
    LINKTTLIBS=$(LLIBCLNTSH) $(ORACLETTLIBS) $(LINKLDLIBS)
    # TO  :
    LINKTTLIBS=$(LLIBCLNTSH) $(ORACLETTLIBS) $(LINKLDLIBS) -lons
    # Line 279-280
    # FROM:
    LINK=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS) $(COMPSOBJS)
    LINK32=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS32) $(COMPSOBJS)
    # TO  :
    LINK=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS) $(COMPSOBJS) -Wl,–no-as-needed
    LINK32=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS32) $(COMPSOBJS) -Wl,–no-as-needed
    # Line 3041-3042
    # FROM:
    TG4PWD_LINKLINE= $(LINK) $(OPT) $(TG4PWDMAI) \
            $(LLIBTHREAD) $(LLIBCLNTSH) $(LINKLDLIBS)
    # TO  :
    TG4PWD_LINKLINE= $(LINK) $(OPT) $(TG4PWDMAI) \
            $(LLIBTHREAD) $(LLIBCLNTSH) $(LINKLDLIBS) -lnnz12
   
然後在安裝進程中點擊Retry即可。

    錯誤(2):
    Error in invoking target ‘install’ of makefile ‘/u01/app/oracle/product/12.1.0/db_1/ctx/lib/ins_ctx.mk’.
   
解決方案參考:
    http://www.oracle-base.com/articles/12c/oracle-db-12cr1-installation-on-oracle-linux-7.php
   
保留安裝進程,另外開啟一個終端窗口,修改文件env_ctx.mk內容.
    # rm -rf /u01/app/oracle/product/12.1.0/db_1/lib/stubs/*
    # cp /u01/app/oracle/product/12.1.0/db_1/ctx/lib/env_ctx.mk /u01/app/oracle/product/12.1.0/db_1/ctx/lib/env_ctx.mk.orig
    # vi /u01/app/oracle/product/12.1.0/db_1/ctx/lib/env_ctx.mk
    # Line 154
    # FROM:
    LINK=$(LDCCOM)
    # TO  :
    LINK=$(LDCCOM) -Wl,–no-as-needed
   
然後在安裝進程中點擊Retry即可。
   
但似乎還是不行,查看日誌文件的錯誤信息:
    INFO: /usr/bin/ld: cannot find -lz
    collect2: error: ld returned 1 exit status
    INFO: make: *** [ctxhx] ECCVror 1
   
似乎是zlib的問題,保留安裝進程,另外開啟一個終端窗口,查看已安裝zlib,未安裝zlib-devel,安裝zlib-devel試試。
    # rpm -ivh zlib-devel-1.2.7-13.el7.x86_64.rpm
   
然後在安裝進程中點擊Retry通過。

    安裝最後步驟按提示在root用戶下執行腳本.
    # /u01/app/oraInventory/orainstRoot.sh
    # /u01/app/oracle/product/12.1.0/db_1/root.sh

    2.安裝資料庫
    Oracle
軟體安裝完後,需要執行命令netca配置監聽器.
    $ netca
   
在圖形界面中按提示配置監聽器.
   
然後執行命令dbca安裝資料庫.
    $ dbca
   
在圖形界面中按提示安裝資料庫就可以。

    .測試運行安裝的Oracle系統
   
資料庫安裝完後監聽器與資料庫實例就已啟動。執行以下測試監聽器與實例.
    $ lsnrctl stop
    $ lsnrctl start
    $ sqlplus /nolog
    SQL> connect / as sysdba;
    SQL> shutdown
    SQL> startup
   
執行其它SQL語句測試資料庫.

以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營