zoukankan      html  css  js  c++  java
  • Linux(CentOS 7.0)安装Oracle11g R2

    // 注释 # root用户 $oracle用户
    1. 关闭安全措施
      
    # chkconfig iptables off // 永久关闭防火墙
    # serviceiptables stop // 暂时关闭防火墙,重启系统后会自动打开
    # sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config // 关闭Selinux
     
    2. 验证硬件
    2.1 内存:
    要求:内存最小1G,推荐2G或者更高。
    查看命令:# grep MemTotal /proc/meminfo
     
    2.2 Swap:
    要求:
    RAW
    Swap
    1G至2G 1.5倍
    2G至16G 同RAW相等
    16G以上 16G
    查看命令:# grep SwapTotal /proc/meminfo
              # free
     
    3. 验证软件
    3.1 操作系统
    • Asianux Server 3 SP2
    • Oracle Linux 4 Update 7
    • Oracle Linux 5 Update 2 (with Red Hat Compatible Kernel)
    • Oracle Linux 5 Update 5
    • Oracle Linux 6
    • Oracle Linux 6 (with Red Hat Compatible Kernel)
    • Red Hat Enterprise Linux 4 Update 7
    • Red Hat Enterprise Linux 5 Update 2
    • Red Hat Enterprise Linux 5 Update 5 (with the Oracle Unbreakable Enterprise Kernel for Linux)
    • Red Hat Enterprise Linux 6
    • Red Hat Enterprise Linux 6 (with the Oracle Unbreakable Enterprise Kernel for Linux)
    • SUSE Linux Enterprise Server 10 SP2
    • SUSE Linux Enterprise Server 11
    CentOS7本文按照Red Hat Enterprise Linux 6来配置。
     
    # cat /proc/version // 查看版本
     
    3.2 内核
    • On Oracle Linux 4 and Red Hat Enterprise Linux 4 2.6.9 or later
    • On Oracle Linux 5 Update 2 with Red Hat Compatible Kernel 2.6.18 or later
    • On Oracle Linux 5 Update 5 with Red Hat Compatible Kernel 2.6.18 or later
    • On Oracle Linux 5 Update 5 with Unbreakable Enterprise Kernel 2.6.32-100.0.19 or later
    • On Oracle Linux 6 2.6.32-100.28.5.el6.x86_64 or later
    • On Oracle Linux 6 with Red Hat Compatible Kernel 2.6.32-71.el6.x86_64 or later
    • On Red Hat Enterprise Linux 5 Update 2 2.6.18 or later
    • On Red Hat Enterprise Linux 5 Update 5 2.6.18 or later
    • On Red Hat Enterprise Linux 5 Update 5 with Unbreakable Enterprise Kernel 2.6.32 or later
    • On Red Hat Enterprise Linux 6 2.6.32-71.el6.x86_64 or later
    • On Red Hat Enterprise Linux 6 with Unbreakable Enterprise Kernel 2.6.32-100.28.5.el6.x86_64 or later
    • On Asianux Server 3 2.6.18 or later
    • On SUSE Linux Enterprise Server 10 2.6.16.21 or later
    • On SUSE Linux Enterprise Server 11 2.6.27.19 or later
    # uname-r
     
    3.3 验证需要的包:
    # 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个包
    • kernel-headers-3.10.0-123.el7.x86_64
    • gcc-c++-4.8.2-16.el7.x86_64
    • numactl-devel-2.0.9-2.el7.x86_64
    • glibc-headers-2.17-55.el7.x86_64
    • glibc-common-2.17-55.el7.x86_64
    • binutils-2.23.52.0.1-16.el7.x86_64
    • unixODBC-devel-2.3.1-10.el7.x86_64
    • libaio-0.3.109-12.el7.x86_64
    • make-3.82-21.el7.x86_64
    • elfutils-libelf-0.158-3.el7.x86_64
    • elfutils-libelf-devel-0.158-3.el7.x86_64
    • sysstat-10.1.5-4.el7.x86_64
    • glibc-static-2.17-55.el7.x86_64
    • glibc-devel-2.17-55.el7.x86_64
    • glibc-2.17-55.el7.x86_64
    • elfutils-libelf-devel-static-0.158-3.el7.x86_64
    • libaio-0.3.109-12.el7.i686
    • gcc-4.8.2-16.el7.x86_64
    • libgcc-4.8.2-16.el7.i686
    • libstdc++-static-4.8.2-16.el7.x86_64
    • libaio-devel-0.3.109-12.el7.x86_64
    • libstdc++-4.8.2-16.el7.x86_64
    • libaio-devel-0.3.109-12.el7.i686
    • unixODBC-2.3.1-10.el7.x86_64
    • libstdc++-devel-4.8.2-16.el7.x86_64
    • compat-libstdc++-33-3.2.3-71.el7.x86_64
    • libgcc-4.8.2-16.el7.x86_64
    • libgomp-4.8.2-16.el7.x86_64
    #rpm -ivh 安装包名 // 安装程序包
     
    4. 创建组和用户
    # groupadd dba
    # groupadd oinstall
    # useradd -m -g oinstall -G dba oracle
    # passwd oracle
    // 如果nobody用户不存在(id nobody命令查看),则创建:
    # useradd nobody
     
    5. 配置内核
    注:配置大于系统数据需要配置更改,否则不需要配置。
     
    要求配置:
    参数 最小值 文件 命令
    semmsl
    semmns
    semopm
    semmni
    50
    32000
    100
    128
    /proc/sys/kernel/sem
    # /sbin/sysctl -a | grep sem
    shmall
    2097152
    /proc/sys/kernel/shmall
    # /sbin/sysctl -a | grep shm
    shmmax
    4294967296
    /proc/sys/kernel/shmmax
    // 最大共享内存,官方文档建议是内存的1/2
    // 我的服务器是8G内存,所以为4*1024*1024*1024
    // 最小值为536870912(1G内存/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 = 2097152
    kernel.shmmax = 536870912
    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 = 1048576
     
    保存后生效命令:
    # /sbin/sysctl -p
     
    6. 创建安装目录
    # mkdir -p /opt/oracle/product/11.2.0.1
    # chown -R oracle:oinstall /opt/oracle
    # mkdir /var/oracle
    # chown oracle:oinstall  /var/oracle
    # chmod 755 /var/oracle
     
    7. 配置环境变量
    vi /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
     
    使用Oracle用户登陆:
    su - oracle
    vi ~/.bash_profile
    以下是配置文件的内容,里面已有的部分就不必在次添加了。
    # .bash_profile
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
            . ~/.bashrc
    fi
    # User specific environment and startup programs
    umask 022
    # +--------------------------+
    # | SETUP ORACLE ENVIRONMENT |
    # +--------------------------+
    TMP=/tmp
    TMPDIR=/tmp
    export TMP TMPDIR
    # 如果安装出现相关问题请屏蔽下面5行,
    # 安装好后再取消屏蔽这些环境变量设置
    export ORACLE_HOME=/opt/oracle/product/11.2.0.1
    export ORACLE_BASE=/opt/oracle
    export ORACLE_SID=afcsc
    export TNS_ADMIN=$ORACLE_HOME/network/admin
    export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
    export PATH=$PATH:$ORACLE_HOME/bin
    # +--------------------------+
    # | LINUX STUFF |
    # +--------------------------+
    export LANG=AMERICAN_AMERICA.ZHS16GBK
    unset USERNAME
    # +-------------+
    # | "GREETINGS" |
    # +-------------+
    echo ".bash_profile executed"
     
    执行:source ~/.bash_profile
     
    8. 设置进程数和最大会话数
    编辑文件:
    # vi /etc/security/limits.conf 加入以下语句:
    oracle           soft    nproc           2047
    oracle           hard    nproc           16384
    oracle           soft    nofile          1024
    oracle           hard    nofile          65536
     
    9. 关联设置
    编辑文件:vi /etc/pam.d/login 加入以下语句:
    session    required     pam_limits.so
    (注意:根据最后一条session规则的注释,应该加在最后一条规则之前)

    9. 解压缩
    将linux.x64_11gR2_database_1of2.zip和linux.x64_11gR2_database_2of2.zip移动到移动到/tmp目录下进行解压缩。
    $ cd /tmp
    $ unzip linux.x64_11gR2_database_1of2.zip
    $ unzip linux.x64_11gR2_database_2of2.zip
     
    10. 安装
    $ cd /tmp/database/
    $ ./runInstaller
     
    注意:
    选择advance install
    数据库home设置为/opt/oracle/product/11.2.0.1
    数据库全局名称设置为afcsc
    字符集选Simplified Chinese ZHS16GBK
     
    检查后会运行图形化安装界面。
    安装过程中连接库时会出现两个错误:
     
    • 第一个:
    /lib64/libstdc++.so中memcpy@GLIBC_2.4找不到。
    问题:glibc是2.17的库,连接找的是2.14的库。
    解决办法:改成静态链接。
    查看 /usr/lib64/libc.a是否存在。
    修改oracle安装目录下:$ORACLE_HOME/ctx/lib/ins_ctx.mk
    ctxhx: $(CTXHXOBJ)
            $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
    修改为:
    ctxhx: $(CTXHXOBJ)
            -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/libc.a
    然后点击retry通过。
     
    • 第二个:
    问题:undefinied reference symbol'B_DestroyKeyObject',查看日志,实际就是没有找到nnz11这个库。
    解决办法:
    修改/opt/oracle/product/11.2.0.1/sysman/lib/ins_emagent
    $(MK_EMAGENT_NMECTL)
    修改为:
    $(MK_EMAGENT_NMECTL) -lnnz11
    然后点击retry通过。
     
     
    注:安装需要远程图形化连接安装oracle,具体方式和软件这里不说了。
  • 相关阅读:
    批量新增百万条数据 十百万条数据
    sqlserver 组内排序
    EF ++属性会更新实体
    Entity Framework Core: A second operation started on this context before a previous operation completed
    abp Cannot access a disposed object. A common cause of this error is disposing
    abp xunit Can not register IHostingEnvironment. It should be a non-abstract class. If not, it should be registered before.”
    hangfire enqueued but not processing(hangfire 定时任务入队列但不执行)
    EF 更新实体 The instance of entity type 'BabyEvent' cannot be tracked because another instance
    datatable to entiy list 不支持可空类型和枚举类型
    webapi 设置不显示接口到swaggerUI
  • 原文地址:https://www.cnblogs.com/xi52qian/p/4187039.html
Copyright © 2011-2022 走看看