• redhat7.7(centOS7)安装ORACLE 11g出坑教程及问题总结与解决


    写在前面:

    环境建议:VM 15.5,因为15.5修复了诸多bug,可以在安装过程中省去不少麻烦

    添加新的虚拟机安装redhat7.7

    准备redhat7.7的安装包...百度云不让上传噢噢噢噢,这里放上iso的名字:rhel-server-7.7-x86_64-dvd.iso

    redhat安装完毕可能是没有图像界面的,这是因为VM自动选择了简易安装,安装图形界面的方法参考:

    https://www.cnblogs.com/renzmin/p/12057667.html

    配置好linux虚拟机了,接下来就可以开始安装ORACLE了.....

    (1)首先,你得有ORACLE的安装包,这里附上linux oracle 64位的百度云链接

    链接:https://pan.baidu.com/s/1bIR9R-JWVDhs2xXR2umZbg
    提取码:8bzf

    链接:https://pan.baidu.com/s/1vTabCeNGdLVwOgzyr0v-2A
    提取码:82bx

    (2)配置yum源

    因为后边安装oracle过程中,需要导入相应的依赖包。yum是基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装.

    这里主要配置163yum源和epel源。完成后,后续可以通过yum install 命令安装依赖

    a:配置163yum源

    • 进入源管理目录 cd /etc/yum.repos.d
    • 新建一个163.repo文件 vim 163.repo
    • 163.repo文件内容如下
    [163]
    name=163
    baseurl=http://mirrors.163.com/centos/7/os/x86_64/
    gpgcheck=0
    enabled=1
             

    这里要注意的是,baseurl这一项,你要到http://mirrors.163.com/centos这里,去找到你对应的redhat版本的目录,然后点os、再点x86_64(一般都有),然后用你地址栏上显示的网址替换上面的baseurl就行了

    b:配置epel源

    运行 rpm -vih https://dl.fedoraproject.org/pub/epel/7Server/x86_64/Packages/e/epel-release-7-12.noarch.rpm

    注意,我的redhat是7server,所以如果你的版本不是7server,那你要到http://dl.fedoraproject.org/pub/epel找到你对应版本的rpm包,然后用上面的命令下载,这条命令的作用就是在/etc/yum.repos.d目录下生成epel源。

    (3)关闭防火墙

    //临时关闭防火墙,重启后会重新自动打开
    systemctl restart firewalld
    //检查防火墙状态
    firewall-cmd --state
    firewall-cmd --list-all
    //Disable firewall
    systemctl stop firewalld.service
    systemctl disable firewalld
    systemctl stop firewalld
    systemctl status firewalld
    //Enable firewall
    systemctl enable firewalld
    systemctl start firewalld
    systemctl status firewalld

    建议直接关闭,否则在oracle执行到95%时会卡死

    ============================================================================================================================================================================

    下面正式开始安装ORACLE:

    (一):依赖库安装

    yum install -y compat-libstdc++-33 elfutils-libelf-devel gcc gcc-c++ glibc-devel
    yum install -y ksh libaio-devel numactl-devel
    yum install -y unixODBC unixODBC-devel oracleasm oracleasmlib oracleasm-support

    安装完成执行以下,以检查所需的软件包是否都安装完毕:

    rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel  
    rpm -q gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers  
    rpm -q ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make numactl-devel sysstat

    如有提示XXXX not install

    以package compat-libstdc++-33 is not installed为例

    执行 yum list | grep compat-libstdc

    执行 yum install compat-libstdc++-33.x86_64即可

    (二)创建Oracle用户组和用户账号(root用户)

        # groupadd oinstall
        # groupadd dba
        # useradd -g oinstall -G dba oracle
        # passwd oracle

    执行时去掉#

    (三)配置内核参数(root用户)

    1.修改文件/etc/sysctl.conf vim /etc/sysctl.conf

    内容如下:

    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
    
    net.ipv4.tcp_wmem = 262144 262144 262144
    
     net.ipv4.tcp_rmem = 4194304 4194304 4194304

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

    2. 修改文件/etc/security/limits.conf vim /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              hard   stack    32768
    oracle              hard   memlock    134217728
    oracle              soft   memlock    134217728
          

    (四)创建Oracle的安装目录(root用户)

    mkdir -p /u01/app/
    chown -R oracle:oinstall /u01/app/
    chmod -R 775 /u01/app/

    (五)编辑Oracle用户环境(Oracle用户)

    在root用户下输入 su oracle 进入oracle用户环境

    编辑.bash_profile文件 vim /home/oracle/.bash_profile
    .bash_profile文件内容如下:

    PATH=$PATH:$HOME/.local/bin:$HOME/bin
    
    export PATH
    #For Oracle
    export DISPLAY=:0.0
    export TMP=/tmp;
    export TMPDIR=$TMP;
    export ORACLE_BASE=/u01/app/oracle;
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1;
    export ORACLE_SID=orcl;
    export ORACLE_TERM=xterm;
    export PATH=/usr/sbin:$PATH;
    export PATH=$ORACLE_HOME/bin:$PATH;
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;

    重新启动Linux,选择oracle用户环境的时候,系统会根据环境变量进行配置,后边的oracle命令才能正常执行。
    输入 echo $ORACLE_HOME 查看环境变量是否配置成功,如果正常输出了配置的路径,则成功,如果输出为空白,可以在本次手动执行 source /home/oracle/.bash_profile 执行环境变量的加载。但是仅在当前终端窗口有效。
    (六)安装ORACLE数据库(oracle用户)

    电脑重启完之后,当前为Oracle用户,

    1.首先cd到包含oracle文件的盘,

    解压缩:

    unzip linux.x64_11gR2_database_1of2
    unzip linux.x64_11gR2_database_2of2

    利用unzip命令解压缩的时候,出现-bash: unzip: command not found的错误。
    unzip——命令没有找到,其原因肯定是没有安装unzip。利用一句命令就可以解决了。

    yum install -y unzip zip

    2.键入vncserver 如果提示command not found,则在root用户下使用 yum install tigervnc-server -y进行安装

    3.执行 ./runInstaller 进入安装界面

    (1).取消沟-----下一步------yes(提示没有填写邮箱)

    (2)选择“Create and configure a database”,点击“Next”

     (3)选择“Desktop Class”,点击“Next”

     

    (4)在配置页面上,输入管理员密码,比如“password”,点击“Next”

     (5)验证先决条件

     (6)预检查通常会报很多fail

     

     关于swap空间不足,可以采用以下方式修复

    1、使用dd命令创建一个swap分区
    
              2、#dd if=/dev/zero of=/home/swap bs=1024 count=16400000
    
              3、格式化刚才创建的分区
    
              4、# mkswap /home/swap
    
              5、再使用swapon命令把这个文件分区变成swap分区
    
              6、#swapon /home/swap
    
              7、(关闭SWAP分区的命令为:#swapoff /home/swap)
    
              8、再用free -m 查看已经扩容的了swap分区。
    
              9、为了能够让swap自动挂载,需要修改etc/fstab文件,用vi /etc/fstab
    
              10、在文件末尾加上 /home/swap swap swap default 0 0
    
              11、这样就算重启系统,swap分区也不用手动挂载了
    
              12、但是我感觉好像我重启了系统 swap就没有了,然后我又百度了一下,要执行下面一段命令  #echo   "swapon  /home/swap" >> /etc/inittab 
    
              13、然后在看 vi 看下 /etc/inittab
    
              14、最后一行是swapon  /home/swap,这样就万事大吉了。
    
     

     其他的诸如黄框框中的错误,采用(一)依赖安装中的方式进行修复,由于本机是64位,对于i386的包可以予以忽略

    修复需要的安装包之后,如部分i386的没有安装,就直接点击右上角的ignore All 进行下一步即可

    (七).显示的安装进度信息:

     进行到68%时会报两个错误

    第一个:Error in invoking target 'install' of makefile '/home/oracle/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk'. See '/home/oracle/oraInventory/logs/installActions2014-05-21_02-20-57PM.log' for details.

     解决方案:

    编辑创建脚本:

    # Fix ctx/lib/ins_ctx.mk
     
    ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
     
    cat << __EOF__ > /tmp/memcpy_wrap.c
    #include <stddef.h>
    #include <string.h>
     
    asm (".symver wrap_memcpy, memcpy@GLIBC_2.14");
    void *wrap_memcpy(void *dest, const void *src, size_t n) {
    return memcpy(dest, src, n);
    }
    __EOF__
     
    if [[ -e "${ORACLE_HOME}/ctx/lib/ins_ctx.mk" ]]; then
    sed -i -e 's/$(INSO_LINK)/$(INSO_LINK) -Wl,--wrap=memcpy_wrap $(ORACLE_HOME)/ctx/lib/memcpy_wrap.o/g' ${ORACLE_HOME}/ctx/lib/ins_ctx.mk
    gcc -c /tmp/memcpy_wrap.c -o ${ORACLE_HOME}/ctx/lib/memcpy_wrap.o && rm /tmp/memcpy_wrap.c
    fi

    运行脚本 并点击retry

    下载路径及傻瓜式操作步骤下载链接:

    第二个:Error in invoking target 'agent nmhs' of makefile '/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk'. See '/u01/app/oraInventory/logs/installActions2015-04-23_01-23-30PM.log' for details.

    解决方案:

    编辑创建脚本:

    # Fix sysman/lib/ins_emagent.mk
     
    ORACLE_SRC_INSTALL_DIR=/media/sf_uxora_share/database
    cd ${ORACLE_SRC_INSTALL_DIR}/stage/Components
     
    jar_file=
    for i_file in $( ls ./oracle.sysman.agent/*/1/DataFiles/filegroup*.jar ); do
    unzip -l ${i_file} sysman/lib/ins_emagent.mk 2>&1 1>/dev/null
    [[ $? -eq 0 ]] && jar_file=${i_file} && break
    done
     
    unzip ${jar_file} sysman/lib/ins_emagent.mk 2>&1 1>/dev/null
    if [[ $? -eq 0 ]]; then
    sed -i -e 's/$(MK_EMAGENT_NMECTL)/$(MK_EMAGENT_NMECTL) -lnnz11/g' sysman/lib/ins_emagent.mk
    jar -uvf  ${jar_file} sysman/lib/ins_emagent.mk
    fi

    运行脚本 并点击retry

    下载路径及傻瓜式操作步骤下载链接:

    第三个:执行以上两个脚本时会出现的问题

    解决linux的-bash: ./xx: Permission denied

    -bash: ./xx.sh: Permission denied
    解决:
    chmod 777 xx.sh

    Linux chmod +755和chmod +777 各是什么意思呢?

    755 代表用户对该文件拥有读,写,执行的权限,同组其他人员拥有执行和读的权限,没有写的权限,其他用户的权限和同组人员权限一样。
    777代表,user,group ,others ,都有读写和可执行权限。

    (八)安装最后步骤按提示在root用户下执行脚本.

    cd /u01/app/oraInventory/
    sh orainstRoot.sh
    cd /u01/app/oracle/product/11.2.0/dbhome_1/
    sh root.sh

    最后点击OK即可,

    至此完成了oracle的安装,以下开始配置监听器等,

    ==================================================================================================================================================================================

    写在前面:

    首先将安装完成后生成的listener.ra及tnsname.ora改个名字(不要删除,建议重命名为init_XXXX.ora),这样做的目的是后续需要使用netca自己根据需要配置这两个文件

    (九)oracle安装成功后需要配置监听器,直接键入 netca命令,如果提示bash:netca:command not found ,手工执行source /home/oracle/.bash_profile,就可以进入配置监听器的用户界面了,根据需要配置监听器。

    首先配置tnsnames.name

    直接键入 netca命令

     

     

     

     

     

    打开tnsnames.ora进行进一步的修改

    orcl =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.195.128)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = orcl)
        )
      )

     ==========================================================================

    配置listener.ora

    直接键入 netca命令

     协议选择TCP之后一路下一步即可。

    打开listener.ora进行进一步的修改

    SID_LIST_LISTENER =
    (SID_LIST =
      (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = orcl)
      )
    )
    
    
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.195.128)(PORT = 1521))
        )
      )
    
    ADR_BASE_LISTENER = /u01/app/oracle

    (十)测试监听命令

    lsnrctl stop
    lsnrctl start

    在这个过程中,可能一般会报错,错误为:

    Service "orcl" has 1 instance(s).
      Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
    The command completed successfully

    此时采用如下方式进行修复:

    (1)设置主机hosts映射,root下更改 vi /etc/hosts

    使用hostname命令查看主机名

     (2)执行以下命令,注册数据实例

    [oracle@localhost ~]$ sqlplus / as sysdba
    SQL>shutdown immediate
    SQL> startup
    SQL> alter system register;
    SQL> quit

    (3)查看结果

     lsnrctl status

    输出:
    LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 13-MAY-2014 10:19:18

    Copyright (c) 1991, 2009, Oracle.  All rights reserved.

    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.121)(PORT=1521)))
    STATUS of the LISTENER
    ------------------------
    Alias                     LISTENER
    Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
    Start Date                13-MAY-2014 10:13:32
    Uptime                    0 days 0 hr. 5 min. 46 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
    Listener Log File         /u01/app/oracle/diag/tnslsnr/gpdb/listener/alert/log.xml
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.121)(PORT=1521)))
    Services Summary...
    Service "orcl" has 2 instance(s).
      Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
      Instance "orcl", status READY, has 1 handler(s) for this service...
    Service "orclXDB" has 1 instance(s).
      Instance "orcl", status READY, has 1 handler(s) for this service...
    The command completed successfully

    说明已经修复好了哦,至此所有配置已经完结。

    ==============================================================================================================================================================================

    以下进行测试

    #sqlplus / as sysdba
    //输出:

    SQL*Plus: Release 11.2.0.1.0 Production on Fri Dec 20 00:52:02 2019

    Copyright (c) 1982, 2009, Oracle. All rights reserved.


    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options

    SQL>

    执行:

    SQL>select * from tab;

    若有一大堆输入,则说明是正确的啦

    以下,对安装时默认锁定的用户进行解锁,例如将scott用户解锁,密码设置为11,

    具体操作步骤如下:
    C:> sqlplus
    请输入用户名:sys
    输入口令:sys as sysdba //注意:在口令这里输入的密码后面必须要跟上 as sysdba 才可以。
    SQL> alter user scott account unlock;
         用户已更改.
    SQL> commit;
         提交完成.
    SQL> conn scott/tiger
    更改scott口令
    新口令:tiger
    重新键入新口令:tiger
    口令已更改
    已连接。
    测试一下:

     恭喜!!!所有操作已完成。。。

    前后折腾了两三天,特此记录,以备后用



  • 相关阅读:
    说文解字 —— 拆字
    4K 对齐与固态硬盘检测工具
    硬盘分区(主分区、扩展分区、逻辑分区)
    python+caffe训练自己的图片数据流程
    亲和数(220/284)
    浅谈多进程多线程的选择
    Linux下的多线程编程
    LINUX-进程的概念
    Linux终端那件事儿
    Linux的终端类型
  • 原文地址:https://www.cnblogs.com/renzmin/p/12073791.html
Copyright © 2020-2023  润新知