CentOs7 内网环境下离线安装Oracle

Posted 我要出家当道士

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOs7 内网环境下离线安装Oracle相关的知识,希望对你有一定的参考价值。

目录

0、配置要求

1、关闭防火墙

2、关闭selinux

3、安装各类依赖

4、创建Oracle用户

5、配置内核参数与资源限制

6、修改系统配置

7、创建 oracle 目录

8、修改环境变量

9、创建安装脚本

10、安装

11、相关问题与解决方案

(1)bash: sqlplus: command not found

(2)runinstaller: line 97 /db/database/install/.oui: cannot execute binary file

(3)Insufficient disk space on this volume for the selected Oracle home.

(4)bash: lsnrctl: command not found

(5)ORA-01031: insufficient privileges


本文详细介绍了如何在内外环境下,在CentOs上离线安装Oracle。

0、配置要求

        我设置的 CPU 为 4核,内存为 4G,硬盘位 40G。

        像内存和CPU核数调整比较方便,存在试错空间;硬盘的空间需要设置的高些,我第一次设置的 20G,安装过程会报错空间不足,而且之后解决过程也很繁琐,好在我的 centos 是刚安装的,我直接重装系统了。

1、关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

2、关闭selinux

sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config  
setenforce 0

3、安装各类依赖

rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc 
glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel 
libXi libXtst make sysstat unixODBC unixODBC-devel

        由于是无网环境,安装较为复杂,可以先不进行这一步,先安装oracle,之后缺依赖会报错的,到时候缺啥补啥我在安装过程中只安装了GCC就满足了所有需求(新安装的centos)。下附离线的gcc安装包:

gcc与g++离线安装包-Linux文档类资源-CSDN文库https://download.csdn.net/download/qq_37437983/85445027

4、创建Oracle用户

        需进入 root 用户进行创建

su
groupadd -g 502 oinstall
groupadd -g 503 dba
groupadd -g 504 oper
groupadd -g 505 asmadmin
useradd -u 502 -g oinstall -G oinstall,dba,asmadmin,oper -s /bin/bash -m oracle

        设置 oracle 用户的密码

passwd oracle

5、配置内核参数与资源限制

        vi /etc/sysctl.conf。注意这只是官方要求的最低要求,可根据需要进行增大。

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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
# 使参数生效
sysctl -p

6、修改系统配置

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

7、创建 oracle 目录

        创建根目录需要注意权限的问题,最简单的是在linux根目录重新开一个分支。如下所示:

# Oracle 根目录
mkdir -p /Oracle
# 用户oracle赋权读写这个文件夹
chown -R oracle:oinstall /Oracle
# 安装目录
mkdir -p /Oracle/oracle

        将Oracle的两个压缩包解压到/Oracle目录,解压后的目录结构如下:

8、修改环境变量

        修改 Root 环境变量

        vi /etc/profile

export ORACLE_BASE=/Oracle/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.3/dbname
export ORACLE_SID=ORACLE
export ORACLE_UNQNAME=ORACLE
export NLS_LANG=.AL32UTF8
export PATH=$PATH:$ORACLE_HOME/bin/:$ORACLE_HOME/lib

        使环境变量生效:source /etc/profile

        --------------------------------------     

        修改 oracle 账户环境变量

         vi /home/oracle/.bash_profile

export ORACLE_BASE=/Oracle/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.3/dbname
export ORACLE_SID=ORACLE
export ORACLE_UNQNAME=ORACLE
export NLS_LANG=.AL32UTF8
export PATH=$PATH:$ORACLE_HOME/bin/:$ORACLE_HOME/lib

        使环境变量生效:source ~/.bash_profile

9、创建安装脚本

        在压缩包解压后的 database 目录下新建安装脚本:vi install.sh

        之所以需要创建安装脚本存放安装参数,而不是使用 /response/db_install.rsp 文件,是因为安装过程中会报如下错误:

        The given response file /data1/database/response/myinstall.rsp is not valid.

        这个错误貌似需要在 db_install.rsp 中登录 oracle 的账号密码才可解决。

        以下的脚本需要注意 Oracle 路径 

