• Oracle11g在红帽Linux上的安装教程


    目录

    目录

    一、版本介绍

    二、安装前配置

         修改主机名

    关闭防火墙

    查看硬件信息

    依赖包安装(重要)

    1.首先查看redhat 7.0系统本身所安装的那些yum 软件包 

    2.删除redhat自带的yum包

    3.保证联网(一定要能上网)

    4.安装特殊包

    5.安装软件包

    6.新建repo 配置文件,直接复制即可

    7.删除该目录下的原本文件,只剩下创建的新文件

    8.清理缓存

    9.测试

    10.运行命令

    ​编辑

    端口范围-Verifying UDP and TCP Kernel Parameters

    检查端口范围

    配置/etc/hosts文件

    创建用户和组

    ​编辑

    配置内核参数(root用户)

    创建安装目录

    检查Oracle软件安装用户的资源限制

    配置Linux内核参数

    设置shell配置文件

    配置 Oracle 软件所有者环境

    三、安装

    安装软件

    创建监听

    监听相关命令

    dbca建库

     ​编辑测试

    一、版本介绍

            本次实验环境所使用虚拟机为VMware17(16或15版本也可以)

            镜像版本为Red Hat 7.9:

                    ISO镜像地址:

                    百度网盘链接

                    链接:https://pan.baidu.com/s/1p318ZZGMfDp4MllXZXbusg?pwd=mpic 
                    提取码:mpic 

            Oracle版本为11.2.0.4:

                    百度网盘链接

                    链接:https://pan.baidu.com/s/1Crvy_Cfgl4x3uxIdhVdEgg?pwd=rqsq 
                    提取码:rqsq 

                    或者官方下载:

                    http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_1of2.zip

                    http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_2of2.zip

    二、安装前配置

         修改主机名

        su root
    vi /etc/sysconfig/network

    增加插入插入

    1. NETWORKING=yes
    2. NETWORKING_IPV6=yes
    3. HOSTNAME=rhel
    查看主机名
    
    cat /etc/sysconfig/network

    关闭防火墙

    1. 获取root权限
    2. su - root 输入密码
    3. 查看防火墙状态
    4. systemctl status firewalld
    5. 临时关闭防火墙
    6. systemctl stop firewalld
    7. 永久关闭防火墙
    8. systemctl disable firewalld
    9. 再次查看防火墙状态
    10. systemctl status firewalld
    11. 我们可以看到防火墙已经被关闭了
    12. 了解一下,不用执行
    13. 打开防火墙
    14. systemctl enable firewalld

    查看硬件信息

    查看分配给Oracle使用的内存,配置要求:一般大于1G即可。

    df -lh /dev/shm/
    

    查看内存大小,配置要求:内存>2G 

    grep MemTotal /proc/meminfo

     查看swap大小,配置要求:按照此规则分配SWAP大小

    grep SwapTotal /proc/meminfo
    

    查看/tmp大小,配置要求:/tmp > 1G

     df -lh /tmp/

    依赖包安装(重要)

    1. yum -y install bc binutils elfutils-libelf gcc gcc-c++ glibc glibc.i686 glibc-devel glibc-devel.i686 ksh libaio libaio-devel libaio-devel.i686 libcap libXrender libX11 libXau libXi libXi.i686 libXtst libXtst.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 libxcb libibverbs make policycoreutils smartmontools sysstat xdpyinfo elfutils-libelf-devel
    2. yum install -y compat-libstdc++-33 elfutils-libelf-devel gcc gcc-c++ glibc-devel
    3. yum install -y ksh libaio-devel numactl-devel
    4. yum install -y unixODBC unixODBC-devel oracleasm oracleasmlib oracleasm-support

    安装失败,原因没有注册(要钱),所以我们要想办法解决

    办法参考:[Linux]Redhat7配置CentOS7 YUM源 - 爱寂寞撒的谎言 - 博客园 (cnblogs.com)icon-default.png?t=N7T8https://www.cnblogs.com/forfreewill/p/9373209.html

    最终解决方法如下:

    1.首先查看redhat 7.0系统本身所安装的那些yum 软件包 

    rpm -qa | grep yum

    2.删除redhat自带的yum包

    1. rpm -qa|grep yum|xargs rpm -e --nodeps
    2. rpm -qa |grep yum

    这里警告只是告诉我们他吧这个东西已经删除了,但是怕你以后想要所以给你存在这个地方了

    3.保证联网(一定要能上网)

    试试能不能连接百度

    ping www.baidu.com

    可以连接通之后停止通信,按住Ctrl+c就可以了

    4.安装特殊包

    然后开始安装包:

    包的连接来自:

    Index of /centos/7/os/x86_64/Packages/ (163.com)icon-default.png?t=N7T8http://mirrors.163.com/centos/7/os/x86_64/Packages/具体连接需要打开这个查看,包名都一样,注意后边的版本号就可以了

    1. 注意下面的链接可能会失效,打开上面WEB按照实际的版本下载这5个包即可。
    2. wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-3.4.3-158.el7.centos.noarch.rpm
    3. wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
    4. wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-utils-1.1.31-45.el7.noarch.rpm
    5. wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-updateonboot-1.1.31-45.el7.noarch.rpm
    6. wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-45.el7.noarch.rpm

    以上5个包目前的是(除了第二个包,其他的相对之前的都已经改变了),下面这个是最新(2023年)的:

    1. wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm
    2. wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
    3. wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-utils-1.1.31-54.el7_8.noarch.rpm
    4. wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-updateonboot-1.1.31-54.el7_8.noarch.rpm
    5. wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm

    5.安装软件包

    1. rpm -ivh yum-* --force --nodeps
    2. rpm -ivh python-* --force --nodeps

     这里第二句执行可能会报错:

    解决办法:

    1.创建目录python和yum用以存放rpm包:

    mkdir /usr/local/src/python
    
    

    2.使用wget分别下载python以及的rpm包(注意:一定要和系统的版本号对应)地址:http://vault.centos.org

    下载python的rpm包:

     cd /usr/local/src/python 
    wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/python-2.7.5-34.el7.x86_64.rpm
    wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm
    wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/python-pycurl-7.19.0-17.el7.x86_64.rpm
    wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/python-devel-2.7.5-34.el7.x86_64.rpm
    wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/python-libs-2.7.5-34.el7.x86_64.rpm
    wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/python-urlgrabber-3.10-7.el7.noarch.rpm
    wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/rpm-python-4.11.3-17.el7.x86_64.rpm
    

    3.安装python以及rpm包

    (1)安装python:

    rpm -ivh python-*   
    注意:这里要在/usr/local/src/python 下执行
    然后执行 rpm -ivh python-* --force --nodeps (这个就是上边报错的第二句)
    --nodeps --force     为不考虑依赖包,强制安装。

    将镜像源修改为阿里云

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

    6.新建repo 配置文件,直接复制即可

    vim /etc/yum.repos.d/CentOS-Base.repo
    1. # CentOS-Base.repo
    2. #
    3. # The mirror system uses the connecting IP address of the client and the
    4. # update status of each mirror to pick mirrors that are updated to and
    5. # geographically close to the client. You should use this for CentOS updates
    6. # unless you are manually picking other mirrors.
    7. #
    8. # If the mirrorlist= does not work for you, as a fall back you can try the
    9. # remarked out baseurl= line instead.
    10. #
    11. #
    12. [base]
    13. name=CentOS-7 - Base - mirrors.aliyun.com
    14. failovermethod=priority
    15. baseurl=http://mirrors.aliyun.com/centos/7/os/$basearch/
    16. http://mirrors.aliyuncs.com/centos/7/os/$basearch/
    17. http://mirrors.cloud.aliyuncs.com/centos/7/os/$basearch/
    18. gpgcheck=1
    19. gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    20. #released updates
    21. [updates]
    22. name=CentOS-7 - Updates - mirrors.aliyun.com
    23. failovermethod=priority
    24. baseurl=http://mirrors.aliyun.com/centos/7/updates/$basearch/
    25. http://mirrors.aliyuncs.com/centos/7/updates/$basearch/
    26. http://mirrors.cloud.aliyuncs.com/centos/7/updates/$basearch/
    27. gpgcheck=1
    28. gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    29. #additional packages that may be useful
    30. [extras]
    31. name=CentOS-7 - Extras - mirrors.aliyun.com
    32. failovermethod=priority
    33. baseurl=http://mirrors.aliyun.com/centos/7/extras/$basearch/
    34. http://mirrors.aliyuncs.com/centos/7/extras/$basearch/
    35. http://mirrors.cloud.aliyuncs.com/centos/7/extras/$basearch/
    36. gpgcheck=1
    37. gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    38. #additional packages that extend functionality of existing packages
    39. [centosplus]
    40. name=CentOS-7 - Plus - mirrors.aliyun.com
    41. failovermethod=priority
    42. baseurl=http://mirrors.aliyun.com/centos/7/centosplus/$basearch/
    43. http://mirrors.aliyuncs.com/centos/7/centosplus/$basearch/
    44. http://mirrors.cloud.aliyuncs.com/centos/7/centosplus/$basearch/
    45. gpgcheck=1
    46. enabled=0
    47. gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    48. #contrib - packages by Centos Users
    49. [contrib]
    50. name=CentOS-7 - Contrib - mirrors.aliyun.com
    51. failovermethod=priority
    52. baseurl=http://mirrors.aliyun.com/centos/7/contrib/$basearch/
    53. http://mirrors.aliyuncs.com/centos/7/contrib/$basearch/
    54. http://mirrors.cloud.aliyuncs.com/centos/7/contrib/$basearch/
    55. gpgcheck=1
    56. enabled=0
    57. gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

    7.删除该目录下的原本文件,只剩下创建的新文件

    cd  /etc/yum.repos.d/

    8.清理缓存

    1. yum clean all
    2. yum makecache
    3. yum update

    9.测试

    yum -y install vim

    10.运行命令

    1. yum -y install bc binutils elfutils-libelf gcc gcc-c++ glibc glibc.i686 glibc-devel glibc-devel.i686 ksh libaio libaio-devel libaio-devel.i686 libcap libXrender libX11 libXau libXi libXi.i686 libXtst libXtst.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 libxcb libibverbs make policycoreutils smartmontools sysstat xdpyinfo elfutils-libelf-devel
    2. yum install -y compat-libstdc++-33 elfutils-libelf-devel gcc gcc-c++ glibc-devel
    3. yum install -y ksh libaio-devel numactl-devel
    4. yum install -y unixODBC unixODBC-devel oracleasm oracleasmlib oracleasm-support

    端口范围-Verifying UDP and TCP Kernel Parameters

    vi /etc/sysctl.conf

    添加 

    net.ipv4.ip_local_port_range = 9000 65500

    生效

    sysctl -p /etc/sysctl.conf

    检查端口范围

    cat /proc/sys/net/ipv4/ip_local_port_range

    配置/etc/hosts文件

    grep 127.0.0.1 /etc/hosts

    这是为了主机名可以解析到地址

    创建用户和组
     

    1. groupadd oinstall
    2. groupadd dba
    3. useradd -g oinstall -G dba oracle
    4. passwd oracle

    配置内核参数(root用户)

    修改文件/etc/sysctl.conf 

    vim /etc/sysctl.conf

    添加这些 

    1. fs.file-max = 6815744
    2. kernel.shmall = 2097152
    3. kernel.shmmax = 536870912
    4. kernel.shmmni = 4096
    5. kernel.sem = 250 32000 100 128
    6. net.ipv4.ip_local_port_range = 9000 65500
    7. net.core.rmem_default = 262144
    8. net.core.rmem_max = 4194304
    9. net.core.wmem_default = 262144
    10. net.core.wmem_max = 1048576
    11. net.ipv4.tcp_wmem = 262144 262144 262144
    12. net.ipv4.tcp_rmem = 4194304 4194304 4194304

    执行命令: /sbin/sysctl -p 使参数生效。

    /sbin/sysctl -p 

    创建安装目录

    1. mkdir -p /u01/app/
    2. chown -R oracle:oinstall /u01/app/
    3. chmod -R 775 /u01/app/

    检查Oracle软件安装用户的资源限制

    vi /etc/security/limits.conf

    添加以下内容

    1. oracle soft nproc 2047
    2. oracle hard nproc 16384
    3. oracle soft nofile 1024
    4. oracle hard nofile 65536
    5. oracle soft stack 10240
    6. oracle hard stack 32768

    重启系统让配置生效

    配置Linux内核参数

    vi /etc/sysctl.conf

    插入如下内容

    1. # ============================
    2. # Oracle 11g
    3. # ============================
    4. # semaphores: semmsl, semmns, semopm, semmni
    5. kernel.sem = 250 32000 100 128
    6. kernel.shmall = 2097152
    7. kernel.shmmni = 4096
    8. # Replace kernel.shmmax with the half of your memory size in bytes
    9. # if lower than 4 GB minus 1
    10. # 6442450944 is 6 GigaBytes (12 GB of RAM / 2)
    11. kernel.shmmax=6442450944
    12. #
    13. # Max number of network connections. Use sysctl -a | grep ip_local_port_range to check.
    14. net.ipv4.ip_local_port_range = 9000 65500
    15. #
    16. net.core.rmem_default = 262144
    17. net.core.rmem_max = 4194304
    18. net.core.wmem_default = 262144
    19. net.core.wmem_max = 1048576
    20. #
    21. # The maximum allowed value, set to avoid overhead and input/output errors
    22. fs.aio-max-nr = 1048576
    23. # 512 * Processes
    24. fs.file-max = 6815744
    25. fs.suid_dumpable = 1

    使配置生效

    sysctl -p /etc/sysctl.conf

    设置shell配置文件

    编辑 /etc/profile

    vi /etc/profile

    添加以下

    1. if [ $USER = "oracle" ]; then
    2. if [ $SHELL = "/bin/ksh" ]; then
    3. ulimit -p 16384
    4. ulimit -n 65536
    5. else
    6. ulimit -u 16384 -n 65536
    7. fi
    8. fi

    使生效

    source /etc/profile

    配置 Oracle 软件所有者环境

    指的是oracle用户

    1. su - oracle
    2. vi ~/.bashrc
    3. vim /home/oracle/.bash_profile

    插入以下内容

    1. PATH=$PATH:$HOME/.local/bin:$HOME/bin
    2. export PATH
    3. #For Oracle
    4. export DISPLAY=:0.0
    5. export TMP=/tmp;
    6. export TMPDIR=$TMP;
    7. export ORACLE_BASE=/u01/app/oracle;
    8. export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1;
    9. export ORACLE_SID=orcl;
    10. export ORACLE_TERM=xterm;
    11. export PATH=/usr/sbin:$PATH;
    12. export PATH=$ORACLE_HOME/bin:$PATH;
    13. export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;

     使生效

    source  ~/.bashrc
    注意!!!
    ORACLE_HOSTNAME变量一定需要设置成系统的主机名,否则安装会报错: [INS-20802] Oracle Net Configuration Assistant failed. 出现这个错误耳朵根本原因是ORACLE_HOSTNAME变量和真实的主机名不同。
    这个错误虽然可以忽略,待安装完成再配置监听文件中的主机名,但是比较繁琐。
    

    主机名查看命令

    grep HOSTNAME /etc/sysconfig/network

    三、安装

    安装软件

    上传Oracle文件到目录/home/oracle/下载

    通过Xshell或者其他方式上传均可以

    解压缩

    1. unzip linux.x64_11gR2_database_1of2
    2. unzip linux.x64_11gR2_database_2of2

    现在到图形化界面

    cd database

    运行

    ./runInstaller

    问题:乱码

    解决:

    export LANG=en_US.UTF-8

    注意:这里可能会卡着,但是其实不是真的卡,只需要按住  上键+空格键 就可以跳过

    这里有可能会出现报错,不过别慌

    到这里先别动他,在打开一个终端执行解决步骤,解决步骤完成之后再点击Continue

    解决步骤:

    在makefile中添加链接libnnz11库的参数
    修改$ORACLE_HOME/sysman/lib/ins_emagent.mk,找到下面这行

    $(MK_EMAGENT_NMECTL)

    修改为:

    $(MK_EMAGENT_NMECTL) -lnnz11

    建议修改前备份原始文件

    1. cd $ORACLE_HOME/sysman/lib
    2. cp ins_emagent.mk ins_emagent.mk.bak
    3. vi ins_emagent.mk

    具体命令如上,进入文件之后就开始找那边所说的那一行,在中下的一个位置,然后把它进行替换

    进入vi编辑器后 命令模式输入/NMECTL 进行查找,快速定位要修改的行。
    在后面追加参数-lnnz11, 第一个是字母l,后面两个是数字1。
    保存退出后Retry。

    close之后安装成功,这是你的运行终端显示的是这样子,不要关闭,在打开一个终端执行之后的

    命令

    1. [oracle@localhost database]$ ./runInstaller
    2. Starting Oracle Universal Installer...
    3. Checking Temp space: must be greater than 120 MB. Actual 23003 MB Passed
    4. Checking swap space: must be greater than 150 MB. Actual 2048 MB Passed
    5. Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed
    6. Preparing to launch Oracle Universal Installer from /tmp/OraInstall2023-10-15_02-00-31PM. Please wait ...[oracle@localhost database]$ You can find the log of this install session at:
    7. /u01/app/oraInventory/logs/installActions2023-10-15_02-00-31PM.log

    创建监听

    切换到oracle用户 su - oracle

    执行监听命令 

    netca

    监听相关命令

    监听状态查看

    lsnrctl status

    监听停止

    lsnrctl stop

    监听开始

    lsnrctl start

    dbca建库

    切换至oracle用户

    su - oracle

    dbca命令

    dbca

     

    在这里可能会报错,同样的方法,别关闭,在打开一个终端进行执行

    file ‘’etc oratab’’ is not accessible

    解决:

    切换到root用户:su root

    切换到oracle安装目录 :cd $ORACLE_HOME

    运行root.sh文件:./root.sh

     测试

    连接到数据库

    1. su oracle
    2. sqlplus /nolog

    管理员登录

    conn / as sysdba

    至此数据库安装成功

  • 相关阅读:
    带刹车死区的互补输出与捕获实验
    游戏设计模式专栏(五):三步学会原型模式
    反射及暴力反射
    【Datawhale AI 夏令营】讯飞“基于术语词典干预的机器翻译挑战赛”
    使用python提取轮廓做定制的毛笔字帖
    【无标题】
    Java踩坑笔记 —— base64转换为图片后图片显示不全
    rabbitMQ的direct模式的生产者与消费者使用案例
    springboot幼儿园书刊信息管理系统毕业设计源码141858
    「运维有小邓」Active Directory 密码过期通知功能
  • 原文地址:https://blog.csdn.net/yushaoyyds/article/details/133838764