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服务