前言

环境:Centos 7.9 Oracle11.2.0.4
Oracle11.2.0.4是Oracle11gR2的最后一版,Oracle官网不一定下载得到,所以需要百度网盘下载,具体下载可搜索其他人的百度网盘链接,这里主要讲解如何在CentOS 安装Oracle11.2.0.4。

开始安装Oracle11.2.0.4

1、下载Oracle11.2.0.4版本(其他Oracle11R2版本也行),一定要下载Linux平台的Oracle。

2、 安装好CentOS7,vim,yum,rpm等工具,以root用户登录CentOS7,并固定IP(vim /etc/sysconfig/network-scripts/ifcfg-ens33)和永久固定主机名(vim /etc/hosts)。

3、 安装X window system,yum –y install “X Window System”,然后startx即可启动图像界面。如果安装CentOS的时候选择的是静默安装,则这一步可以不做。

4、 关闭Selinux,进入/etc/selinux/config下将SELINUX=enforcing改为SELINUX=disabled即可。

5、 关闭防火墙:systemctl stop firewalld.service,禁用防火墙:systemctl disable firewalld.service。

6、 创建组和用户,为了安全管理需要单独为Oracle软件创建一个用户和属组:

groupadd oinstall
groupadd dba
adduser -g oinstall -G dba oracle           #注释:创建用户Oracle,
passwd oracle                                           #注释:为Oracle用户设置密码

7、 创建目录并授权:

mkdir -p /u01/app/oracle/product/11.2.0.4/db_1       #注释:创建Oracle的安装目录,这里以官方推荐的目录结构来创建目录
mkdir -p /u01/app/oraInventory
chmod 755 -R /u01                                   #注释:对目录进行授权
chown -R oracle:oinstall /u01                       #注释:修改目录的属主,因为我是以root账号登录创建这些目录的

8、 创建Oracle环境变量
/etc/profile文件为系统的全局环境配置文件,其配置对系统的每一个用户都生效,当用户第一次登陆时,该文件被执行并从/etc/profile.d目录的配置文件中收集shell的设置。
vim /etc/profile 在末尾添加一下语句:

if [ $USER = "oracle" ];thenif [ $SHELL = "/bin/ksh" ];thenulimit -p 16384                                         #解释: -p表示用户最大可用的进程数ulimit -n 65536                                           #解释: -n表示可以打开最大文件描述符的数量elseulimit -u 16384 -n 65536fi
fi

保存修改后:source /etc/profile。

9、 编辑Oracle的用户配置
每个用户家目录下都有一个.bash_profile的隐藏文件,这个文件是用户自己的配置文件,用户登录时该文件会被自动加载,所以用户自定义的环境变量等信息就可以写在这个文件里。
vim /home/oracle/.bash_profile
在文件末尾添加一下内容:

export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/db_1        export ORACLE_SID=orcl                                 #注释:设置默认Oracle启动实例名export ORACLE_UNQNAME=$ORACLE_SIDexport ORACLE_TERM=xterm                               #xterm窗口模式安装export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/libexport LANG=en_US.UTF-8export LC_ALL=en_US.UTF-8

保存后:source /home/oracle/.bash_profile。

10、 由于CentOS默认是不支持Oracle的,所以需要修改Linux的内核参数
vim /etc/sysctl.conf

kernel.shmmax = 536870912                   #注释:Linux进程可分配的单独共享内存段最大值,一般设为内存总大小的一半
kernel.shmall = 2097152                        #注释:设置共享内存总页数。这个值太小有可能导致数据库启动报错
kernel.shmmni = 4096                       #注释:设置系统级最大共享内存段数量,Oracle11g推荐最小值4096
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500   #注释:可使用的IPv4端口范围
net.core.rmem_default = 262144             #注释:net.core开头的为tcp缓冲区相关的,可以不用改。
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576
kernel.sem =250 32000 100 128

设置完保存需要使内核立即生效:sysctl -p

