CentOS7安装Oracle11.2.0.4

Oracle11.2.0.4是Oracle11gR2的最后一版,Oracle官网不一定下载得到,所以需要百度网盘下载,具体下载可搜索其他人的百度网盘链接,这里主要讲解如何在CentOS 安装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” ];then
if [ KaTeX parse error: Expected 'EOF', got '#' at position 55: …6384 #̲解释: -p表示用户最大可用的…ORACLE_BASE/product/11.2.0.4/db_1
export ORACLE_SID=orcl #注释:设置默认Oracle启动实例名
export ORACLE_UNQNAME= O R A C L E S I D e x p o r t O R A C L E T E R M = x t e r m − − x t e r m 窗 口 模 式 安 装 e x p o r t P A T H = ORACLE_SID export ORACLE_TERM=xterm --xterm窗口模式安装 export PATH= ORACLESIDexportORACLETERM=xtermxtermexportPATH=ORACLE_HOME/bin:/usr/sbin: P A T H e x p o r t L D L I B R A R Y P A T H = PATH export LD_LIBRARY_PATH= PATHexportLDLIBRARYPATH=ORACLE_HOME/lib
export LANG=en_US.UTF-8
export 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
fs.file-max = 6815744
设置完保存需要使内核立即生效: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 ksh-20060214 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++查看某个包是否已安装。
应该安装符合自己操作系统的依赖包,如gcc-c+±4.8.5-39.el7.x86_64。
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,将
( M K E M A G E N T N M E C T L ) 修 改 为 : (MK_EMAGENT_NMECTL)修改为: (MKEMAGENTNMECTL)(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

猜你喜欢

转载自blog.csdn.net/MssGuo/article/details/114275014