./runInstaller -silent \\
oracle.install.option=INSTALL_DB_AND_CONFIG \\
ORACLE_HOSTNAME=localhost \\
UNIX_GROUP_NAME=oinstall \\
INVENTORY_LOCATION=/Oracle/oraInventory \\
SELECTED_LANGUAGES=en \\
ORACLE_HOME=/Oracle/oracle/product/11.2.0.3/dbname \\
ORACLE_BASE=/Oracle/oracle \\
oracle.install.db.InstallEdition=EE \\
oracle.install.db.DBA_GROUP=dba \\
oracle.install.db.OPER_GROUP=oper \\
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE \\
oracle.install.db.config.starterdb.globalDBName=prod \\
oracle.install.db.config.starterdb.SID=ORACLE \\
oracle.install.db.config.starterdb.characterSet=AL32UTF8 \\
oracle.install.db.config.starterdb.memoryOption=true \\
oracle.install.db.config.starterdb.memoryLimit=1024 \\
oracle.install.db.config.starterdb.installExampleSchemas=false \\
oracle.install.db.config.starterdb.password.ALL=Root_root123 \\
oracle.install.db.config.starterdb.control=DB_CONTROL \\
oracle.install.db.config.starterdb.automatedBackup.enable=false \\
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE \\
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/Oracle/oracle/data \\
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/Oracle/oracle/fast_recovery_area \\
oracle.install.db.config.starterdb.automatedBackup.enable=false \\
DECLINE_SECURITY_UPDATES=true

10、安装

        执行安装脚本后,中途可能会报错,此时可以根据提示的日志位置,去查看日志,并进行解决。如果之前没有安装依赖,会在这里报错,可以去日志里看看缺啥。反正我安装了 GCC 之后就不再报错了。对了,如果磁盘啥的空间不足也会在这里报错。

        日志文件中需要关注 WARNING 和 FATAL

        时间稍长,精心等待。若安装成功,则会显示如下: 

11、相关问题与解决方案

(1)bash: sqlplus: command not found

        在 oracle 用户中无法运行 sqlplus。sqlplus是位于 $ORACLE_HOME/bin 目录下的可执行文件。有如下两个方向排查问题:

        a. 查看 oracle 用户下的 $ORACLE_HOME 环境变量路径是否正确。本次安装过程中该路径地址为:

[oracle@localhost home]$ echo $ORACLE_HOME
/Oracle/oracle/product/11.2.0.3/dbname
[oracle@localhost home]$ echo $ORACLE_BASE/
/Oracle/oracle/

        b.  添加 sqlplus 执行文件软连接到 /usr/bin 中(root 用户下)

ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

(2)runinstaller: line 97 /db/database/install/.oui: cannot execute binary file

        权限问题,不要将 oracle 的安装目录放在子目录中,即使将 oracle 用户对该目录赋权了,oracle用户也没有权限通过父目录找到子目录。具体做法参考 第七节 目录的创建。

(3)Insufficient disk space on this volume for the selected Oracle home.

        额,没解决,重装系统了。如果对自己有信心,且时间充足,可以尝试解决。其实思路也不难,增加centos主机额外的磁盘,之后进行分区扩展磁盘空间(但我没成功,系统直接崩了,也没想细想,不如重装系统快些,主要也还是我的centos上啥也没有,嘿嘿)

        参考:Linux_虚拟机增加一块新磁盘并设置磁盘挂载_大数据面试宝典的博客-CSDN博客_linux虚拟机新加一块硬盘https://blog.csdn.net/weixin_43893397/article/details/102599330

(4)bash: lsnrctl: command not found

        解决方法同(1)

(5)ORA-01031: insufficient privileges

        原因:无权限。正常本地登陆的时候应该不需要授权的,检查sqlnet.ora文件,文件路径为$ORACLE_HOME/network/admin/sqlnet.ora。在linux下,在 SQLNET.AUTHENTICATION_SERVICES 的值设置为ALL,或者不设置的情况下,OS验证才能成功;ORA-01031: insufficient privileges问题解决办法 - 博客 - 编程圈 (bianchengquan.com)https://www.bianchengquan.com/article/192189.html

以上是关于CentOs7 内网环境下离线安装Oracle的主要内容,如果未能解决你的问题,请参考以下文章

内网环境下centos7.4离线安装oracle,及不同用户表空间迁移数据

离线安装系列4:在CentOS7下离线安装nginx

离线安装系列3:在CentOS7下离线安装mysql5.7

Centos 7版本下离线安装Hadoop完全分布式环境

离线安装系列2:在CentOS7下离线安装jdk11

centos7下离线安装mysql