这里重点讲解kernel.sem参数。kernel.sem包含4个参数,从左往右分别是:SEMMSL、SEMMNS、SEMOPM和SEMMNI。
SEMMSL参数:设置每个信号灯组中信号灯最大数量,推荐的最小值是250。对于系统中存在大量并发连接的系统,推荐将这个值设置为PROCESSES初始化参数加10。
SEMMNS参数:设置系统中信号灯的最大数量。操作系统在分配信号灯时不会超过LEAST(SEMMNS,SEMMSLSEMMNI)。事 实上,如果SEMMNS的值超过了SEMMSLSEMMNI是非法的,因此推荐SEMMNS的值就设置为SEMMSL*SEMMNI。Oracle推荐 SEMMNS的设置不小于32000。
SEMOPM参数:设置每次系统调用可以同时执行的最大信号灯操作的数量。由于一个信号灯组最多拥有SEMMSL个信号灯,因此有推荐将SEMOPM设置为SEMMSL的值。Oracle验证的10.2和11.1的SEMOPM的配置为100。
SEMMNI参数:设置系统信号灯组最大数量。Oracle10g和11g的推荐值为142,系统默认128。
通过下面的命令可以检查信号灯相关配置:cat /proc/sys/kernel/sem。

11、 设置Oracle用户限制以提高软件运行性能
vim /etc/security/limits.conf
在文件末尾添加:

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

12、 安装Oracle11g所依赖的包

 binutils-2.17.50.0.6 compat-libstdc++-33-3.2.3 elfutils-libelf-0.125 elfutils-libelf-devel-0.125 elfutils-libelf-devel-static-0.125 gcc-4.1.2 gcc-c++-4.1.2 glibc-2.5-24 glibc-common-2.5 glibc-devel-2.5 glibc-headers-2.5 kernel-headers-2.6.18  libaio-0.3.106 libaio-devel-0.3.106 libgcc-4.1.2 libgomp-4.1.2 libstdc++-4.1.2 libstdc++-devel-4.1.2 make-3.81 sysstat-7.0.2 unixODBC-2.2.11 unixODBC-devel-2.2.11 pdksh
使用yum –y install 包名 方式安装最方便,可以自动解决包依赖问题;使用rpm -qa|grep c++查看某个包是否已安装。
(yum install -y binutils*  compat-libstdc++*  elfutils-libelf*  elfutils-libelf-devel* elfutils-libelf-devel-static*  gcc gcc-c++*glibc*  glibc-common* glibc-devel*  glibc-headers*  kernel-headers*  libaio*  libaio-devel* libgcc*  libgomp*  libstdc++*  libstdc++-devel* make* sysstat* unixODBC* unixODBC-devel-2.2.11 pdksh )
应该安装符合自己操作系统的依赖包,如gcc-c++-4.8.5-39.el7.x86_64。
建议直接加*号,让系统自己选择下载安装哪个版本,如: yum install binutils*
pdksh这个包可能yum的镜像库里没有,需要自己去下载一个rpm包来安装。

13、 Oracle登录,设置DISPLAY并解压安装包

su oracle
export DISPLAY=:0.0

#注释:正确用法是export DISPLAY=192.168.1.100:0.0,该命令是把oracle安装时的图形界面显示到IP那台机器的图形界面上去,因为我的CentOS是一台物理机,我直接使用显示器连接电脑主机的,所以这里我写的是export DISPLAY=:0.0
把Oracle的安装包放进Linux系统,开始解压安装包,解压位置为 /u01

unzip linux.x64_11gR2_database_1of1.zip –d /u01
unzip linux.x64_11gR2_database_1of2.zip –d /u01

此时在/u01/下会自动生成一个database目录,改变该目录的属组

chown -R oracle:oinstall /u01/database

14、 开始安装Oracle

cd /u01/database
./runInstaller -jreLoc /usr/jvm/jer-1.8.0

参数–jreLoc /usr/jvm/jer-1.8.0表示使用本机jdk1.8.0,否则Oracle安装过程中的图像弹框将会不显示,具体使用那个版本的jdk需根据呢安装jdk的版本而定,建议安装j1.8版本以上的jdk,使用:rpm -qa|grep jdk查看是否安装了jdk,java -version 查看安装了那个版本的jdk,find / -name jdk 查看jdk的安装路径。

15、 Oracle的安装图形界面

