纯属个人记录用。
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- 检查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 检查监听器是否有启动若没有启动,则在终端中输入 $ 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文件,内容如下:
主要就是修改下文件中ORA_HOME的路径,其他地方不需要修改
#!/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/112ORA_OWNER=oracleif [ ! -f $ORA_HOME/bin/dbstart ]thenecho "Oracle startup: cannot start"exitficase "$1" in'start')# Start the Oracle databases:echo "Starting Oracle Databases ... "echo "-------------------------------------------------" >> /var/log/oracledate +" %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracleecho "-------------------------------------------------" >> /var/log/oraclesu - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >>/var/log/oracleecho "Done"# Start the Listener:echo "Starting Oracle Listeners ... "echo "-------------------------------------------------" >> /var/log/oracledate +" %T %a %D : Starting Oracle Listeners as part of system up." >> /var/log/oracleecho "-------------------------------------------------" >> /var/log/oraclesu - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >>/var/log/oracleecho "Done."echo "-------------------------------------------------" >> /var/log/oracledate +" %T %a %D : Finished." >> /var/log/oracleecho "-------------------------------------------------" >> /var/log/oracletouch /var/lock/subsys/oracle;;'stop')# Stop the Oracle Listener:echo "Stoping Oracle Listeners ... "echo "-------------------------------------------------" >> /var/log/oracledate +" %T %a %D : Stoping Oracle Listener as part of system down." >> /var/log/oracleecho "-------------------------------------------------" >> /var/log/oraclesu - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >>/var/log/oracleecho "Done."rm -f /var/lock/subsys/oracle# Stop the Oracle Database:echo "Stoping Oracle Databases ... "echo "-------------------------------------------------" >> /var/log/oracledate +" %T %a %D : Stoping Oracle Databases as part of system down." >> /var/log/oracleecho "-------------------------------------------------" >> /var/log/oraclesu - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >>/var/log/oracleecho "Done."echo ""echo "-------------------------------------------------" >> /var/log/oracledate +" %T %a %D : Finished." >> /var/log/oracleecho "-------------------------------------------------" >> /var/log/oracle;;'restart')$0 stop$0 start;;esac
- 修改该文件的权限 #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