本文章以11.2.0.4版本安装为案例,其它oracle 11g版本安装都类似1、安装操作系统2、关闭防火墙和selinux安全设置3、配置yum源4、安装依赖包(oracle软件安装时必须使用到的)5、创建用户和组(用于安装oracle数据库软件)6、配置操作系统参数和内核限制7、规划Oracle数据库软件和Oracle数据库安装目录8、Oracle用户环境变量设置9、上传和检验Oracle软件安装包10、解压安装包11、安装数据库软件12、安装补丁(可选项,安装数据库前将补丁安装,后续不需要运行数据字典升级脚本了)13、安装数据库
1、关闭防火墙和selinux安全设置
systemctl status firewalld.servicesystemctl stop firewalld.servicesystemctl disable firewalld.servicesystemctl list-unit-files|grep firewalld
2、关闭selinux安全限制
方法一cat >/etc/sysconfig/selinux <<EOFSELINUX=disabledSELINUXTYPE=targetedEOFcat /etc/sysconfig/selinux方法二sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/configcat /etc/selinux/config
3、配置yum源
#挂载本地ios镜像mkdir /mnt/cdrommount /dev/sr0 /mnt/cdromdf -h | tail -n 1cd /mnt/cdrom && lsmkdir /etc/yum.repos.d/backup && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/cat >/etc/yum.repos.d/dvd.repo<<EOF[RHEL]name=RHEL7baseurl=file:///mnt/cdromgpgcheck=0gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7enabled=1EOFyum clean allyum makecache#测试yum安装是否成功,下面这些包也是经常需要使用的yum install tree -yyum install net-tools lrzsz -yyum install wget -yyum install lrzsz -yyum install unzip -yyum install vim -y
4、安装依赖包(oracle软件安装时必须使用到的)
yum install binutils-devel.x86_64 compat-libstdc++-33.i686 compat-libstdc++-33.x86_64 ksh* elfutils-libelf.x86_64 glibc.x86_64 glibc.i686 glibc-common.x86_64 libaio.x86_64 libaio.i686 libaio-devel.i686 libaio-devel.x86_64 libgcc.x86_64 libgcc.i686 libstdc++.x86_64 libstdc++.i686 make.x86_64 unixODBC.i686 unixODBC.x86_64 unixODBC-devel.i686 unixODBC-devel.x86_64 elfutils-libelf-devel.x86_64 gcc.x86_64 gcc-c++.x86_64 glibc-devel.x86_64 glibc-devel.i686 kernel-headers.x86_64 libgomp.x86_64 libstdc++-devel.x86_64 sysstat.x86_64 -yrpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm备注:linux7版本需要单独安装上面这个rpm包,否则在安装检查依赖包阶段时会提示缺失这个rmp包#后面这两个安装包主要用于图形界面方式安装,如果静默安装,可以跳过这两个依赖包的安装yum install xorg-x11-apps.x86_64 -yyum install xorg-x11-utils.x86_64 -y
5、创建用户和组(用于安装oracle数据库软件)
groupadd -g 2000 oinstallgroupadd -g 2001 dbauseradd -g oinstall -G dba -u 2001 oracleecho "oracle"|passwd --stdin oracle备注1.如果是RAC环境,建议所有的用户和组的id都一致,可避免一些安装问题2.对于运行oracle软件的用户,没有明确归档必须为"oracle"用户,可以选择其它用户名,其它用户名运行oracle软件更加安全。
6、配置操作系统参数和内核限制
1)、备份原有文件cp /etc/hostname /etc/hostname_$(date +%F)cp /etc/hosts /etc/hosts_$(date +%F)cp /etc/sysctl.conf /etc/sysctl.conf_$(date +%F)cp /etc/security/limits.conf /etc/security/limits.conf_$(date +%F)cp /etc/pam.d/login /etc/pam.d/login_$(date +%F)cp /etc/profile /etc/profile_$(date +%F)2)、修改主机名hostnamectl set-hostname host013)、修改/etc/hosts文件[root@host01 cdrom]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.11.16 host014)、修改/etc/sysctl.conf内核参数文件cat /etc/sysctl.confkernel.shmall = 4294967296kernel.shmmax = 68719476736kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 6815744fs.aio-max-nr = 1048576net.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备注:主要是kernel.shmmax和kernel.shmall两个参数可能需要重新配置shmmax= 配置了最大的内存segment的大小 ------>这个设置的比SGA_MAX_SIZE大比较好shmall= 该参数控制可以使用的共享内存的总页数。 Linux 共享内存页大小为 4KB, 共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是 16G ,那么需要共享内存页数是 16GB/4KB==4194304 (页),当内存为 12G 时, kernel.shmall = 3145728当内存为 16G 时, kernel.shmall = 4194304当内次为 32G 时, kernel.shmall = 8388608当内存为 64G 时, kernel.shmall = 16777216当内存为 128G 时, kernel.shmall = 335544325)、设置oracle用户的一些限制(针对运行oracle软件的用户)在/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文件中添加如下内容session required pam_limits.so3)在/etc/profile文件中添加如下内容if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -u 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi6)、验证tail -10 /etc/hostnametail -10 /etc/hoststail -30 /etc/sysctl.conftail -10 etc/security/limits.conftail -5 /etc/pam.d/logintail -14 /etc/profile
7、规划Oracle数据库软件和Oracle数据库
安装目录mkdir -p /u01/app/oraclemkdir -p /u01/softmkdir -p /u01/psumkdir -p /oradatachown -R oracle:oinstall /u01chown -R oracle:oinstall /oradata备注:默认已经完成存储划分和挂载/u01/app/oracle目录用于安装Oracle数据库软件/u01/soft用于存放Oracle软件包等其它软件/u01/psu用于存放psu等补丁包
8、Oracle用户环境变量设置
在oracle用户下的.bash_profile中设置如下环境变量TMP=/tmp; export TMPTMPDIR=$TMP; export TMPDIRORACLE_BASE=/u01/app/oracle; export ORACLE_BASEORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOMEORACLE_SID=orcl; export ORACLE_SIDORACLE_TERM=xterm; export ORACLE_TERMPATH=/usr/sbin:$PATH; export PATHPATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH; export PATHLD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATHCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATHexport EDITOR=vimexport LANG=en_US.UTF-8export NLS_LANG=AMERICAN_AMERICA.ZHS16GBKstty erase ^H具体步骤su - oraclecp .bash_profile .bash_profile_$(date +%F)vi .bash_profilesource ~/.bash_profile
后续所有的操作都在oracle用户下完成su - oracle
9、上传和检验Oracle软件安装包,安装包上传至/u01/soft目录下
cd /u01/softmd5sum p13390677_112040_Linux-x86-64_1of7.zipmd5sum p13390677_112040_Linux-x86-64_2of7.zip验证结果如下为正确,表示未被植入病毒木马,可以放心使用[oracle@host01 soft]$ md5sum p13390677_112040_Linux-x86-64_1of7.zip1616f61789891a56eafd40de79f58f28 p13390677_112040_Linux-x86-64_1of7.zip[oracle@host01 soft]$ md5sum p13390677_112040_Linux-x86-64_2of7.zip67ba1e68a4f581b305885114768443d3 p13390677_112040_Linux-x86-64_2of7.zip
10、解压安装包
unzip -q p13390677_112040_Linux-x86-64_1of7.zipunzip -q p13390677_112040_Linux-x86-64_2of7.zip
11、安装数据库软件
export DISPLAY=192.168.11.1:0.0备注:需要根据实际环境修改IP地址,将图形界面投射出来(可以使用xclock命令测试,检查时钟界面图形能不能投射出来)常用的图形投射工具:xmanager的"Xmanager - Passive"工具,或者使用vnc工具。cd /u01/soft/database/./runInstaller 备注:详细的图形界面安装步骤详见后面部分
12、安装补丁(可选项,安装数据库前将补丁安装,后续不需要运行数据字典升级脚本了)
13、Oracle数据库
dbca备注:详细的图形界面安装步骤详见后面部分
安装Oracle数据库软件的图形界面步骤:
