去掉 I wish to receive security updates via My Oracle Support。
后面的都是图形化安装,默认创建的实例名就保持默认orcl即可。安装步骤这里就不过多讲解,安装路径就保持默认即可,同时另开一个窗口 :tail -fn900 /tem/OraInstallxxxx.err实时监控安装过程的输出日志。出错了可以及时知道是什么错误。下面重点讲解先决条件检查。先决条件检查系统内核参数存在问题时,另启一个终端窗口root登录,根据安装界面提示的步骤运行修复内核脚本,同时根据先决条件检查的结果,缺少哪个依赖包就安装哪个依赖包,知道先决条件检查全部通过。
笔者第一个安装的时候下载的是Oracle 11.2.0.2时,出现了3个重要的错误:
第1个是:即使内核参数已修改为kernel.sem =250 32000 100 128,先决条件总是报错获取的SEMMNI为0,推荐值128,查阅了很多资料得知可能是系统无法识别的原因造成的,因为centos7本身并不支持Oracle11.2.0.2,官方文档显示centos7需要11.2.0.4,因而本人选择忽略此错误。所以这里建议大家下载的Oracle版本是Oracle11.2.0.4。
第2个报错swap不满足条件:

free -m                                                  #注释:查看swap虚拟内存的使用情况
dd if=/dev/zero of=/home/swap bs=1024 count=1024000     #注释:使用dd命令创建swap文件,大小为1G,文件越大创建时间越长
mkswap /home/swap                                       #注释:将文件格式转换为swap格式的
swapon /home/swap                                       #注释:再用swapon命令把这个文件分区挂载swap分区。
free -m                                                 #注释:用free -m命令进行验证,数字增大了1000。

为防止重启后swap分区变成0,要修改/etc/fstab文件。

vim /etc/fstab

在文件末尾(最后一行)加上

/home/swap swap swap default 0 0

第3个报错是很多依赖包没有,不满足先决条件:使用yum install 包名一个一个安装所需的依赖包,但实际上已经安装更高版本的依赖包,所以选择忽略这个错误,最后发现系统真的没有pdkh这个依赖包,需要安装这个pdksh包,yum安装没有就去网上下载一个,如果安装冲突就把对应的冲突卸载rpm –e xxxx再安装这个pdksh包。
第4个报错是Makefile链接错误(CentOS8安装11.2.0.4发现好多链接错误,CentOS7.9安装11.2.0.4就发现一个ins_emanget链接错误):Error in invoking target 'agent nmhs' of makefile xxxx…ins_emanget,这个是Makefile链接错误,解决方案为在makefile中添加链接libnnz11库的参数(即添加-lnnz11,第一个是字母l,最后两个是数字11),如下:

vim  $ORACLE_HOME/sysman/lib/ins_emagent.mk,将
$(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL) -lnnz11

最后Oracle 11.2.0.4安装成功。

安装完成了就可以使用数据库啦,默认实例名是orcl

启动监听服务

lsnrctl start                                #注释:首先启动监听服务
sqlplus / as sysdba                 #注释:登录Oracle软件,会连接到一个空的实例

注意:不要直接就@orcl,sqlplus sys/manager001@orcl as sysdba,会报错识别不了服务名,因为数据库实例还没启动呢。
startup #注释:启动默认实例orcl,如何指定启动哪一个数据是使用命令export ORACLE_SID=Instance_Name 实现的
显示已挂挂载数据库,已启动数据,这时就能正确使用数据库orcl啦。

sqlplus上下键乱码问题

