• CentOS7安装Oracle11gR2


    一、安装CentOS-7_x86_64

    1、CentOS7:带GUI的服务器(FTP服务器、JAVA平台、兼容性程序库、开发工具、安全性工具、系统管理工具);

    2、安装位置:

      /  /boot  swap(建2个,每个物理内存大小)  /oracle  /data

    3、系统升级:

    [root@IT202 /]# yum -y update
    [root@IT202 /]# yum -y upgrade

    4、修改/dev/shm的大小(size的值物理内存80%):

    [root@IT202 etc]# vi /etc/fstab
    tmpfs /dev/shm                                        tmpfs   defaults,size=51G           0 0

    修改/etc/fstab后,重新mount /dev/shm

    [root@IT202 etc]# umount /dev/shm
    [root@IT202 etc]# mount /dev/shm
    [root@IT202 etc]# df -hl

    二、安装Oracle前准备:

    1、创建运行oracle数据库的系统用户和用户组:

    # 创建用户组oinstall
    [root@IT202 /]# groupadd oinstall
     
    # 创建用户组dba
    [root@IT202 /]# groupadd dba
    
    # 创建oracle用户,并加入到oinstall和dba用户组
    [root@IT202 /]# useradd -g oinstall -g dba -m oracle
    
    # 设置用户oracle的登陆密码
    [root@IT202 /]# passwd oracle
    
    # 查看新建的oracle用户
    [root@IT202 /]# id oracle
    uid=1002(oracle) gid=1003(dba) groups=1003(dba)

    2、修改操作系统核心参数:

    1)、修改OS系统标识:

    # 备份源文件
    [root@IT202 etc]# cp /etc/redhat-release /etc/redhat-release-bak
    
    [root@IT202 etc]# vi /etc/redhat-release
    redhat-7

     2)、修改用户的SHELL的限制,修改/etc/security/limits.conf文件:

    # 备份源文件
    [root@IT202 security]# cp /etc/security/limits.conf /etc/security/limits.conf-bak
    
    [root@IT202 security]# vi /etc/security/limits.conf
    oracle           soft    nproc           2047
    oracle           hard    nproc           16384
    oracle           soft    nofile          1024
    oracle           hard    nofile          65536

    3)、修改/etc/pam.d/login 文件:

    # 备份源文件
    [root@IT202 pam.d]# cp /etc/pam.d/login /etc/pam.d/login-bak
    
    [root@IT202 pam.d]# vi /etc/pam.d/login
    session    required     /lib/security/pam_limits.so
    session    required     pam_limits.so

    4)、修改linux内核,修改/etc/sysctl.conf文件:

    # shmall=是全部允许使用的共享内存大小,shmmax 是单个段允许使用的大小。这两个可以设置为内存的 70%。

    # 例如 64G 内存,64*1024*1024*1024*70% = 48103633715,shmall 的大小为 48103633715/4k(getconf PAGESIZE可得到) = 11744051

    # kernel.sem

      kernel.sem是指 semmsl,semmns,semopm,semmni这4个参数 

      semmsl 指每个线号集的最大信号数,Oracle建议是设置为oracle的最大进程数+10

      semmni 指整个系统的信号集的最大数量

      semmns 指整个系统的信号总数,也就是semmni*semmsl的结果

      semopm 指每个semop系统调用可以执行的信号操作的最大数量

      oracle默认设置

      semmsl=250

      semmns=3200

      semopm=100

      semmni=128

      即kernel.sem= 250 3200 100 128

      例:在oracle ora.init文件参数中设置PROCESSES参数为5000

      则semmsl=5010,semmni=128,semmns=semmsl* semmni=641280

      另外semopm建议设置等于semmsl值即5010

      那么kernel.sem=5010 641280 5010 128

    # 备份源文件
    [root@IT202 etc]# cp /etc/sysctl.conf /etc/sysctl.conf-bak
    
    [root@IT202 etc]# vi /etc/sysctl.conf
    
    net.ipv4.ip_forward = 0
    net.ipv4.conf.default.rp_filter = 1
    net.ipv4.conf.default.accept_source_route = 0
    kernel.sysrq = 0
    kernel.core_uses_pid = 1
    net.ipv4.tcp_syncookies = 1
    kernel.msgmnb = 65536
    kernel.msgmax = 65536
    
    kernel.shmmax = 48103633715
    kernel.shmall = 11744051
    
    fs.aio-max-nr = 1048576
    fs.file-max = 6815744
    kernel.shmmni = 4096
    kernel.sem = 5010 641280 5010 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
    
    #redis
    vm.overcommit_memory = 1
    net.core.somaxconn = 1024

     【使 /etc/sysctl.conf 更改立即生效】

    [root@IT202 etc]# sysctl -p

    5)、编辑 /etc/profile:

    # 备份源文件
    [root@IT202 etc]# cp /etc/profile /etc/profile-bak
    
    
    [root@IT202 etc]# 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
    生效/etc/profile
    [root@IT202 etc]# source /etc/profile

     6)、创建数据库软件目录和数据文件存放目录:

    # oracle数据库配置文件目录
    [root@IT202 /]# mkdir -p /oracle/oraInventory
    
    # oracle数据库软件包解压目录
    [root@IT202 /]# mkdir -p /data/database
    
    # 设置目录所有者为oinstall用户组的oracle用户
    [root@IT202 /]# chown -R oracle:oinstall /oracle
    [root@IT202 /]# chown -R oracle:oinstall /data
    
    # 生成数据DBF环境
    [root@IT202 database]# mkdir -p /data/oradata/ora11g
    [root@IT202 /]# chown -R oracle:oinstall /data
    [root@IT202 /]# chmod 777 -R /data

    7)、配置oracle用户的环境变量:

    [root@IT202 /]# su - oracle
    [oracle@IT202 ~]$ vi .bash_profile
    
    # .bash_profile
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
            . ~/.bashrc
    fi
    
    # User specific environment and startup programs
    
    PATH=$PATH:$HOME/.local/bin:$HOME/bin:/bin:/sbin
    
    export ORACLE_BASE=/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
    export ORACLE_SID=ora11g
    export PATH=$ORACLE_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
    export NLS_LANG=AMERICAN_AMERICA.ZHS16CGB231280

    8)、配置firewall作为防火墙:

    【防火墙打开Oracle监听器的默认端口1521、EM的默认端口1158】

    [root@IT202 /]# firewall-cmd --zone=public --add-port=1521/tcp --permanent
    [root@IT202 /]# firewall-cmd --zone=public --add-port=1158/tcp --permanent
    [root@IT202 /]# firewall-cmd --reload

    # 查看所有打开的端口
    [root@IT202 /]# firewall-cmd --zone=public --list-ports
    1521/tcp 1158/tcp

     9)、安装oracle数据库所需要的软件包

    [root@IT202 /]# yum -y install \
    binutils* \
    compat-libcap1* \
    compat-libstdc++* \
    gcc* \
    gcc-c++* \
    glibc* \
    glibc-devel* \
    ksh* \
    libaio* \
    libaio-devel* \
    libgcc* \
    libstdc++* \
    libstdc++-devel* \
    libXi* \
    libXtst* \
    make* \
    sysstat* \
    elfutils* \
    unixODBC*

    10)、将安装包移动到/data/database路径下   (以oracle用户把2个安装zip文件FTP到/home/oracle目录下)

    [oracle@IT202 oracle]$ cp /home/oracle/linux.x64_11gR2_database_*.zip /data/database
    
    # 解压
    [oracle@IT202 database]$ unzip /data/database/linux.x64_11gR2_database_1of2.zip
    [oracle@IT202 database]$ unzip /data/database/linux.x64_11gR2_database_2of2.zip
    
    #进入管理员权限,设置目录所有者为oinstall用户组的oracle用户,执行安装脚本
    [root@IT202 /]# chown -R oracle:oinstall /data/database/database/

    三、安装Oracle11gR2:

    1)、以oracle用户登录系统,安装Oracle11gR2软件:

    [oracle@IT202 ~]$ LANG=en
    [oracle@IT202 database]$ cd /data/database/database
    [oracle@IT202 database]$ ./runInstaller
    1、==++Configure Security Updates++==
    去掉 I wish to receive security updates via My Oracle Support.
    点击 "Next >"
    
    2、==++Installation Option++==
    选择第二项 Install database software only
    点击 "Next >"
    
    3、==++Grid Options++==
    选择单例模式 Single instance database installation
    点击 "Next >"
    
    4、==++Product Languages++==
    选择添加简体中文
    点击 "Next >"
    
    5、==++Database Edition++==
    选择Enterprise Edition
    点击 "Next >"
    
    
    6、==++Installation Location++==
    确定数据软件的安装路径,自动读取前面Oracle环境变量中配置的值
    点击 "Next >",
    之后也是选择默认,不做修改,直接点击"Next >"
    
    7、==++Create Inventory++==
    /oracle/oraInventory
    点击"Next >"
    
    8、==++Prerequisite Checks++==
    勾上右上角的“ignore all”。单击“next”,再单击“finish”开始安装。
    安装过程中连接库时,会出现两个错误:(84%)
    1)ins_ctx.mk编译错误:  
    修改/oracle/product/11.2.0/db_1/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继续安装。
    2)”Error in invoking target 'agent nmhs' of makefile '/data/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk.' 
    解决方法:在makefile中添加链接libnnz11库的参数
    修改/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk,
    将$(MK_EMAGENT_NMECTL)
    修改为:$(MK_EMAGENT_NMECTL) -lnnz11
    点击Retry继续安装。
    
    9、最后等进度在100%的时候,按照里面的提示以root权限进入提示的地址,运行上面提示的两个sh文件。
    [root@IT202 oraInventory]# cd /oracle/oraInventory
    [root@IT202 oraInventory]# ./orainstRoot.sh
    
    [root@IT202 db_1]# cd /oracle/product/11.2.0/db_1
    [root@IT202 db_1]# ./root.sh

    2)、配置网络监听器:

    [oracle@IT202 bin]$ cd /oracle/product/11.2.0/db_1/bin
    [oracle@IT202 bin]$ ./netca

    #启动监听器:
    [oracle@IT203 bin]$ lsnrctl start

     3)、手工安装数据库:

    [oracle@IT202 bin]$ cd /oracle/product/11.2.0/db_1/bin
    [oracle@IT202 bin]$ ./dbca
    1)Create a Database
    2)Custom Database
    3)SID= ora11g
    4)Memory Size 70%
    5) Processes = 5000
    6) Database Character Set: ZHS16CGB231280
    7) USERS表空间为128M;SYSTEM表空间为2G,SYSAUX表空间为4G;
    8)redo log一般设置3-5组,每组2个成员,每个成员大小可以从100M到1G,建议为200M。

     4)、Oracle11g设置开机自启动【root】:

    【编辑/etc/oratab文件】

    [root@IT202 etc]# vi /etc/oratab
    ora11g:/oracle/product/11.2.0/db_1:Y

    【配置/etc/rc.d/rc.local】

    [root@IT202 rc.d]# vi /etc/rc.d/rc.local
    # add oracle start
    su oracle -lc "/oracle/product/11.2.0/db_1/bin/lsnrctl start"
    su oracle -lc /oracle/product/11.2.0/db_1/bin/dbstart
    # add end

    【在/etc/init.d/下创建Oracle服务启动脚本】

    [root@IT202 init.d]# vi /etc/init.d/oracle
    
    #!/bin/sh
    # chkconfig: 345 61 61
    # description: Oracle 11g R2 AutoRun Servimces
    # /etc/init.d/oracle
    #
    # Run-level Startup script for the Oracle Instance, Listener, and
    # Web Interface
    
    export ORACLE_BASE=/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
    export ORACLE_SID=ora11g
    export PATH=$PATH:$ORACLE_HOME/bin
    ORA_OWNR="oracle"
    
    # if the executables do not exist -- display error
    if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
    then
    echo "Oracle startup: cannot start"
    exit 1
    fi
    case "$1" in
    start)
    su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
    su $ORA_OWNR -lc "$ORACLE_HOME/bin/emctl start dbconsole"
    echo "Oracle Start Succesful!OK."
    ;;
    stop)
    su $ORA_OWNR -lc "$ORACLE_HOME/bin/emctl stop dbconsole"
    su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
    echo "Oracle Stop Succesful!OK."
    ;;
    reload|restart)
    $0 stop
    $0 start
    ;;
    *)
    echo $"Usage: `basename $0` {start|stop|reload|reload}"
    exit 1
    esac
    exit 0

    【将oracle脚本文件赋予执行权限】

    [root@IT202 init.d]# chmod 755 /etc/init.d/oracle

    【配置Oracle监听开机自启动服务】

    # 修改dbstart和dbshut启动、关闭脚本,使其启动数据库的同时也自动启动监听器(即启动数据库时启动监听器,停止数据库时停止监听器):

    # 备份源文件
    [oracle@IT202 bin]$ cp /oracle/product/11.2.0/db_1/bin/dbstart /oracle/product/11.2.0/db_1/bin/dbstart-bak
    [oracle@IT202 bin]$ cp /oracle/product/11.2.0/db_1/bin/dbshut /oracle/product/11.2.0/db_1/bin/dbshut-bak
    [oracle@IT202 bin]$ vi /oracle/product/11.2.0/db_1/bin/dbstart 
    # 修改为
    ORACLE_HOME_LISTNER
    =$ORACLE_HOME

    [oracle@IT202 bin]$ vi /oracle/product/11.2.0/db_1/bin/dbshut
    # 修改为
    ORACLE_HOME_LISTNER=$ORACLE_HOME

    【加入自动启动服务】

    [root@IT202 /]# ln -s /etc/rc.d/init.d/oracle /etc/rc2.d/S61oracle
    [root@IT202 /]# ln -s /etc/rc.d/init.d/oracle /etc/rc3.d/S61oracle
    [root@IT202 /]# ln -s /etc/rc.d/init.d/oracle /etc/rc4.d/S61oracle
    [root@IT202 /]# ln -s /etc/rc.d/init.d/oracle /etc/rc0.d/K61oracle
    [root@IT202 /]# ln -s /etc/rc.d/init.d/oracle /etc/rc6.d/K61oracle

    【将 oracle服务加入到系统服务】

    [root@IT202 /]# chkconfig --level 234 oracle on
    [root@IT202 /]# chkconfig --add oracle
    
    # 检查 oracle服务是否已经生效
    [root@IT202 /]# chkconfig --list  oracle
    oracle             0:关    1:关    2:开    3:开    4:开    5:开    6:关

     四、CentOS7添加静态路由:

     【添加永久路由】

    [root@IT202 /]# cd /etc/sysconfig/network-scripts/
    
    # 获取网路接口名称
    [root@IT202 network-scripts]# netstat -r
    Destination     Gateway         Genmask         Flags     MSS Window   irtt Iface
    default         gateway         0.0.0.0         UG        0   0        0    enp4s0f0

    【编辑或新建/etc/sysconfig/network-scripts/route-interface文件】

    [root@IT202 network-scripts]# vi /etc/sysconfig/network-scripts/route-enp4s0f0
    
    10.76.0.0/16 via 192.168.18.4 dev enp4s0f0
    10.78.0.0/16 via 192.168.18.4 dev enp4s0f0
    10.80.0.0/16 via 192.168.18.4 dev enp4s0f0

     五、CentOS7安装rlwrap:

    sqlplus环境里使用上下左右箭头和删除键

    【查看系统是否安装了readline】

    [root@IT202 /]# rpm -qa|grep readline
    readline-devel-6.2-10.el7.x86_64
    readline-6.2-10.el7.x86_64

    [root@IT202 /]# yum install readline-devel
    [root@IT202 /]# yum install readline

    【FTP软件】

    [root@IT202]# cp rlwrap-0.42.tar.gz /usr/local

    【解压&安装】

    [root@IT205 local]# unzip rlwrap-0.42.tar.zip
    [root@IT202 local]# tar -zxvf rlwrap-0.42.tar.gz
    [root@IT202 local]# cd rlwrap-0.42
    [root@IT202 rlwrap-0.42]# ./configure && make && make install
    [root@IT202 rlwrap-0.42]# which rlwrap
    /usr/local/bin/rlwrap

    【配置环境】

    # 用户.bash_profile 添加以下内容

     [oracle@IT203 ~]$ vi .bash_profile

    stty erase ^h
    alias sqlplus="rlwrap sqlplus"
    alias rman="rlwrap rmain"

    编辑/bin/sql文件

    [root@IT203 bin]# vi /bin/sql
    rlwrap sqlplus system/system

    [root@IT203 bin]# chmod 755 /bin/sql
  • 相关阅读:
    java命名规范:注重细节
    撒旦法撒旦法三阿斯顿发暗室逢灯
    369绿色浏览器开发记录
    时间过得好快
    C++进程间通信(常用理解例子)-买票
    MFC常用 控制对话框透明属性函数
    DedeCms 建站随笔(一)
    个人作业收官——软件工程实践总结
    第三次作业——个人作业——软件产品案例分析
    UML用例图
  • 原文地址:https://www.cnblogs.com/Q1013588888/p/9219128.html
Copyright © 2020-2023  润新知