孤岛架桥:CentOS7离线部署Oracle 19c全实录——避坑指南与高频错误急救手册

引言

在无外网的生产环境中部署Oracle 19c,如同在数字孤岛架设数据库桥梁。本文结合实战经验,详解离线安装全流程,并针对高频错误提供“急救包”,助你绕过90%的踩坑点。


一、离线安装Oracle 19c全流程

(附避坑要点标注)


1. 环境准备:孤岛生存法则
  • 系统要求

    # CentOS 7.6+,内核3.10+  
    cat /etc/redhat-release  
    uname -r  
  • 避坑点:Oracle 19c不支持CentOS 8,需严格选择7.6~7.9版本。

  • 依赖包离线包下载
    使用联网机器下载所有依赖(保存至/tmp/oracle_deps):

yum install --downloadonly --downloaddir=/tmp/oracle_deps \  
  binutils compat-libcap1 compat-libstdc++-33 gcc-c++ glibc glibc-devel ksh \  
  libaio libaio-devel libXext libXtst libX11 libXau libxcb libXi make sysstat  

关键操作:将/tmp/oracle_deps打包传输至目标服务器,通过createrepo生成本地YUM源。


2. 系统配置:为Oracle铺路
  • 用户与目录

    groupadd -g 54321 oinstall  
    groupadd -g 54322 dba  
    useradd -u 54321 -g oinstall -G dba oracle  
    mkdir -p /u01/app/oracle/product/19c/dbhome_1  
    chown -R oracle:oinstall /u01  

    内核参数调优

    # /etc/sysctl.conf  
    fs.aio-max-nr = 1048576  
    fs.file-max = 6815744  
    kernel.shmall = 1073741824  
    kernel.shmmax = 4398046511104  
    kernel.shmmni = 4096  
    semmsl=250 semmns=32000 semopm=100 semmni=128  

    避坑点shmmax必须大于SGA大小,否则引发ORA-27102错误。


    3.静默安装:无图形界面部署
  • 响应文件生成
    从安装包解压db_install.rsp模板:

    unzip LINUX.X64_193000_db_home.zip  
    cp response/db_install.rsp /tmp/custom_db_install.rsp  

    关键配置项

    oracle.install.option=INSTALL_DB_SWONLY  
    UNIX_GROUP_NAME=oinstall  
    INVENTORY_LOCATION=/u01/app/oraInventory  
    ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1  
    ORACLE_BASE=/u01/app/oracle  
    oracle.install.db.InstallEdition=EE  
    oracle.install.db.OSDBA_GROUP=dba  
    oracle.install.db.OSOPER_GROUP=dba  
    DECLINE_SECURITY_UPDATES=true  

    执行安装

    ./runInstaller -silent -responseFile /tmp/custom_db_install.rsp  

    避坑点:若出现[INS-32055]错误,需检查本地YUM源配置是否生效。


    4. 数据库创建:命令行建库
    dbca -silent -createDatabase \  
      -templateName General_Purpose.dbc \  
      -gdbname ORCL -sid ORCL \  
      -responseFile NO_VALUE \  
      -characterSet AL32UTF8 \  
      -sysPassword Oracle123 \  
      -systemPassword Oracle123 \  
      -createAsContainerDatabase false \  
      -storageType FS  

    关键参数-characterSet必须与业务需求一致,避免后期出现乱码问题。


    二、高频致命错误与急救方案


    错误1:ORA-27125: unable to create shared memory segment
  • 症状:数据库启动失败,共享内存不足

  • 根因/dev/shm空间不足或内核参数未生效

  • 修复

    mount -t tmpfs shmfs -o size=8g /dev/shm  
    sysctl -p  # 重新加载参数  
    错误2:ORA-12514: TNS:listener does not currently know of service requested
  • 症状:客户端无法连接

  • 根因:监听未注册实例或listener.ora配置错误

  • 修复

    -- 检查监听状态  
    lsnrctl status  
    -- 修改listener.ora  
    SID_LIST_LISTENER =  
      (SID_LIST =  
        (SID_DESC =  
          (GLOBAL_DBNAME = ORCL)  
          (SID_NAME = ORCL)  
          (ORACLE_HOME = /u01/app/oracle/product/19c/dbhome_1)  
        )  
      )  
    错误3:ORA-01034: ORACLE not available
  • 症状:实例未启动

  • 根因ORACLE_SID未设置或/etc/oratab配置错误

  • 修复

    echo "export ORACLE_SID=ORCL" >> ~oracle/.bash_profile  
    sed -i 's/:N$/:Y/' /etc/oratab  # 允许自动启动  
    错误4:ORA-00205: error in identifying control file
  • 症状:控制文件路径错误

  • 根因spfile中控制文件路径与实际不匹配

  • 修复

    STARTUP NOMOUNT;  
    CREATE SPFILE FROM PFILE;  
    ALTER SYSTEM SET control_files='/u01/app/oracle/oradata/ORCL/control01.ctl' SCOPE=SPFILE;  

    三、结语:离线部署的核心哲学

    成功的关键在于**“预判问题,精准排雷”**:

  • 依赖包离线化需完整,推荐使用yum-utilsdownloadonly插件;

  • 内核参数必须与硬件资源匹配,建议通过HugePages优化内存管理;

  • 静默安装响应文件需逐项验证,避免因格式错误导致安装中断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值