安装rlwrap-0.37.tar 去网上下一个这个包,然后编译运行,如果编译报错显示You need the GNU readline library(ftp://ftp.gnu.org/gnu/readline/ ) to build this program. 则表示缺少readline相关的包。安装readline相关的包:yum –install readline-*。
安装rlwrap-0.37成功后定义别名:

vim /home/oracle/.bashrc
alias sqlplus=’rlwarp sqlplus’
alias rman=’rlwarp rman’

保存退出并使之生效: source /home/oracle/.bashrc
如果oracle中存在多个数据库,需要export ORACLE_SID=Instance_Name 来切换实例
注意:Oracle报错时,不要完全相信界面的提示,因为有可能是某个依赖包没有安装,所以要去看日志文件,/tem/OraInstallxxxx.err才能完全搞明白是为什么报错。
Linux下Oracle的sqlplus中文乱码问题:

vim /home/oracle/.bash_profile
把安装时的字符集改为:
export LANG=ZH_CN.GB2312
export NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
保存 source /home/oracle/.bash_profile

同时把终端窗口的显示字符集也改为SIMPLIFIED CHINESE_CHINA.ZHS16GBK

CentOS7安装Oracle11.2.0.4相关推荐

  1. Centos7 安装Graylog 5.0收集网络设备运行日志+卸载GrayLog服务

    Centos7 安装Graylog 5.0收集网络设备运行日志+卸载GrayLog服务

  2. 静默安装oracle11.2.0.4

    静默安装Oracle11gR2 环境: oracle11.2.0.4 redhat6.2 1.  登录到root用户下,检查以下包是否存在,如果不存在,则需要安装:(root用户) 检查:rpm -q ...

  3. centos7安装gitlab7.5.0

    2019独角兽企业重金招聘Python工程师标准>>> 在http://my.oschina.net/u/1169607/blog/345833中介绍了centos7上安装gitla ...

  4. CentOS7安装配置redis5.0.5

    一.安装必需包gcc yum install gcc 二.下载redis,并解压 wget http://download.redis.io/releases/redis-5.0.5.tar.gz t ...

  5. CentOS7 安装MongoDB 3.0服务

    1,下载&安装 MongoDB 3.0 正式版本发布!这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大.灵活而且易于管理的数据库管理系统.MongoDB宣称,3.0新版本不只 ...

  6. CentOS7安装MySQL 8.0安装

    Centos安装mysql 1.配置MySQL 8.0的安装源: sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-e ...

  7. centos7安装Hive2.3.0

    1.下载Hive2.3.0 wget http://mirror.bit.edu.cn/apache/hive/hive-2.3.0/apache-hive-2.3.0-bin.tar.gz 2.解压 ...

  8. CentOS7 安装CloudStack4.14.0

    https://blog.csdn.net/dandanfengyun/article/details/107220199#comments_13468183 按照4.13.1设置首先进行基本设置及基 ...

  9. CentOS7安装配置redis-3.0.0

    一.安装必要包 yum install gcc 二.linux下安装 #下载 wget http://download.redis.io/releases/redis-3.0.0.tar.gz tar ...

  10. Centos7 安装maven3.5.0和git

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/79553293 1.安装maven wget ...

最新文章

  1. 鼠标放在图片连接上面,预览图片
  2. MySQL8.0 - 新特性 - 临时表改进
  3. 【转】c++中的sizeof
  4. java类使用其他类的变量_如何将java类中的变量加载到其他类
  5. 1_STM32cubeIDE_黑色主题修改图标,vscode代码模板制作,GPIO(通用输入输出)
  6. MTK驱动(74)---平台待机功耗分析流程
  7. Qt QDataVisualization 三维图 坐标轴 显示比例
  8. 卡巴6kis最新激活码
  9. JS match() 方法 使用
  10. nodejs之koa配置koa-views中间件
  11. PSP金手指大全1215个CMF金手指合集
  12. 吴恩达Course1《神经网络与深度学习》week2:神经网络基础 测验及作业
  13. 在线电子书阅读小程序,微信小程序电子书阅读,微信小程序小说阅读器毕业设计作品
  14. 英语钻石法则(一)-----句子中心论
  15. C语言之到底是不是太胖了
  16. (EPROCESS/KPROCESS/ETHREAD/KTHREAD)进程与线程内核层中的结构
  17. Error at hooking API “LoadStringA“ Dump first 32 bytes:
  18. Android 8.1输入法配置
  19. 用C#开发加密狗程序
  20. Perceptron(感知机与径向基)

热门文章

  1. linux 输入法框架xim,基于XIM协议的输入法原理与实现
  2. RemotingTooMuchRequestException: sendDefaultImpl call timeout
  3. 这8个MySQL经典错误
  4. 最简单解决jpa自动生成表后字段乱序问题
  5. Ajax : load()
  6. Android Lolipop 屏蔽隐式Intent检查引发的错误
  7. 【转】JMeter Tutorial的安装和具体操作
  8. Duanxx的STM32学习:NVIC操作
  9. 【ASP.NET Web API教程】6.1 媒体格式化器
  10. [转载] 财经郎眼20120526:山东首富挑战国家电网