欢迎投稿

今日深度:

Linux CentOS7安装Oracle11g的超完美新手教程,

Linux CentOS7安装Oracle11g的超完美新手教程,


目录
  • 1 基本环境介绍
  • 2 检测是否安装了Oracle
  • 3 卸载Oracle
    • 3.1 重新做一次虚拟机
    • 3.2 卸载Oracle
  • 4 安装准备
    • 4.1 建立oracle用户和用户组
    • 4.2 为Oracle的安装创建相关目录
    • 4.3 优化OS内核参数
    • 4.4 限制oracle用户的shell权限
    • 4.5 为Oracle用户添加Oracle环境变量
    • 4.6 配置hostname(本机IP映射)
    • 4.7 安装VNC&Oracle相关依赖
      • 4.7.1 配置yum源
      • 4.7.2 安装依赖
      • 4.7.4 如果安装失败的依赖进行单独安装
      • 4.7.5 安装语言包
    • 4.8 开放端口/关闭防火墙
      • 4.8.1 开放端口
      • 4.8.2 关闭防火墙
    • 4.9 上传Oracle安装文件
      • 4.10 安装
        • 4.10.1 增加或修改oracle的环境变量
        • 4.10.2 配置监听程序
    • 5 创建数据库
      • 5.1 删除实例
        • 5.2 登陆Oracle
        • 总结

          1 基本环境介绍

          Linux我们默认使用CentOS 7 x64

          所以为了对应操作系统我们使用64位的Oracle 11g数据库

          Oracle11g需要准备至少:2核CPU、2G内存、8GB的硬盘空间

          • 查看cpu详细信息

          lscbu

          • 查看内存详细信息

          free -h

          • 查看存储盘详细信息

          lsblk

          确保服务器能访问外网

          • 可以ping www.baidu.com进行测试

          2 检测是否安装了Oracle

          查看是否有 oracle 的进程

          ps -ef | grep ora

          检查是否有oracle用户

          # 一般安装oracle的时候默认会建一个oracle用户
          id oracle
          

          3 卸载Oracle

          3.1 重新做一次虚拟机

          因为Oracle的卸载极其麻烦,从效率上讲甚至不如直接重新安装虚拟机

          3.2 卸载Oracle

          4 安装准备

          Oracle的安装需要图形化界面,所以身为命令形式的Linux操作系统就需要安装图形化界面:VNC;

          为了安全起见,不建议使用root做为vnc用户,所以,安装oracle时要建立单独的用户去安装oracle相关

          4.1 建立oracle用户和用户组

          # 在Linux中创建名为oinstall的用户组
          groupadd oinstall
          # 创建dba用户组
          groupadd dba
          # 创建oper用户组
          groupadd oper
          # 为dba和oper用户组创建oracle用户
            # -g 主用户组
            # -G 附加组
          useradd -g oinstall -G dba,oper oracle
          # 将oracle用户的密码设置为oracle
          echo "oracle"|passwd oracle --stdin
          

          4.2 为Oracle的安装创建相关目录

          # 建文件夹
          mkdir -p /u01/app/oracle/product/11.2.0/db_1
          # 改变属主和属组
          chown -R oracle:oinstall /u01/app
          # 为文件夹授权
          chmod -R 775 /u01/app
          

          4.3 优化OS内核参数

          vim /etc/sysctl.conf
          # 添加如下内容
          fs.aio-max-nr = 1048576
          fs.file-max = 6815744
          kernel.shmall = 2097152
          # kernel.shmmax 参数设置为物理内存的一半
          kernel.shmmax = 1200000000
          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
          # 因为刚自定义配置了shmmax、shmmni、shmall,所以注释掉原有自带的shmmax、shmall这些属性
          

          保存并退出后,需要使使参数生效

          sysctl -p

          4.4 限制oracle用户的shell权限

          为了优化性能,需要添加oracle用户的限制参数

          vim /etc/security/limits.conf 
          # 在文件末尾添加下面四行
          # 设置进程数软限制
          oracle soft nproc 2047
          # 设置进程数硬限制
          oracle hard nproc 16384
          # 设置文件数软限制
          oracle soft nofile 1024
          # 设置文件数硬限制
          oracle hard nofile 65536
          # 进程会话限制可以采用pam_limits认证模块来实现,通过修改登录程序login的PAM设置以启用该认证
          vim /etc/pam.d/login # 在文件最后添加下面一行
          session required /lib64/security/pam_limits.so
          # 一般都是64位系统,64位系统需要设置为/lib64/security/pam_limits.so 否则重启服务器后就会出现命令行无法登录,但是通过桌面方式能登录的情况
          session required pam_limits.so
          

          使参数生效

          source /etc/profile
          

          4.5 为Oracle用户添加Oracle环境变量

          su - oracle
          vim .bash_profile
          # 添加如下内容
          ORACLE_BASE=/u01/app/oracle
          ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
          PATH=$PATH:$ORACLE_HOME/bin
          ORACLE_SID=orcl
          NLS_LANG="SIMPLIFIED CHINESE_CHINA.UTF8"
          export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
          
          if [ $USER = "oracle" ]; then
              if [ $SHELL = "/bin/ksh" ]; then
                  ulimit -p 16384
                  ulimit -n 65536
              else
                  ulimit -u 16384 -n 65536
              fi
          fi
          

          退出后需要刷新环境变量

          source .bash_profile
          或
          source /home/oracle/.bash_profile
          

          4.6 配置hostname(本机IP映射)

          安装oracle时,一定要保证主机名出现在/etc/hosts中

          vim /etc/hosts
          # 添加如下内容
          127.0.0.1   localhost
          192.168.222.30	mydb
          

          测试hostname

          ping -c 3 mydb
          

          /etc/sysconfig/network中的hostname要与/etc/hosts中的一致

          vim /etc/sysconfig/network
          # 添加如下内容
          NETWORKING=yes
          HOSTNAME=mydb
          # 服务器IP
          GATEWAY=192.168.222.30
          NTPSERVERARGS=iburst
          

          4.7 安装VNC&Oracle相关依赖

          4.7.1 配置yum源

          cd /etc
          mv yum.repos.d yum.repos.d.bak
          mkdir yum.repos.d
          wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
          # 清理缓存
          yum clean all
          # 建缓存
          yum makecache
          #安装epel源
          yum -y install epel-release
          

          4.7.2 安装依赖

          #图形界面必备`X Window System`
          yum -y groupinstall "X Window System"
          #安装VNC+图形、oracle需要的依赖(软件)
          yum -y install \
          binutils \
          compat-libcap1  \
          compat-libstdc++-33 \
          compat-libstdc++-33*.i686 \
          elfutils-libelf-devel \
          gcc \
          gcc-c++ \
          glibc*.i686 \
          glibc \
          glibc-devel \
          glibc-devel*.i686 \
          ksh \
          libgcc*.i686 \
          libgcc \
          libstdc++ \
          libstdc++*.i686 \
          libstdc++-devel \
          libstdc++-devel*.i686 \
          libaio \
          libaio*.i686 \
          libaio-devel \
          libaio-devel*.i686 \
          make \
          sysstat \
          unixODBC \
          unixODBC*.i686 \
          unixODBC-devel \
          unixODBC-devel*.i686 \
          libXp
          

          4.7.3 检查依赖是否安装完成

          rpm -q \
          binutils \
          compat-libstdc++-33 \
          elfutils-libelf \
          elfutils-libelf-devel \
          expat \
          gcc \
          gcc-c++ \
          glibc \
          glibc-common \
          glibc-devel \
          glibc-headers \
          libaio \
          libaio-devel \
          libgcc \
          libstdc++ \
          libstdc++-devel \
          make \
          pdksh \
          sysstat \
          unixODBC \
          unixODBC-devel | grep "not installed"
          

          4.7.4 如果安装失败的依赖进行单独安装

          方法一:通过yum安装

          yum -y install pdksh(安装失败的package)
          

          方法二:wget命令直接下载pdksh的rpm包,下载到至/tmp/

          wget -O /tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
          # 安装pdksh
          rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
          

          4.7.5 安装语言包

          服务器&VNC&Oracle安装包语言要统一,这里我使用的是中文安装包,为避免中文乱码,需要安装中文语言包(如果你都是英文可以忽略此步骤)

          —————上传方法—————

          # 1.切换至oracle安装目录
          cd /u01/
          # 2.将文件上传至服务器
          rz/sz
          # 或
          shell工具拖拉拽
          # 或
          # ---------------------------------------------------------------
          scp -r /Users/nan/Desktop/Oracle  root@10.10.1.104:/opt/test/
            # 解析
            scp    -r           dir              username@host:dir
            命令   递归       要拷贝的文件路径   目的主机用户名@目的主机ip:目的路径
          # ---------------------------------------------------------------
          # 3.安装中文字体包
          yum –y install pdksh-5.2.14-37.el5_8.1.x86_64.rpm
          

          4.8 开放端口/关闭防火墙

          4.8.1 开放端口

          防火墙放行VNC端口5901和Oracle默认端口1521

          编辑iptables, 开放1521端口:

          sudo vi /etc/sysconfig/iptables
          -A INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT 
          

          重启防火墙

          sudo service iptables restart
          

          保存配置,以便linux重启后依然有效

          sudo service iptables save 
          

          查看防火墙规则:

          sudo iptables -L –n
          

          4.8.2 关闭防火墙

          service iptables stop
          chkconfig iptables off
          vim /etc/sysconfig/selinux
          SELINUX=enforcing改成SELINUX=disabled
          

          4.9 上传Oracle安装文件

          切换用户并切换目录

          xhost +
          su - oracle
          cd /u01/sw
          

          上传Linux-x86-64_1of7.zip和Linux-x86-64_2of7.zip文件至/u01/sw目录上传方法

          解压缩安装文件

          unzip linux.x64_11gR2_database_1of2.zip
          unzip linux.x64_11gR2_database_2of2.zip
          

          完成后切换root用户,复制授权

          su - root
          mkdir /home/oracle/etc/
          cp /db/database/response/* /home/oracle/etc/
          chmod 777 /home/oracle/etc/*.rsp
          

          登录oracle用户

          su – oracle
          vi /home/oracle/etc/db_install.rsp
          # 信息如下:
          oracle.install.option=INSTALL_DB_SWONLY
          UNIX_GROUP_NAME=oinstall
          INVENTORY_LOCATION=/db/app/oracle/oraInventory
          SELECTED_LANGUAGES=en,zh_CN
          ORACLE_HOSTNAME=oracle
          ORACLE_HOME=/db/app/oracle/product/11.2.0/db_1
          ORACLE_BASE=/db/app/oracle
          oracle.install.db.InstallEdition=EE
          oracle.install.db.isCustomInstall=true
          oracle.install.db.DBA_GROUP=dba
          oracle.install.db.OPER_GROUP=oinstall
          oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
          oracle.install.db.config.starterdb.globalDBName=orcl
          oracle.install.db.config.starterdb.SID=orcl
          oracle.install.db.config.starterdb.memoryLimit=512
          oracle.install.db.config.starterdb.password.ALL=oracle
          DECLINE_SECURITY_UPDATES=true
          

          4.10 安装

          执行Oracle安装文件

          su - oracle
          
          ./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq
          

          安装期间可以使用tail命令监看oracle的安装日志

          cd /db/app/oracle/oraInventory/logs/
          tail -f installActions2021-11-10_10-38-29AM.log
          

          安装完成,提示Successfully Setup Software

          img

          使用root用户执行脚本

          su - root/db/app/oracle/product/11.2.0/db_1/root.sh

          4.10.1 增加或修改oracle的环境变量

          su  - oracle
          
          vi ~/.bash_profile
          
          export ORACLE_HOME=/db/app/oracle/product/11.2.0/db_1
          export TNS_ADMIN=$ORACLE_HOME/network/admin
          export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
          export PATH=${PATH}:/usr/bin:/bin:/usr/local/bin
          export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
          export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
          export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
          export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
          export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
          export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
          export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
          export ORACLE_OWNER=oracle
          export SPFILE_PATH=$ORACLE_HOME/dbs
          export ORA_NLS10=$ORACLE_HOME/nls/data
          

          使配置生效

          source ~/.bash_profile
          

          4.10.2 配置监听程序

          配置监听

          # 确保在oracle目录的bin下
          pwd
          /db/app/oracle/product/11.2.0/db_1/bin
          ./netca /silent /responseFile /home/oracle/etc/netca.rsp
          

          启动监听

          # 确保在oracle目录的bin下
          pwd
          /db/app/oracle/product/11.2.0/db_1/bin
          # 启动监听
          lsnrctl start
          # 查看监听状态
          lsnrctl start
           
          LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-MAY-2019 00:13:21
           
          Copyright (c) 1991, 2009, Oracle.  All rights reserved.
           
          Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1522)))
          STATUS of the LISTENER
          ------------------------
          Alias                     LISTENER
          Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
          Start Date                25-MAY-2019 00:05:55
          Uptime                    0 days 0 hr. 7 min. 32 sec
          Trace Level               off
          Security                  ON: Local OS Authentication
          SNMP                      OFF
          Listener Parameter File   /db/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
          Listener Log File         /db/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
          Listening Endpoints Summary...
            (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1522)))
            (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1522)))
          The listener supports no services
          The command completed successfully
          

          监听状态

          lsnrctl start
          # 显示如下
          LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-MAY-2019 00:13:21
          Copyright (c) 1991, 2009, Oracle.  All rights reserved.
          Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1522)))
          

          5 创建数据库

          编辑应答文件

          vi /etc/dbca.rsp
          GDBNAME="orcl.oracle" 
          SID="orcl"
          SYSPASSWORD = "oracle" 
          SYSTEMPASSWORD = "oracle" 
          CHARACTERSET="AL32UTF8" 
          NATIONALCHARACTERSET="UTF8"
          # 执行:
          $ORACLE_HOME/bin/dbca -silent -responseFile /home/oracle/etc/dbca.rsp
          

          建库

          pwd
          /db/app/oracle/product/11.2.0/db_1/bin
          
          dbca -silent -responseFile etc/dbca.rsp
          # 至此完成数据库实例的创建
          

          设置Oracle开机启动

          vim /etc/oratab
          # 把“N”改成“Y”
          orcl:/db/app/oracle/product/11.2.0/db_1:Y 
          

          5.1 删除实例

          [oracle@oracle bin]$ vi /etc/oratab
          orcl:/db/app/oracle/product/11.2.0/db_1:Y  # //把“N”改成“Y”
          # 保存退出
          [oracle@oracle bin]$ pwd
          /db/app/oracle/product/11.2.0/db_1/bin
          # 通过dbstart 启动此实例,监听器
          ## ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
          ## Usage: ./dbstart ORACLE_HOME
          [oracle@oracle bin]$ ./dbstart $ORACLE_HOME;
          # oracle的进程关闭,监听器也停止;
          [oracle@oracle bin]$ ./dbshut $ORACLE_HOME;
          # 启动监听
          [oracle@oracle bin]$ ./lsnrctl start;
          # 查看监听
          [oracle@oracle bin]$ ./lsnrctl status
          

          5.2 登陆Oracle

          [oracle@oracle bin]$ pwd
          /db/app/oracle/product/11.2.0/db_1/bin
          [oracle@oracle bin]$ ./sqlplus /nolog
          # 进入系统管理用户
          SQL> conn / as sysdba
          Connected to an idle instance.
          # 启动oracle实例
          SQL> startup;
          

          1、使用oracle用户登录桌面,打开终端运行安装程序

          [root@oracledb ~] cd /ora/database
          [root@oracledb ~] ./runInstaller

          1)订阅邮件跳过

          CentOS7安装Oracle11G完整版图文教程一(基础安装)

          2)选择忽略更新(或者让选择桌面版还是服务器版,如果有选择服务器版)

          CentOS7安装Oracle11G完整版图文教程一(基础安装)

          3)这里选择仅安装数据库,稍后再配置初始化数据。

          CentOS7安装Oracle11G完整版图文教程一(基础安装)

          4):选择单实例安装。

          CentOS7安装Oracle11G完整版图文教程一(基础安装)

          5):语言,linux服务器上就别想什么中文这些了,就默认英文完事。

          CentOS7安装Oracle11G完整版图文教程一(基础安装)

          6):默认

          CentOS7安装Oracle11G完整版图文教程一(基础安装)

          7):这里就出现最开始创建的相应目录信息了,会自动读取。

          CentOS7安装Oracle11G完整版图文教程一(基础安装)

          8):下一步

          CentOS7安装Oracle11G完整版图文教程一(基础安装)

          9):选择group 组为之前创建好的oinstall

          CentOS7安装Oracle11G完整版图文教程一(基础安装)

          10):安装的过程中可能会出现如下的一些警告信息,如提示semmni为0 的问题,该问题一直没有找到原因,我们在上面修改内核的过程中就已经调整了kernel.sem = 250 32000 100 128 但是检测无法通过(暂时无解)、其他的一些依赖组件提示,其实我们已经安装好了,只是centos7上yum安装的依赖包要比oracle 11g 所需的包更新,版本更高,所以可以直接忽略这些提示(勾选 ignore all)。

          CentOS7安装Oracle11G完整版图文教程一(基础安装)

          3、安装到最后的时候会出现一个提示:需要用root权限执行2个shell脚本,那么我们在之前的root用户终端下运行提示中的对应脚本文件即可。

          这里或者更早前的步骤就可能会出现一个很神奇(zhizhang)的问题,对话框可能无法正常弹出,测试在VM虚拟机或者云服务器,如阿里云等都这样,但是用鼠标可以拖开。是的,你没有看错,直接拖出对话框。这个问题不知道原因,有知道的朋友请留言告知,万分感谢。

          还有可能出现一个压根儿就不能拖得对话框(阿里云上反复测试,就是会出现)最后没辙了,本地跑虚拟机一步步的模拟安装,发现是一个警告提示,一般按4次tab键即可切换到下一步选项回车即可。

          4、安装完成后还需要创建数据库,还是同样在Oracle用户桌面环境下,重新打开一个终端,输入 dbca 命令即可弹出相应的数据库创建向导。

          CentOS7安装Oracle11G完整版图文教程一(基础安装)

          如果提示没有这个命令,那么请详细检查一下上述的依赖包是否正确安装,另外创建过程中如果出现提示oracle not available 检查是否已添加主机名到hosts文件中。

          总结

          到此这篇关于Linux CentOS7安装Oracle11g的文章就介绍到这了,更多相关Linux CentOS7安装Oracle11g内容请搜索PHP之友以前的文章或继续浏览下面的相关文章希望大家以后多多支持PHP之友!

          您可能感兴趣的文章:
          • centos7下安装oracle11gR2的详细步骤
          • centos7.7安装oracle11g脚本(推荐)

          www.htsjk.Com true http://www.htsjk.com/oracle/45425.html NewsArticle Linux CentOS7安装Oracle11g的超完美新手教程, 目录 1 基本环境介绍 2 检测是否安装了Oracle 3 卸载Oracle 3.1 重新做一次虚拟机 3.2 卸载Oracle 4 安装准备 4.1 建立oracle用户和用户组 4.2 为Oracle的...
          评论暂时关闭