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
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/bluesky4485/p/3071261.html