• RedHat Enterprise Linux7.0安装Oracle12c


    1. 验证
    1.1 硬盘空间要求
    1.1.1 安装盘
    类型 占用磁盘空间
    Enterprise Edition 6.4GB
    Standard Edition 6.1GB
    Standard Edition One
    6.1GB
     
    1.1.2 TMP目录
    1GB空间。设置环境变量时,设置TMP和TMPDIR。
     
    1.2 显卡要求
    1024*768.
     
    1.3 Runlevel等级
    3或者5.
     
    1.4 swap
    要求:
    RAW
    Swap
    1G至2G 1.5倍
    2G至16G 同RAW相等
    16G以上 16G
    查看命令:# grep SwapTotal /proc/meminfo
              # free
    1.5 内存:
    要求:内存最小1G,推荐2G或者更高。
    查看命令:# grep MemTotal /proc/meminfo
     
    1.6 操作系统
    • Oracle Linux 7
    • Oracle Linux 6
    • Oracle Linux 5
    • Red Hat Enterprise Linux 7
    • Red Hat Enterprise Linux 6
    • Red Hat Enterprise Linux 5
    以上都是x86_64版本
    # cat /proc/version // 查看版本
     
    1.7 内核
    Red Hat Enterprise Linux 7版本要求:3.10.0.54.0.1.el7.x86_64或者更新。
     
    1.8 依赖软件
     
    # rpm -qa binutils compat-libcap1 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
     
    # rpm -qa binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers glibc-static kernel-headers pdksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel libstdc++-static make numactl-devel sysstat unixODBC unixODBC-devel // 验证命令26个包
    • binutils-2.23.52.0.1-12.el7.x86_64(binutils-2.23.52.0.1-16.el7.x86_64)
    • compat-libcap1-1.10-3.el7.x86_64(compat-libcap1-1.10-7.el7.x86_64)
    • gcc-4.8.2-3.el7.x86_64(gcc-4.8.2-16.el7.x86_64)
    • gcc-c++-4.8.2-3.el7.x86_64(gcc-c++-4.8.2-16.el7.x86_64)
    • glibc-2.17-36.el7.i686
    • glibc-2.17-36.el7.x86_64(glibc-2.17-55.el7.x86_64)
    • glibc-devel-2.17-36.el7.i686
    • glibc-devel-2.17-36.el7.x86_64(glibc-devel-2.17-55.el7.x86_64 后安装)
    • ksh(后安装)
    • libaio-0.3.109-9.el7.i686
    • libaio-0.3.109-9.el7.x86_64(libaio-0.3.109-12.el7.x86_64)
    • libaio-devel-0.3.109-9.el7.i686
    • libaio-devel-0.3.109-9.el7.x86_64(libaio-devel-0.3.109-12.el7.x86_64 后安装)
    • libgcc-4.8.2-3.el7.i686
    • libgcc-4.8.2-3.el7.x86_64(libgcc-4.8.2-16.el7.x86_64)
    • libstdc++-4.8.2-3.el7.i686
    • libstdc++-4.8.2-3.el7.x86_64(libstdc++-4.8.2-16.el7.x86_64)
    • libstdc++-devel-4.8.2-3.el7.i686
    • libstdc++-devel-4.8.2-3.el7.x86_64(libstdc++-devel-4.8.2-16.el7.x86_64)
    • libXi-1.7.2-1.el7.i686
    • libXi-1.7.2-1.el7.x86_64(libXi-1.7.2-2.1.el7.x86_64)
    • libXtst-1.2.2-1.el7.i686
    • libXtst-1.2.2-1.el7.x86_64(libXtst-1.2.2-2.1.el7.x86_64)
    • make-3.82-19.el7.x86_64(make-3.82-21.el7.x86_64)
    • sysstat-10.1.5-1.el7.x86_64(sysstat-10.1.5-4.el7.x86_64)
    • zlib-1.2.7-13.el7.x86_64.rpm
    • zlib-devel-1.2.7-13.el7.x86_64.rpm
    • unixODBC-2.3.1-10.el7.x86_64(利用ODBC连接oracle可安装) // http://www.unixodbc.org
    • unixODBC-devel-2.3.1-10.el7.x86_64 (利用ODBC连接oracle可安装) // http://www.unixodbc.org
     
    # rpm -ivh 安装包名 // 安装程序包
     
     
    1.9 用户和组
    确定是否安装过oracle:
    # more /etc/oraInst.loc
    # grep oinstall /etc/group
    # id oracle
    创建组:
    # /usr/sbin/groupadd -g 54321 oinstall
    # /usr/sbin/groupadd -g 54322 dba
    # /usr/sbin/groupadd -g 54323 oper
    创建用户:
    # /usr/sbin/useradd -u 54321 -g oinstall -G dba,oper oracle
    设置密码:
    # passwd oracle
     
    1.10 创建安装目录
    # mkdir -p /opt/app/oracle/product/12.1.0/db_1
    # chown -R oracle:oinstall /opt/app
    # chmod -R 775 /opt/app
    # mkdir -p /opt/app/tmp
    # chown -R oracle:oinstall /opt/app/tmp
    # chmod -R 775 /opt/app/tmp
     
    1.11 配置环境变量
    # su - oralce
    $ echo $SHELL // 我的RHEL7.0是bash,所以以下都是在bash中使用。
    $ vi ~/.bash_profile
    增加下面行:
     
     1 # User specific environment and startup programs
     2 umask 022
     3  
     4 # +--------------------------+
     5 # | SETUP ORACLE ENVIRONMENT |
     6 # +--------------------------+
     7 TMP=/opt/ora/tmp
     8 TMPDIR=/opt/ora/tmp
     9 export TMP TMPDIR
    10 
    11 ORACLE_HOME=/opt/app/oracle/product/12.1.0/db_1
    12 export ORACLE_HOME
    13 ORACLE_BASE=/opt/app/oracle
    14 export ORACLE_BASE
    15 ORACLE_SID=afcsc
    16 export ORACLE_SID
    17 TNS_ADMIN=$ORACLE_HOME/network/admin
    18 export TNS_ADMIN
    19 NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
    20 export NLS_LANG
    21 PATH=$PATH:$ORACLE_HOME/bin
    22 export PATH
    23 LANG=AMERICAN_AMERICA.ZHS16GBK
    24 export LANG
    25 # +--------------------------+
    26 # | LINUX STUFF |
    27 # +--------------------------+
    28 unset USERNAME

     
    执行:source ~/.bash_profile
     
     
    1.11 配置内核
    注:配置大于系统数据需要配置更改,否则不需要配置。
     
    要求配置:
    参数 文件 命令
    semmsl
    semmns
    semopm
    semmni
    250
    32000
    100
    128
    /proc/sys/kernel/sem
    # /sbin/sysctl -a | grep sem
    shmall
    3435973835
    /proc/sys/kernel/shmall // 总内存40%
    # /sbin/sysctl -a | grep shm
    shmmax
    4294967295
    /proc/sys/kernel/shmmax
    // 最大共享内存,官方文档建议是内存的1/2
    // 我的服务器是8G内存,所以为8*1024*1024*1024-1
    // 值为4294967295(8G内存/2)
    # /sbin/sysctl -a | grep shm
    shmmni
    4096
    /proc/sys/kernel/shmmni
    # /sbin/sysctl -a | grep shm
    file-max
    6815744
    /proc/sys/fs/file-max
    # /sbin/sysctl -a | grep file-max
    ip_local_port_range
    9000 65500
    /proc/sys/net/ipv4/ip_local_port_range
    # /sbin/sysctl -a | grep ip_local_port_range
    rmem_default
    262144 
    /proc/sys/net/core/rmem_default
    # /sbin/sysctl -a | grep rmem_default
    rmem_max
    4194304
    /proc/sys/net/core/rmem_max
    # /sbin/sysctl -a | grep rmem_max
    wmem_default
    262144
    /proc/sys/net/core/wmem_default
    # /sbin/sysctl -a | grep wmem_default
    wmem_max 
    1048576
    /proc/sys/net/core/wmem_max
    # /sbin/sysctl -a | grep wmem_max
    aio-max-nr 1048576    
     
    # vi /etc/sysctl.conf
    按照系统值对比添加:
     
    fs.aio-max-nr = 1048576
    fs.file-max = 6815744
    kernel.shmall =3435973835
    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 = 1048576
     
    保存后生效命令:
    # /sbin/sysctl -p
     
     
    1.12 设置进程数和最大会话数
    编辑文件:
    # vi /etc/security/limits.conf 加入以下语句:
    1 oracle           soft     nproc           2047
    2 oracle           hard    nproc           16384
    3 oracle           soft     nofile           1024
    4 oracle           hard    nofile           65536
    5 oracle           soft     stack            10240
    6 oracle           hard    stack            10240
     
    1.13 配置PAM
    编辑文件:vi /etc/pam.d/login 加入以下语句:
    session    required     pam_limits.so
    (注意:根据最后一条session规则的注释,应该加在最后一条规则之前)
     
    2 安装
    2.1 解压缩
    将linuxamd64_12c_database_1of2.zip和linuxamd64_12c_database_2of2.zip移动到移动到/tmp目录下进行解压缩。
    $ cd /opt/ora/tmp
    $ unzip linuxamd64_12c_database_1of2.zip
    $ unzip linuxamd64_12c_database_2of2.zip
     
    2.2 安装
    $ cd /opt/app/tmp/database/
    $ ./runInstaller
     
     
    2.3 报错
     
    安装过程进行到80%多(所有文件复制完毕,并开始链接后), 报错
    1)报错
    ins_precomp.mk
    INFO: /usr/bin/ld: <ORACLE_HOME>/lib//libnls12.a(lxhlang.o): undefined reference to symbol ‘__tls_get_addr@@GLIBC_2.3′
    这是因为oracle安装文件自带的 库文件太老了

    需要删除 {ORACLE_HOME}/lib/stubs 这个目录 (对于我的设置,就是 /opt/app/oracle/product/12.1.0/db_1/lib/stubs

    cd /opt/app/oracle/product/12.1.0/db_1/lib
    rm -rf stubs
    2)在图形安装界面 点击Retry继续, 再次报错

    ins_rdbms.mk
    libclient12.a(kpue.o): undefined reference to symbol 'ons_subscriber_close'
    ....
    libons.so: could not read symbols: Invalid operation
    修改 rdbms/lib/ins_rdbms.mk 的 883行 和 901 行

    879 $(PLSHPROF) : $(ALWAYS) $(PLSHPROF_DEPS)
    880         $(SILENT)$(ECHO)
    881         $(SILENT)$(ECHO) " - Linking hierarchical profiler utility (plshprof)"
    882         $(RMF) $@
    883         $(PLSHPROF_LINKLINE) -lons
    
    ....
     897 $(RMAN) : $(ALWAYS) $(RMAN_DEPS)
     898         $(SILENT)$(ECHO)
     899         $(SILENT)$(ECHO) " - Linking recovery manager (rman)"
     900         $(RMF) $@
     901         $(RMAN_LINKLINE) -lons

    3)在图形节目 Retry, 第3次报错

    ins_rdbms.mk
    houzi.o: undefined reference to symbol 'ztcsh'
    libnnz12.so: could not read symbols: Invalid operation
    修改 ins_rdbms.mk 的 1067行

    1063 $(TG4PWD) : $(ALWAYS) $(TG4PWD_DEPS)
    1064         $(SILENT)$(ECHO)
    1065         $(SILENT)$(ECHO) " - Linking $(TG4DG4)pwd utility"
    1066         $(RMF) $@
    1067         $(TG4PWD_LINKLINE) -lnnz12
  • 相关阅读:
    C#分割字符串
    Android中this、super的区别
    Android activity跳转方式
    Android中的各种单位
    Android布局方式_RelativeLayout
    Parallelism , Partitioner
    编译hadoop,spark遇到的问题总结
    scala,spark练习题提高
    元组复杂例子
    sparksql 操作hive
  • 原文地址:https://www.cnblogs.com/xi52qian/p/4187019.html
Copyright © 2020-2023  润新知