您的位置:首页 > 数据库 > Oracle

CentOS6.4安装及配置oracle

2013-05-10 15:18 483 查看

纯属个人记录用。

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

以下记录root用户相关操作


关闭防火墙,禁用SELinux

命令行输入# setup,在界面中选择防火墙,关闭防火墙

# vim /etc/selinux/config 修改SELINUX=disabled,然后:wq保存退出后,输入setenforce 0 使修改生效,或者重启下电脑




安装相关依赖包
Oracle官方文档要求安装的包有:



查看系统是否已经安装相关包:
# 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
目前已经安装好了之后查询的结果:



如果有未安装的包,则使用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! (由于该文档为只读文档,需要增加!来强制保存)




配置系统内核参数
# vim /etc/sysctl.conf 参考oracle官方文档,补充了如下圈出来的部分内容在配置文件中。其中kernel.shmall和kernel.shmmax两项值在系统中默认已经够大了,没有做相应的修改。



编辑完成之后,保存,执行# 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




编辑/etc/pam.d/login
# vim /etc/pam.d/login
最后增加2行
session required /lib/security/pam_limits.so
session required pam_limits.so



修改/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





创建oracle安装文件夹以及数据存放文件夹
# mkdir /opt/oracle

# mkdir /opt/oracle/112

# chown -R oracle:dba /opt/oracle

[b]检查hosts文件中localhost的记录是否指向127.0.0.1,若没有的话后面配置oracle监听的时候会出现一些问题,导致无法启动监听,此处若没有的话手动添加次记录即可。[/b]

以下操作使用新建的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 检查监听器是否有启动




若没有启动,则在终端中输入 $ lsnrctl start 启动 监听器,然后再使用sqlplus连接数据库

启动emctl

网页版的em目前是木有反应的,就是因为emctl不会自动启动,需要单独启动,命令如下:$ emctl start dbconsole 该指令运行时间比较长

oracle启动和停止脚本

修改oracle系统配置文件,/etc/oratab 只有这样,oracle自带的dbstart和dbshut才能够发挥作用

# vim /etc/oratab 将N修改为Y





在/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 使修改生效





需要在关机和重启之前停止数据库

# 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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: