Linux下安装ORACLE(一周成果、全是干货!)

一、安装前言

1.闲聊

因为公司需要将数据库服务器切换成linux版本的,所以需要在linux系统下安装oracle。
以下安装过程为自己亲自安装的,走了很多弯路,网上其他博客也是五花八门,不适合我实际情况下的安装,现在记录一下,希望对于读者能有帮助并且能够交流。

2.提前知道的事

在安装oracle之前,必须要明白,直接把Ubuntu、ret hat、centos、SUSE、OracleLinux叫做linux是不正确的,他们只是linux的发行版本。更确切地说,应该叫作“以Linux为核心的操作系统软件包。其中OracleLinux是甲骨文公司推行出来专门用于安装oracle的,但是实际上和ret hat、centos差不太多。

所以在选择安装oracle之前,首先要选好linux的发行版本。本人在Ubuntu版本下进行安装oracle失败在Net configuer上,并且在于各种rpm安装包。

oracle安装时需要各种rpm安装包,而且版本多为x86_64、i386,这是Ubuntu版本所不支持的,这是我的实验结果,如果有哪位大佬在Ubuntu系统上成功安装oracle了,请一定教教我
在这里插入图片描述,拜谢!

除此之外,oracle18以及之后,甲骨文公司推出了在Linux上快速安装oracle的版本(oracle下载地址),rpm版本:

在这里插入图片描述
但是如果想真正的进行全自动安装,还缺少一个安装包oracle-database-preinstall-18c,这个安装包得要用外网才能下载,否则实际上和安装oracle11、12都差不多。

|版本声明:山河君,未经博主允许,禁止转载

二、安装准备

1.Linux发行版本:ret hat7.4(更换yum源传送门

2.Oracle安装版本(环境搭配好都一样安装):Oracle11gR2

oracle11gR2官网下载地址:下载地址
在这里插入图片描述

三、建立oracle用户

我就按照自己的习惯来了,可能跟别的博客先后不一样,而且会多一些配置。

1.root或sudo下新增用户组

groupadd oinstall
groupadd dba

2.新建用户

useradd -g oinstall -G dba oracle

为新用户设置密码

passwd oracle

密码随便你输入

[root@oraclehost database]# passwd oracle 
更改用户 oracle 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

3.新建oracle用户目录

我选择在home目录下创建

mkdir /home/oracle

在这里插入图片描述

切记要将该文件夹权限赋给oracle用户

chown -R oracle /home/oracle
chmod -R 775 /home/oracle

这时我们看一下文件夹权限

[oracle@oraclehost home]$ ll
总用量 8
drwx------. 16 aaron  aaron    4096 76 16:16 aaron
drwxrwxr-x. 18 oracle oinstall 4096 76 14:06 oracle

4.增加sudoers用户

其他人都没有提及这布操作,其实在我看来,这步操作是很重要的,可以免了很多麻烦!就不用还要su oracle了。

打开文件sudoers

sudo vi /etc/sudoers

找到

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL

添加

oracle ALL=(ALL) ALL

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
aaron   ALL=(ALL)       ALL
oracle  ALL=(ALL)       ALL

这样我们在切换用户,或者重启动电脑会有oracle用户,否则oracle用户不能进行sudo命令。
在这里插入图片描述
查看是否建立好

id oracle

显示如下

[oracle@oraclehost ~]$ id oracle
uid=1001(oracle) gid=1001(oinstall)=1001(oinstall),1002(dba)

错误提醒

新建用户之后,登陆到oracle用户可能会有这种显示,不显示用户名,只显示bash-4.1~
在这里插入图片描述
在linux新建用户的时候,应该会自动将root用户下的环境文件给复制到新用户环境下的,但是不知道为什么我会遇到这个问题,这个时候复制一下文件就可以了。

ls -a /etc/skel/

[oracle@oraclehost ~]$ ls -a /etc/skel/
.   .bash_logout   .bashrc  .mozilla
..  .bash_profile  .kshrc

将这些文件复制到用户空间下就好了。

三、安装包配置

1.切换用户、上传文件

切换到oacle用户或者使用su oracle,将下载好的文件放入oracle用户环境中,我是放在:

/home/oracle/soft/oracle/

下的,这个时候就体现切换好oracle用户的好处,如果是在自己环境下直接进行复制的话,文件的用户以及用户组是不对的,先到文件目录下,用ll命令查看一下:

ll

显示:

[oracle@oraclehost oracle]$ ll
总用量 2295592
-rw-------. 1 oracle root     1239269270 76 10:10 linux.x64_11gR2_database_1of2.zip
-rw-------. 1 oracle root     1111416131 76 10:10 linux.x64_11gR2_database_2of2.zip

这样显示是对的,或者是

[oracle@oraclehost oracle]$ ll
总用量 2295592
-rw-------. 1 oracle oinstall     1239269270 76 10:10 linux.x64_11gR2_database_1of2.zip
-rw-------. 1 oracle oinstall     1111416131 76 10:10 linux.x64_11gR2_database_2of2.zip

如果是这样就是错的,aaron是我之前的用户名:

[oracle@oraclehost oracle]$ ll
总用量 2295592
-rw-------. 1 aaron aaron     1239269270 76 10:10 linux.x64_11gR2_database_1of2.zip
-rw-------. 1 aaron aaron     1111416131 76 10:10 linux.x64_11gR2_database_2of2.zip

因为过会我们解压后会导致解压出来的安装包用户是我之前的用户,这样安装到最后会导致使用空间的不正确,如果实在是不知道用户怎么切换,可以使用下面命令将文件所属进行切换:

chown -R oracle /home/oracle/soft/oracle

这个命令在上面使用过,不用多说拉。

2.解压文件

unzip ./linux.x64_11gR2_database_1of2.zip
unzip ./linux.x64_11gR2_database_2of2.zip

解压后会出现database文件夹,这个时候再确认一下安装文件的所属:

ll

显示如下就对了:

[oracle@oraclehost oracle]$ ll
总用量 2295592
drwxr-xr-x. 8 oracle oinstall        128 821 2009 database
-rw-------. 1 oracle root     1239269270 76 10:10 linux.x64_11gR2_database_1of2.zip
-rw-------. 1 oracle root     1111416131 76 10:10 linux.x64_11gR2_database_2of2.zip

3.安装之前下载依赖包

这个直接下载就好

yum install binutils compat-libstdc+±33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc+±devel make sysstat unixODBC unixODBC-de -y

四、环境配置

1.关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

这两行命令前者是关闭防火墙,但是关机后重启还是会启动
后者是禁用防火墙,但是我自己使用,重启动后还是会防火墙开启,这点一定要注意!
禁用防火墙原因:如果不禁用,在安装过程中,会在最后配置database config时卡住。

2.配置hosts

echo “192.168.3.71 oraclehost” >> /etc/hosts

ip地址和ip名,这个看你自己怎么配置。

3.配置环境变量

打开文件.bash_profile

vi ~/.bash_profile

输入

export ORACLE_BASH=/home/oracle/app/oracle
export ORACLE_HOME=/home/oracle/app/oracle/11.2.0/db_1
export ORACLE_UNQNAME=szxndb
export ORACLE_SID=szxndb
export PATH=$PATH:/home/oracle/app/oracle/11.2.0/db_1/bin

ORACLE_UNQNAME和ORACLE_SID可以不用默认的orcl,这个是用于安装oracle后,建立空间用的,我就用我公司的名字代替的。
其他什么语言类,例如export LANG=en_US,NLS_LAN=AMER…等其实是不用配置的。

保存退出,使其生效

source ~/.bash_profile

查看配置后对不对

env | grep ORACLE

显示如下就对了,记得在~目录下进行命令阿

[oracle@oraclehost ~]$ env | grep ORACLE
ORACLE_UNQNAME=szxndb
ORACLE_SID=szxndb
ORACLE_BASH=/home/oracle/app/oracle
ORACLE_HOME=/home/oracle/app/oracle/11.2.0/db_1

4.其它

有些博客说的很多配置都不需要再做的,只是做个提醒,如果自己修改的话可能会影响后期其他软件的使用,如果有兴趣可以自己查查参数的意思。
(1)有一些配置现在并不需要再做了,如果有兴趣可以自己查一查各个参数的意义。

[root@oraclehost]# 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 

这步布棸实际安装oracle的最低标准是肯定能达得到,只要你自己没有动过这些参数,可以自己先查看一下这些参数的大小。最低的stack内存、文件数量是一定能够达到大小,达到我们所需要的配置。

(2)修改登陆配置文件,编辑(不需要做)

vim /etc/pam.d/login

在该文件的最下面的行下添加

  • session required /lib/security/pam_limits.so
  • session required pam_limits.so

这边做个提醒,在该文件下本身就是有这两句话。

(3)设置内核参数,为了保障安装检查能通过(这个步骤现在不需要做,oracle在安装时,会帮我们做)

vim /etc/sysctl.conf

添加以下信息:

kernel.shmall = 4194304

kernel.shmmax = 4147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 6815744

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 1048576

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

五、开始安装

1.java版本查看

如果想使用图形话界面安装,必须要使用java包,否则会导致图形话界面安装中间的中文乱码,或者中间弹窗显示不出来,只有一条杠。
java在安装ret hat时是默认安装好的,我们只要查看一下版本就好。

java -version

显示:

[oracle@oraclehost ~]$ java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

版本为1.8.0

2.启动安装

进入database目录,执行(记住不要使用root权限)

./runInstaller -jreLoc /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre

显示:

[oracle@oraclehost database]$ ./runInstaller -jreLoc /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre
正在启动 Oracle Universal Installer...

检查临时空间: 必须大于 120 MB。   实际为 45945 MB    通过
检查交换空间: 必须大于 150 MB。   实际为 7931 MB    通过
检查监视器: 监视器配置至少必须显示 256 种颜色。    实际为 16777216    通过
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2020-07-06_06-07-37PM. 请稍候...[oracle@oraclehost database]$ 

3.安装

1.不选择接收安全更新、下一步
在这里插入图片描述
在这里插入图片描述
选择是

2.选择下一步
在这里插入图片描述
3.选择服务器类,下一步
在这里插入图片描述
4.下一步

在这里插入图片描述
5.选择高级安装,下一步

在这里插入图片描述
6.设置语言,下一步

在这里插入图片描述
7.根据需要选择,下一步

在这里插入图片描述
8.下一步

在这里插入图片描述
9.下一步

在这里插入图片描述
10.根据自己设置ORACLE_SSID设置,我是已经设置过了,所以会报红,下一步
在这里插入图片描述
11.选择字符集

在这里插入图片描述
12.根据自己需要选择字符集,我是直接unicode,下一步
在这里插入图片描述

13.下一步

在这里插入图片描述
14.下一步

在这里插入图片描述
15.设置管理员密码,我是图省事,直接一个密码
在这里插入图片描述
16.下一步
在这里插入图片描述
17,oracle会检查先觉条件
在这里插入图片描述
这里就要开始注意了

(1)错误提示

显示/tmp文件内存不正确(该错误因为我修改过,所以没有贴图)
这个时候有两种情况,1.swap交换区不够,2.oracle本身并没有检测出来。
前者就要自己设置swap交换区
后者自己查看一下/tmp内存够不够

df -l /tmp

显示:/tmp是挂在/dev/mapper/rhel-root

[root@oraclehost database]# df -l /tmp
文件系统                 1K-块    已用     可用 已用% 挂载点
/dev/mapper/rhel-root 52403200 5354740 47048460   11% /

df -h

显示:/dev/mapper/rhel-root的容量是50G,肯定是够用的,则可以忽略这个问题

[root@oraclehost database]# df -h
文件系统               容量  已用  可用 已用% 挂载点
/dev/mapper/rhel-root   50G  5.2G   45G   11% /
devtmpfs               3.8G     0  3.8G    0% /dev
tmpfs                  3.8G  1.9G  2.0G   49% /dev/shm
tmpfs                  3.8G  9.1M  3.8G    1% /run
tmpfs                  3.8G     0  3.8G    0% /sys/fs/cgroup
/dev/sda2             1014M  172M  843M   17% /boot
/dev/sda1              200M  9.8M  191M    5% /boot/efi
/dev/mapper/rhel-home  873G   14G  859G    2% /home
tmpfs                  772M   48K  772M    1% /run/user/1001
tmpfs                  772M   24K  772M    1% /run/user/1000

(2)解决内核参数

点击修补并再次检查按钮
在这里插入图片描述
执行/tmp/CVU_11.2.0_oracle/runfixup.sh脚本。

但是很多情况下,再次检查发现还是报以上内核参数错误,这是因为oracle本身check机制有bug,检测不出来的原因。
这个时候就需要自己进行查看/etc/sysctl.conf,参照步骤四,第4条其它,第三点,如果配置和oracle需要配置不一样,进行手工配置

kernel.shmmax = 536870912
kernel.shmall = 2097152
kernel.sem = 250 32000  100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576

如果一样则不需要配置,进行忽略就可。
如果需要配置,配置完后执行

sysctl -p

(3)解决安装包问题

其实还是由于oracle自己check不出来,按照它的配置要求,只要版本在其之上就可以了,这个时候需要我们查看一下是否存在该安装包,不存在则安装,如果前面安装包步骤没有出错,这个时候应该都安装上了。
查看安装包是否存在:

rpm -qa | grep libaio

显示:

[root@oraclehost database]# rpm -qa | grep libaio
libaio-devel-0.3.109-13.el7.x86_64
libaio-0.3.109-13.el7.x86_64

显示中版本为x86_64,但是所需的可能是i386或者i68的,这个并不影响,i386是指x86。
然后我们发现没有安装pcksh包,这个已经被弃用了,我们之前安装了一个ksh包代替了

18.勾选全部忽略,下一步安装
在这里插入图片描述
19.点击安装,到%68可能就会出错

在这里插入图片描述
首先检查glibc包是否装好,安装好则修改/u01/app/oracle/product/11.2.0/dbhome_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 ‘/home/oracle/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk.’

解决方法:在makefile中添加链接libnnz11库的参数
修改/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk,将

$(MK_EMAGENT_NMECTL)

修改为

$(MK_EMAGENT_NMECTL) -lnnz11

继续安装。

20.执行root脚本(用别人的图拉,就一张)

在这里插入图片描述
如果卡在database config设置那里,可能是防火墙没关

这样就OK拉!

总结

真是不容易,如果对您有所帮助,请帮忙点个赞!

  • 90
    点赞
  • 348
    收藏
    觉得还不错? 一键收藏
  • 29
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值