zoukankan      html  css  js  c++  java
  • CentOS6.4安装及配置oracle

    纯属个人记录用。

    CentOS安装的是开发人员版本,有部分东西已经安装上了,像jdk之类的都已经安装配置好了。

    以下记录root用户相关操作

     

    •     关闭防火墙,禁用SELinux          
      • 命令行输入# setup,在界面中选择防火墙,关闭防火墙
      • # vim /etc/selinux/config    修改SELINUX=disabled,然后:wq保存退出后,输入setenforce 0 使修改生效,或者重启下电脑
        clipboard 
    • 安装相关依赖包
      Oracle官方文档要求安装的包有:
      clipboard
      查看系统是否已经安装相关包:
      # rpm -q binutils compat-libstdc++-33 compat-libstcc++-33.i686 elfutils-libelf elfutils-libeld-devel gcc gcc-c++ glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat
      目前已经安装好了之后查询的结果:
      clipboard
      如果有未安装的包,则使用yum方式安装所属的包:
      # yum -y install binutils compat-libstdc++-33 compat-libstcc++-33.i686 elfutils-libelf elfutils-libeld-devel gcc gcc-c++ glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat
      最后还有一个libXp包一定要安装,否则安装oracle时会出现java exception
      #yum install libXp
      不过由于我安装的CentOS安装是是开发人员版本,这个库已经安装过了。若安装的是别的系统版本,请参考执行安装该库。
      在安装oracle过程中,环境检测那一步提示还缺少3个库,其中2个可以使用如下脚本进行安装,还有一个pdksh-5.2.14与ksh有冲突,在安装32位的oracle的时候可以忽略。
      # yum install unixODBC
      # yum install unixODBC-devel
    • 创建Oracle用户与组
      仅考虑单主机的情况下,简单点说就是仅考虑开发环境,不考虑真实情况下的啥RAC之类的配置
      • 建立群组oinstall          #groupadd oinstall
      • 建立群组dba               #groupadd dba
      • 新增用户oracle并将其加入oinstall和dba组    #useradd -m -g oinstall -G dba oracle
      • 测试帐号是否创建成功       #id oracle
      • 建立oracle用户的新密码     #passwd oracle
    • 将oracle用户加入到sudo群组中
      # vim /etc/sudoers          找到root那一行,在下面加入oracle ALL=(ALL) ALL    保存时需要使用:wq! (由于该文档为只读文档,需要增加!来强制保存)
      clipboard
    • 配置系统内核参数
      # vim /etc/sysctl.conf    参考oracle官方文档,补充了如下圈出来的部分内容在配置文件中。其中kernel.shmall和kernel.shmmax两项值在系统中默认已经够大了,没有做相应的修改。
      clipboard
      编辑完成之后,保存,执行
      # sysctl -p  启用刚刚做的变更
    • 编辑/etc/security/limits.conf用于 Checking Resource Limits for the Oracle Software Installation Users
      # vim /etc/security/limits.conf   加入最后五行
      oracle soft nproc 2047 
      oracle hard nproc 16384 
      oracle soft nofile 1024 
      oracle hard nofile 65536 
      oracle soft stack 10240 
      clipboard
    • 编辑/etc/pam.d/login
      # vim /etc/pam.d/login
      最后增加2行
      session required /lib/security/pam_limits.so
      session required pam_limits.so
      clipboard
    • 修改/etc/profile
      # vim /etc/profile
      将以下代码加入到profile档案中
      if [ $USER = "oracle" ]; then
          if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
          else
              ulimit -u 16384 -n 65536
          fi
      fi 
      clipboard
    • 创建oracle安装文件夹以及数据存放文件夹
      # mkdir /opt/oracle
      # mkdir /opt/oracle/112
      # chown -R oracle:dba /opt/oracle
    • 检查hosts文件中localhost的记录是否指向127.0.0.1,若没有的话后面配置oracle监听的时候会出现一些问题,导致无法启动监听,此处若没有的话手动添加次记录即可。
        以下操作使用新建的oracle帐号执行
            解压安装程序到/opt/oracle目录
            如果centos的中文环境,则在安装时会出现乱码,界面上面显示不正常,需要执行一下指令:
            $ export LANG=en_US
            接着在当oracle安装程序解压路径执行
            $ ./runInstaller
            即可出现安装界面,若界面显示不全,请调整系统的分辨率
            在安装过程中,版本选择,个人使用的话请选择桌面版,关于Oracle Home Location 以及Oracle Base 等请按照之前设置的进行配置,此处使用之前的配置后,在这个步骤只需要将UNIX DBA Group选择为dba以及输入SYS, SYSTEM等账号共享的database Password即可。然后选择Next即可。此后的步骤主要是目录选择和密码设置等,在安装程序完成之前,会弹框提示需要执行2个script脚本,注意:请先执行完脚本后再去点击安装界面的下一步。此脚本需要su到root。执行完之后可以打开网页版的em进行登录,测试。sys和system的密码与用户名一致,是在密码管理的时候进行了修改的。
            由于在linux中oracle安装的时候并不是以服务的形式安装的,所以每次系统重启后oracle不会启动,需要针对oracle自动启动做相关的设定。

        配置oracle启动,停止以及开机自启动
        启动和停止oracle
            首先切换到oracle用户   su - oracle
            接着输入 $ sqlplus "/as sysdba"        窗口变为SQL>  接着输入 SQL>startup    就可以正常启动数据库了。    另外,停止数据库的指令如下:SQL>shutdown immediate

        检查oracle的监听器是否正常
            在终端中输入 $ lsnrctl status        检查监听器是否有启动
            clipboard
            若没有启动,则在终端中输入 $ lsnrctl start    启动 监听器,然后再使用sqlplus连接数据库
            
        启动emctl
            网页版的em目前是木有反应的,就是因为emctl不会自动启动,需要单独启动,命令如下:$ emctl start dbconsole    该指令运行时间比较长
     
        oracle启动和停止脚本
    • 修改oracle系统配置文件,/etc/oratab  只有这样,oracle自带的dbstart和dbshut才能够发挥作用
            # vim /etc/oratab        将N修改为Y
            clipboard
    • 在/etc/init.d/目录下创建oracle文件,内容如下:
      #!/bin/sh
      # chkconfig: 35 80 10
       
      # description: Oracle auto start-stop script.
       
       
       
      #
       
      # Set ORA_HOME to be equivalent to the $ORACLE_HOME
       
      # from which you wish to execute dbstart and dbshut;
       
      #
       
      # Set ORA_OWNER to the user id of the owner of the
       
      # Oracle database in ORA_HOME.
       
      ORA_HOME=/opt/oracle/112
       
      ORA_OWNER=oracle
       
      if [ ! -f $ORA_HOME/bin/dbstart ]
       
      then
       
          echo "Oracle startup: cannot start"
       
          exit
       
      fi
       
      case "$1" in
       
      'start')
       
      # Start the Oracle databases:
       
      echo "Starting Oracle Databases ... "
       
      echo "-------------------------------------------------" >> /var/log/oracle
       
      date +" %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle
       
      echo "-------------------------------------------------" >> /var/log/oracle
       
      su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >>/var/log/oracle
       
      echo "Done"
       
       
       
      # Start the Listener:
       
      echo "Starting Oracle Listeners ... "
       
      echo "-------------------------------------------------" >> /var/log/oracle
       
      date +" %T %a %D : Starting Oracle Listeners as part of system up." >> /var/log/oracle
       
      echo "-------------------------------------------------" >> /var/log/oracle
       
      su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >>/var/log/oracle
       
      echo "Done."
       
      echo "-------------------------------------------------" >> /var/log/oracle
       
      date +" %T %a %D : Finished." >> /var/log/oracle
       
      echo "-------------------------------------------------" >> /var/log/oracle
       
      touch /var/lock/subsys/oracle
       
      ;;
       
       
       
      'stop')
       
      # Stop the Oracle Listener:
       
      echo "Stoping Oracle Listeners ... "
       
      echo "-------------------------------------------------" >> /var/log/oracle
       
      date +" %T %a %D : Stoping Oracle Listener as part of system down." >> /var/log/oracle
       
      echo "-------------------------------------------------" >> /var/log/oracle
       
      su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >>/var/log/oracle
       
      echo "Done."
       
      rm -f /var/lock/subsys/oracle
       
       
       
      # Stop the Oracle Database:
       
      echo "Stoping Oracle Databases ... "
       
      echo "-------------------------------------------------" >> /var/log/oracle
       
      date +" %T %a %D : Stoping Oracle Databases as part of system down." >> /var/log/oracle
       
      echo "-------------------------------------------------" >> /var/log/oracle
       
      su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >>/var/log/oracle
       
      echo "Done."
       
      echo ""
       
      echo "-------------------------------------------------" >> /var/log/oracle
       
      date +" %T %a %D : Finished." >> /var/log/oracle
       
      echo "-------------------------------------------------" >> /var/log/oracle
       
      ;;
       
       
       
      'restart')
       
      $0 stop
       
      $0 start
       
      ;;
       
      esac
       
      主要就是修改下文件中ORA_HOME的路径,其他地方不需要修改
    • 修改该文件的权限         #chmod 755 /etc/init.d/oracle
    • 添加服务     #chkconfig --level 35 oracle on    
      如果提示chkconfig命令未找到的话,就表示需要修改用户的环境变量
      打开主目录下的.bash_profile文件   # vim ~/.bash_profile      在PATH中增加上/sbin目录,保存之后,通过source ~/.bash_profile 使修改生效
      clipboard
    • 需要在关机和重启之前停止数据库
      # ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle   //关机
      # ln -s /etc/init.d/oracle /etc/rc6.d/K01oracle   //重启
    • 使用方法
      # service oracle start        //启动oracle
      # service oracle stop        //关闭oracle
      # service oracle restart     //重启oracle
       
    作者:bluesky4485
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    【webpack 系列】进阶篇
    【webpack 系列】基础篇
    手写 Promise 符合 Promises/A+规范
    React-redux: React.js 和 Redux 架构的结合
    Redux 架构理解
    javascript 中的 this 判定
    编译原理
    vue 响应式原理
    强大的版本管理工具 Git
    js实现跨域(jsonp, iframe+window.name, iframe+window.domain, iframe+window.postMessage)
  • 原文地址:https://www.cnblogs.com/bluesky4485/p/3071261.html
Copyright © 2011-2022 走看看