Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 350|回复: 0

centos7远程安装oracle11g R2详细教程-解决一切问题

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-5-19 11:24:43 | 显示全部楼层 |阅读模式

    相关链接与资源:
    sqldevelper(各种操作系统的oracle客户端)
    oracle11g r2下载地址:
    centos7相关rpm包下载:
    安装过程参考链接:
    #centos7安装oracle11g R2
    #linux安装oracle图文操作
    #centos6安装oracle11g R2
    #dbca建库图形化教程
    #impdp和expdp使用说明
     
     
    遇到的oracle报错以及解决方案:
    ORA-01940: cannot drop a user that is currently connected
    原因:user存在没有中断的任务
    解决:
        1、等待,一般等会(几分钟)就ok了
        2、主动杀死任务: http://www.linuxidc.com/Linux/2012-12/76448.htm
              不过成功的几率不是太高
     
    ORA-39171: Job is experiencing a resumable wait.
    ORA-01688: unable to extend table IEVSP
    原因:表空间不足,任务暂停
    解决:
        1、直接增加表空间的存储文件了事。
    命令:
    alter tablespace TBS_IEVSP add datafile '/opt/oracle/oradata/gw/TBS_IEVSP02.dbf' size 30G;
    相关命令:查询表空间大小
    查询表大小:
    select a.tablespace_name, total, free, total-free as used from
    (select tablespace_name, sum(bytes)/1024/1024/1024 as total from dba_data_files group by tablespace_name) a,
    (select tablespace_name, sum(bytes)/1024/1024/1024 as free from dba_free_space group by tablespace_name) b
    where a.tablespace_name = b.tablespace_name;
    相关链接:
    #查询表空间大小
    #扩展表空间方法
     
    ORA-39070: Unable to open the log file
    原因:创建目录上级目录属组与用户有问题。
    解决:chown -R oracle:oinstall /path
     
    下面描述一下整体过程以及遇到的问题和解决方法,用于记录,为以后工作提供参考。
     
    起因:客户给了一批大约150G的数据,需要给建模工程师分析。
    整体处理流程:
        1、查看用户提供数据格式为.dmp数据,是oracle导出的备份数据。
        2、数据为GBK格式,而平台只能接入UTF-8的oracle,可能需要转码
    那么临时目标变为了:
        1、将数据导入某个现有的oracle数据库,有两个选择:
            aws的oracle数据库实例
            docker容器版本的oracle
        2、尝试对数据进行转码
     
    第一阶段:数据导入:
        阶段目标是将数据导入oracle
    尝试1:将数据导入docker的oracle容器。
     
        在这个阶段尝试启动了一个oralce容器,镜像名称是:rodrigozc/oracle11g
        相关启动命令可以在dockerhub上获取
    阶段结果:失败
    失败原因:由于oracle的镜像版本是xe,对表空间大小有限制,最高11G,失败!
     
    尝试2:将数据导入aws的oracle服务实例
        
        启动了aws实例,并且经过各种尝试和学习oracle概念,连接成功,但是出现问题
    阶段结果:失败
    失败原因:用户数据的导出方式是expdp|impdp,这种方式只能将数据经由本地导入。
     
    第二阶段:创建数据库
        
        第一步:环境准备
            1、尝试在aws官方的AMI上进行搭建,但是官方源不支持linux界面安装。
            2、尝试使用社区本的AMI进行搭建,进行了两次尝试(centos6)均失败,原因各有不同。
            3、最终选择之间安装docker的私有AMI centos7 进行安装
     
        第二步:oracle11g R2安装
            1、安装步骤参照上面的参考链接即可,有一些小坑但是问题不大。
            2、最大的问题可能在于display的设置以及vnc连接。
            3、还有就是oracle安装环境检查时提示缺少rpm,除了一个centos5存在的包需要版本号比较大之外,其他的忽略即可
     
    第三阶段:数据导入
        
        第一步:创建表空间、索引空间、用户等。
            1、这里有一个大坑,表空间即便自动增长,最大也就32G(好像),这导致我重复导入多次,实际上只要简单的扩充表空间存储文件,任务就会继续,这个阶段至少浪费了三个小时。
     
    以上问题基本上baidu都可以解决,重点是由于比较分散,坑需要一个一个的踩,比较浪费时间。
     
    投入时间:全程投入了4天,数据库安装与导入用了两天,并且都小加班了一下。
    简单的记录下来,用于以后的参考。
     
    ####################################################
    以下是详细的环境准备与安装过程,其实上面才是重点
    ####################################################
    标题:centos7 安装oracle11g r2
     
    #替换yum源为163源
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
    yum clean all
    yum makecache
     
    #安装需要的包
    rpm -qa binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers glibc-static kernel-headers pdksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel libstdc++-static make numactl-devel sysstat unixODBC unixODBC-devel
     
    yum install -y binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers glibc-static kernel-headers pdksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel libstdc++-static make numactl-devel sysstat unixODBC unixODBC-devel
     
    #创建用户和组
    groupadd oinstall
    groupadd dba
    groupadd oper
    useradd -g oinstall -G dba,oper oracle
    echo "oracle" | passwd --stdin oracle
     
    #配置内核
    # vi /etc/sysctl.conf
    按照系统值对比添加:
     
    #由于系统内存为119G,那么shmmax=118/2*1024*1024*1024 = 63350767616
    fs.aio-max-nr = 1048576
    fs.file-max = 6815744
    kernel.shmall = 2097152
    kernel.shmmax = 63350767616
    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
    保存后生效命令:
    # /sbin/sysctl -p
     
    #创建安装目录
    mkdir -p /opt/oracle/product/11.2.0.1
    chown -R oracle:oinstall /opt/oracle
    mkdir /var/oracle
    chown oracle:oinstall  /var/oracle
    chmod 755 /var/oracle
     
    #设置环境变量
    vi /etc/profile
    增加下面行:
    if [ $USER = "oracle" ]; then
            if [ $SHELL = "/bin/ksh" ]; then
                  ulimit -p 16384
                  ulimit -n 65536
            else
                  ulimit -u 16384 -n 65536
            fi
    fi
     
    #修改oracle账户环境变量
    # .bash_profile
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
            . ~/.bashrc
    fi
    # User specific environment and startup programs
    umask 022
     
    TMP=/tmp
    TMPDIR=/tmp
    export TMP TMPDIR
    # 如果安装出现相关问题请屏蔽下面5行,
    # 安装好后再取消屏蔽这些环境变量设置
    export ORACLE_HOME=/opt/oracle/product/11.2.0.1
    export ORACLE_BASE=/opt/oracle
    export ORACLE_SID=orcl
    export TNS_ADMIN=$ORACLE_HOME/network/admin
    export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
    export PATH=$PATH:$ORACLE_HOME/bin
     
    export LANG=AMERICAN_AMERICA.ZHS16GBK
    unset USERNAME
     
    echo ".bash_profile executed"
     
    #修改进程和最大会话数-root下编辑
    编辑文件:
    # vi /etc/security/limits.conf
    oracle           soft    nproc           2047
    oracle           hard    nproc           16384
    oracle           soft    nofile          1024
    oracle           hard    nofile          65536
     
    #关联设置
    vi /etc/pam.d/login
    -倒数第二行加入
    session    required     pam_limits.so
     
    #安装vnc server 以及 图形化界面
    yum install tigervnc tigervnc-server libvncserver -y
     
    yum install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts -y
     
    yum -y groupinstall "X Window System"
     
    #centos7安装图形化界面和vnc
     
    #远程静默安装oracle
     
    #执行安装脚本报错
    Exception in thread "main" java.lang.NoClassDefFoundError
     
    #最正确的安装步骤:
    export DISPLAY=:1
    xhost +
    su - oracle
    ./runInstaller
     
    使用vnc连接远程服务器安装oracle
     
    #环境检查问题解决:
     
    #创建大于16G的swap分区
    dd if=/dev/zero of=/var/swap bs=1024 count=2048000
     
    fallocate -l 17G /home/swapfile
     
    chmod 600 /home/swapfile
    mkswap swapfile
    swapon swapfile
     
    #pdksh包缺失:
    rpm -e ksh-20120801-34.el7.x86_64
    卸载ksh包,并安装pdksh包
     
     
    #启动数据库监听服务
    百度就ok 
    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-15 09:01 , Processed in 0.078245 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表