1.安装Oracle 11g依赖包

关闭selinux
vi /etc/selinux/config
设置SELINUX=disabled

关闭防火墙
service iptables stop

[root@CentOS tmp]# yum install -y binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel make numactl sysstat libXp unixODBC unixODBC-devel

2.添加安装用户和用户组
[root@CentOS tmp]# groupadd oinstall
[root@CentOS tmp]# groupadd dba
[root@CentOS tmp]# useradd -g oinstall -G dba oracle
[root@CentOS tmp]# passwd oracle
[root@CentOS tmp]# id oracle
uid=1001(oracle) gid=1001(oinstall) 组=1001(oinstall),1002(dba)

创建安装目录
[root@localhost opt]# mkdir -p /opt/oracle/product/11.2.0
[root@localhost opt]# chown -R oracle:oinstall /opt/oracle
[root@localhost opt]# chmod -R 775 /opt/oracle

[root@localhost opt]# mkdir /opt/oraInventory
[root@localhost opt]# chown oracle:oinstall /opt/oraInventory;
[root@localhost opt]# chmod -R 775 /opt/oraInventory;

将解压好的oracle的database文件放入到oracle文件下,使oracle帐号对 /home/oracle/database 有执行权限,可使用如下命令将该目录赋予oracle帐号所有者,并拥有执行权限

[root@localhost database]# chmod -R 700 /opt/oracle/database
[root@localhost database]# chown -R oracle:oinstall /opt/oracle/database

3.修改内核参数配置文件
[root@CentOS ~]# vi /etc/sysctl.conf
添加以下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
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
执行以下命令是配置生效
[root@CentOS ~]# sysctl -p 
其中kernel.shmmax = 1073741824为本机物理内存(2G)的一半,单位为byte。

4.修改用户的限制文件
[root@CentOS ~]# vi /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文件:
[root@CentOS ~]# vi /etc/pam.d/login
添加以下内容:
session required  /lib64/security/pam_limits.so
session required   pam_limits.so

5.配置环境变量

[root@CentOS ~]# vi ~/.bashrc

TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/opt/oracle
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2/dbhome_1
export ORACLE_HOME
ORACLE_SID=orcl
export ORACLE_SID
ORACLE_TERM=xterm
export ORACLE_TERM
PATH=/usr/sbin:$PATH
PATH=$ORACLE_HOME/bin:$PATH
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export CLASSPATH
#LD_ASSUME_KERNEL=2.4.1; export LD_ASSUME_KERNEL
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
export LANG=en_US.utf8
export LANGUAGE=en_US.utf8
export NLS_LANG="Simplified Chinese_China.UTF8"
export LC_ALL=en_US.utf8

保存退出后执行如下命令使以上设置立即生效:
source /home/oracle/.bash_profile

Oracle安装时图形化界面乱码可以先执行下列命令再执行安装
[root@localhost database] export LANG=en_US;

/opt/oracle/database/runInstaller; ##执行该程序开始安装
[root@localhost database] ./runInstaller

Centos7Oracle安装过程中问题解决
安装过程中,在link binaries阶段出现2个错误,第一个是关于ins_ctx.mk,log显示:
/lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14'
原因据说是由于本机的glibc版本高于2.14(实际为2.17)。
解决方法:
yum install glibc-static
该软件包包含一个静态链接库:/usr/lib64/libc.a

修改/app/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk,将
ctxhx: $(CTXHXOBJ)
       $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
修改为:
ctxhx: $(CTXHXOBJ)
       -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a
点击Retry即可。

第二个错误是”Error in invoking target 'agent nmhs' of makefile'/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk.' 
解决方法,在makefile中添加链接libnnz11库的参数:
修改/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk,将
$(MK_EMAGENT_NMECTL)
修改为:
$(MK_EMAGENT_NMECTL) -lnnz11
点击Retry即可。

出现该问题bash: lsnrctl: command not found...解决办法

1.确认系统当前的ORACLE_HOME和ORACLE_SID环境变量
查看环境变量
echo $ORACLE_HOME
echo $ORACLE_SID

2.编辑环境变量
 vi /home/oracle/.bash_profile
source /home/oracle/.bash_profile

直接导入环境变量
export ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_3
export ORACLE_SID=orcl

数据库停止与启动

查看oracle是否启动
ps -ef|grep oracle

重启数据库服务:
    #su – oracle

    打开sqlplus

    #sqlplus /nolog

    #conn / as sysdba

    #shutdown immediate;  --关闭数据库

    #startup;   --启动数据库

    quit 退出sqlplus

重启监听服务:
    #su - oracle
    #lsnrctl stop  --关闭监听
    #lsnrctl start  --启动监听

检查oracle监听器运行状态
#lsnrctl status --命令查看

控制台服务启动
emctl start dbconsole启动oracle的em服务