Linux Redhat5.8安装Oracle 11g

光盘yum源配置

[root@WMStest ~]# cat > /etc/yum.repos.d/local.repo << EOF
[rhel5-BaseOS]
name=rhel5-BaseOS
baseurl=file:///mnt/hgfs/Server
gpgcheck=0
#gpgkey=file:///mnt/hgfs/RPM-GPG-KEY-redhat-release
enabled=1
EOF

注:光盘挂载到 /mnt/hgfs/下
验证是否挂载成功
yum clean all   
yum repolist
yum list all

注:不报错就表示配置正确

禁用SElinux

sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

安装Oracle 11g依赖组件

[root@WMStest ~]# yum install libaio-devel-0.3.106   sysstat-7.0.2 unixODBC-unixODBC-2.2.11 unixODBC-devel-2.2.11 -y
验证是否安装成功
[root@WMStest ~]# rpm -q libaio-devel-0.3.106   sysstat-7.0.2 unixODBC-unixODBC-2.2.11 unixODBC-devel-2.2.11

创建用户和组

[root@WMStest ~]# groupadd -g 5001 oinstall
[root@WMStest ~]# groupadd -g 5002 dba
[root@WMStest ~]# useradd -u 5001 -g oinstall -G dba oracle
[root@WMStest ~]# passwd oracle

创建目录并赋权限

[root@WMStest ~]# mkdir -p /u01/app/oracle
[root@WMStest ~]# chown -R oracle:oinstall /u01/app/oracle
[root@WMStest ~]# chmod -R 775 /u01/app/oracle
[root@WMStest ~]# chown -R oracle:oinstall /u01/app     
[root@WMStest ~]# chmod -R 775 /u01/app

修改硬件资源限制

查看资源情况
[root@WMStest ~]$ ulimit -a

修改 /etc/security/limits.conf
先备份 /etc/security/limits.conf
[root@WMStest ~]# cp /etc/security/limits.conf /etc/security/limits.conf.bak

修改 /etc/security/limits.conf 增加如下两行(根据安装过程提示的,已安装提示实际为准)
oracle hard nofile 65536cd
oracle soft nofile 1024

root用户修改 /etc/pam.d/login启动文件 增加以下内容
echo "session required /lib64/security/pam_limits.so">>/etc/pam.d/login

修改内核资源

先备份/etc/sysctl.conf
[root@WMStest ~]$ cp /etc/sysctl.conf /etc/sysctl.conf.bak

查询当前系统内核使用的参数 (可选项)
sysctl -a |grep shm
sysctl -a |grep fs.aio
sysctl -a |grep fs.file
sysctl -a |grep sem
sysctl -a |grep net.core.rmem
sysctl -a |grep net.core.wmem
sysctl -a |grep net.ipv4.ip_local_port_range

修改/etc/sysctl.conf 增加如下内容
#ORACLE SETTING
kernel.sem = 250 32000 32 128
fs.file-max = 6815744
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
fs.aio-max-nr = 1048576
kernel.sem = 250 32000 100 128

写入完后执行使设置立即生效
sysctl -p

切换到oracle用户下编辑 .bash_profile添加如下内容

export TMP=/tmp
export TMPDIR=$TMP

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm

export PATH=/usr/sbin:/usr/local/bin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

执行安装

1.上传oracle客户端软件到指定目录解压
2.切换到oracle用户打开终端,进入解压路径执行./runInstaller
3.安装完后验证

  1)执行切换用户命令 su - oracle (一定要加“-”)
    加横杠“-”
    有横杠 login shell:用户切换,更改工作目录,加载所有用户环境配置

  2)sqlplus /nolog(只是启动sqlplus而不连接数据库,使用nolog参数)
    
        出现SQL> 则表示安装正确
 
  3)退出SQL>  输入EXIT命令或QUIT命令,退出sqlplus工具
注:输入用户名和密码提示
ORA-12162: TNS:net service name is incorrectly specified
原因是环境变量里没有指定数据库实例增加即可
如增加:export ORACLE_SID=orcl

启动Oracle服务并启动监听

启动Oracle服务

重启Linux服务器后,Oracle服务还需要手动启动。启动步骤如下:

登录到Linux服务器,并切换到oracle用户权限下(命令:su - oracle)
运行sqlplus命令,进入sqlplus环境,并添加nolog参数,表示不登录 (命令:sqlplus /nolog)
以系统管理员的身份连接数据库 (命令:conn /as sysdba)
启动数据库实例 (命令:startup)

启动Oracle监听服务

有时候启动Oracle服务后,依然无法通过Navicat等工具连接到Oracle数据库(确定不是OCI的问题)。那么有可能是Oracle的监听服务还没有打开。打开监听服务步骤如下

exit退到oracle用户
检查监听服务是否启动(命令:lsnrctl status)
启动监听服务(命令:lsnrctl start)