在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…


发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注