linux7版本安装oracle11g,图形界面安装会出现ins_emagent.mk报错提示,解决方法如下:主要因为C库的问题,解决办法就是手动指定C库位置su - oracle1、备份$ORACLE_HOME/sysman/lib/ins_emagent.mk文件cp $ORACLE_HOME/sysman/lib/ins_emagent.mk /home/oracle/ins_emagent.mk_$(date +%F)2、出现agent nmhs问题后,找到$ORACLE_HOME/sysman/lib/ins_emagent.mk文件,在文件里找字符串(可通过/ 查询MK_EMAGENT_NMECTL)$(MK_EMAGENT_NMECTL)替换为$(MK_EMAGENT_NMECTL) -lnnz11 注意:lnnz和$(MK_EMAGENT_NMECTL)之间有空格, 第一个是字母l 后面两个是数字1或者使用下面命令修改 sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk然后点"重试"按钮就可以了


执行脚本的输出如下:[root@host01 ~]# /u01/app/oraInventory/orainstRoot.sh/u01/app/oracle/product/11.2.0/db_1/root.shChanging permissions of /u01/app/oraInventory.Adding read,write permissions for group.Removing read,write,execute permissions for world.Changing groupname of /u01/app/oraInventory to oinstall.The execution of the script is complete.[root@host01 ~]# /u01/app/oracle/product/11.2.0/db_1/root.shPerforming root user operation for Oracle 11g The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/11.2.0/db_1Enter the full pathname of the local bin directory: [/usr/local/bin]: --这个地方直接回车按钮即可 Copying dbhome to /usr/local/bin ... Copying oraenv to /usr/local/bin ... Copying coraenv to /usr/local/bin ...Creating /etc/oratab file...Entries will be added to the /etc/oratab file as needed byDatabase Configuration Assistant when a database is createdFinished running generic part of root script.Now product-specific root actions will be performed.Finished product-specific root actions.

安装Oracle数据库
1、图形界面安装监听软件
su - oracle
netca //这个命令会将监听的图形界面投射出来,如下








至此完成监听安装!
2、图形界面安装oracle数据库
su - oracle
dbca

























至此完成Oracle数据库的安装!
问题总结:一、rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm备注:linux7版本需要单独安装上面这个rpm包,网上下载即可,否则在安装检查依赖包阶段时会提示缺失这个rmp包二、linux7版本安装oracle11g,图形界面安装会出现ins_emagent.mk报错提示,解决方法如下:主要因为C库的问题,解决办法就是手动指定C库位置su - oracle1、备份$ORACLE_HOME/sysman/lib/ins_emagent.mk文件cp $ORACLE_HOME/sysman/lib/ins_emagent.mk /home/oracle/ins_emagent.mk_$(date +%F)2、出现agent nmhs问题后,找到$ORACLE_HOME/sysman/lib/ins_emagent.mk文件,在文件里找字符串(可通过/ 查询MK_EMAGENT_NMECTL)$(MK_EMAGENT_NMECTL)替换为$(MK_EMAGENT_NMECTL) -lnnz11 注意:lnnz和$(MK_EMAGENT_NMECTL)之间有空格, 第一个是字母l 后面两个是数字1或者使用下面命令修改 sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk然后点"重试"按钮就可以了三、Oracle11g默认的sga内存大小需要1200M以上,否则安装报错