news 2026/4/19 15:33:53

Oracle19c在Linux环境下的高效部署:从预配置到静默安装全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Oracle19c在Linux环境下的高效部署:从预配置到静默安装全解析

1. 为什么选择静默安装Oracle19c?

第一次接触Oracle数据库安装的朋友,可能会被图形化界面里密密麻麻的选项吓到。我刚开始做DBA的时候,每次点"下一步"都战战兢兢,生怕哪个参数配错了要重头再来。直到后来接触了静默安装,才发现原来数据库部署可以这么优雅——不用盯着进度条发呆,一个响应文件就能搞定所有配置。

静默安装特别适合下面这些场景:

  • 服务器没有图形界面:很多生产环境为了安全考虑,根本不会安装GUI组件
  • 批量部署需求:要给几十台服务器装Oracle时,总不能每台都手动点一遍吧?
  • 标准化运维:响应文件就是你的安装剧本,确保每台服务器的配置完全一致

实测下来,用静默安装方式部署Oracle19c,时间能比图形化安装节省40%以上。去年我们给客户做系统迁移,20套Oracle实例全部通过静默安装完成,最忙的时候一天部署了8套环境,全靠写好的响应文件模板。

2. 环境准备:这些坑我帮你踩过了

2.1 系统配置避坑指南

在RHEL 7.6上装Oracle19c时,这三个配置最容易出问题:

  1. 内存分配不足:物理内存小于8GB时,安装程序会直接报错。我有次在测试环境用4GB内存的虚拟机安装,先决条件检查死活过不去,后来发现是swap分区没配置够。建议按这个公式计算:

    # 交换分区大小计算公式(单位MB) MEM=$(grep MemTotal /proc/meminfo | awk '{print $2/1024}') SWAP=$(($MEM < 16000 ? $MEM*2 : 16000))
  2. tmp空间不足:Oracle安装过程需要至少1GB的/tmp空间。遇到过最坑的情况是/tmp被占满导致安装中断,解决方案很简单:

    # 清理/tmp或临时扩大空间 dd if=/dev/zero of=/tmp/tempswap bs=1M count=2048 chmod 600 /tmp/tempswap mkswap /tmp/tempswap swapon /tmp/tempswap
  3. 依赖包缺失:即使用了预安装RPM包,还是可能缺依赖。这个命令能一键补全:

    yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc-c++ glibc-devel \ libaio-devel libstdc++-devel ksh make sysstat unixODBC-devel

2.2 存储路径规划实战

Oracle家目录放哪一直有争议,我的经验是:

  • /opt方案:适合测试环境,跟着RPM包默认走就行
  • /u01方案:生产环境推荐,三点优势:
    1. 独立文件系统,避免被其他应用写满
    2. 路径短,管理方便(比如ASM磁盘组+1)
    3. 符合OFA(Optimal Flexible Architecture)标准

创建目录时这个细节要注意:先确认文件系统挂载选项有noatime,能显著降低I/O压力:

# 检查现有挂载选项 grep /u01 /etc/fstab # 如果没有就添加 echo "/dev/mapper/vg_u01-lv_u01 /u01 xfs defaults,noatime 0 0" >> /etc/fstab

3. RPM预安装包的妙用

3.1 为什么说它是懒人神器

Oracle官方提供的oracle-database-preinstall-19c这个RPM包,简直是我见过最良心的预配置工具。上次给新来的同事演示,他看完直呼"这也太智能了"——原来要手动配置20分钟的用户权限、内核参数,现在一条命令就搞定:

rpm -ivh oracle-database-preinstall-19c-1.0-2.el7.x86_64.rpm

这个包具体帮我们做了哪些事?看这个对比表就明白了:

配置项手动操作步骤RPM包自动完成
用户/用户组需要手动创建oracle用户和6个组✔️
内核参数要改/etc/sysctl.conf里10+参数✔️
资源限制需配置/etc/security/limits.conf✔️
目录权限要手动chown和chmod✔️

3.2 常见问题排雷

不过这个预安装包也不是万能的,有次在CentOS 8上装19c就踩了坑。报错提示缺少libnsl,解决方法很简单:

# CentOS 8特有依赖问题 dnf install -y libnsl

还有个隐藏技巧:如果想自定义用户ID和组ID,可以在安装时指定参数:

rpm -ivh oracle-database-preinstall-19c-1.0-2.el7.x86_64.rpm \ --define "oracle_uid=1001" --define "oracle_gid=1001"

4. 静默安装全流程拆解

4.1 响应文件生成技巧

生成响应文件有两种方式,我推荐用图形界面生成再修改,比直接手写靠谱多了。具体操作:

  1. 正常启动图形安装界面
  2. 填完所有配置后,在最后一步选择"保存响应文件"
  3. 保存为/home/oracle/db_install.rsp

关键参数这样改:

# 改成静默模式 oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0 oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_1 ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSOPER_GROUP=oper oracle.install.db.OSBACKUPDBA_GROUP=backupdba oracle.install.db.OSDGDBA_GROUP=dgdba oracle.install.db.OSKMDBA_GROUP=kmdba oracle.install.db.OSRACDBA_GROUP=racdba DECLINE_SECURITY_UPDATES=true

4.2 一键安装脚本

把安装过程封装成脚本,下次用起来更方便:

#!/bin/bash # 解压安装包 unzip -q LINUX.X64_193000_db_home.zip -d $ORACLE_HOME # 静默安装 $ORACLE_HOME/runInstaller -silent -ignorePrereq -waitforcompletion \ -responseFile /home/oracle/db_install.rsp # 执行root脚本 /u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/19.3.0/db_1/root.sh # 验证安装 su - oracle -c "sqlplus / as sysdba <<EOF select status from v\$instance; exit EOF"

5. 数据库实例创建实战

5.1 DBCA静默模式详解

用dbca静默创建数据库时,这个响应文件模板亲测可用:

responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0 gdbName=ORCL sid=ORCL createAsContainerDatabase=true numberOfPDBs=1 pdbName=PDB1 useLocalUndoForPDBs=true templateName=General_Purpose.dbc sysPassword=Oracle_1234 systemPassword=Oracle_1234 emConfiguration=NONE datafileDestination=/u01/app/oracle/oradata recoveryAreaDestination=/u01/app/oracle/fast_recovery_area characterSet=AL32UTF8 nationalCharacterSet=AL16UTF16 initParams=sga_target=4GB,pga_aggregate_target=1GB

启动静默创建的命令要注意加-createDatabase参数:

dbca -silent -createDatabase -responseFile /home/oracle/dbca.rsp

5.2 内存自动配置技巧

在内存有限的服务器上,可以用这个技巧自动计算内存分配:

# 根据系统内存自动计算SGA和PGA TOTAL_MEM=$(free -m | awk '/Mem:/{print $2}') SGA_SIZE=$(($TOTAL_MEM * 70 / 100)) PGA_SIZE=$(($TOTAL_MEM * 20 / 100)) dbca -silent -createDatabase \ -initParams sga_target=${SGA_SIZE}M,pga_aggregate_target=${PGA_SIZE}M \ -responseFile /home/oracle/dbca.rsp

6. 安装后必须做的5件事

  1. 开启归档模式(除非是纯测试环境):

    SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; SQL> ALTER DATABASE ARCHIVELOG; SQL> ALTER DATABASE OPEN;
  2. 配置自动备份

    # 最简单的RMAN备份脚本 cat > /home/oracle/rman_backup.sh <<'EOF' rman target / <<CMDS CONFIGURE RETENTION POLICY TO REDUNDANCY 2; CONFIGURE CONTROLFILE AUTOBACKUP ON; BACKUP DATABASE PLUS ARCHIVELOG; EOF
  3. 改默认密码有效期

    ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
  4. 设置定时清理日志

    # 每天凌晨清理30天前的监听日志 0 0 * * * find $ORACLE_BASE/diag -name "*.log" -mtime +30 -delete
  5. 配置监控告警

    -- 监控表空间使用率 CREATE OR REPLACE DIRECTORY alert_dir AS '/u01/app/oracle/admin/alert';

7. 不同安装路径性能对比

去年我们专门做了个测试,对比/opt和/u01两种安装路径的性能差异。测试环境是AWS上的r5.2xlarge实例(8vCPU/64GB内存),测试结果有点意思:

测试项/opt方案/u01方案差异
OLTP吞吐量1250 TPS1320 TPS+5.6%
全表扫描耗时47秒43秒-8.5%
备份速度1.2GB/s1.3GB/s+8.3%
故障恢复时间6分12秒5分48秒-7.7%

关键发现:当使用NVMe SSD时,/u01方案的优势更明显。这是因为/u01通常单独挂载高性能磁盘,避免了和系统盘争抢I/O资源。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/19 15:30:49

五大专业模糊算法:obs-composite-blur让直播画面质感全面提升

五大专业模糊算法&#xff1a;obs-composite-blur让直播画面质感全面提升 【免费下载链接】obs-composite-blur A comprehensive blur plugin for OBS that provides several different blur algorithms, and proper compositing. 项目地址: https://gitcode.com/gh_mirrors/…

作者头像 李华
网站建设 2026/4/19 15:30:49

可调谐石墨烯超材料吸收体:化学势调节光谱的FDTD仿真模拟研究

可调谐石墨烯超材料吸收体FDTD仿真模拟 【案例内容】该案例提供了一种可调谐石墨烯超材料吸收体&#xff0c;其吸收光谱可以通过改变施加于石墨烯的化学势来进行调节 【案例文件】仿真源文件"啪"地一声合上笔记本电脑&#xff0c;我对着屏幕上跳动的吸收光谱曲线发愣…

作者头像 李华
网站建设 2026/4/19 15:29:26

AGI模型权重泄露算不算商业秘密侵权?——中美欧3国首例算法窃取案判决书逐条批注(含未公开裁定附件)

第一章&#xff1a;AGI模型权重泄露算不算商业秘密侵权&#xff1f;——中美欧3国首例算法窃取案判决书逐条批注&#xff08;含未公开裁定附件&#xff09; 2026奇点智能技术大会(https://ml-summit.org) 核心争议焦点&#xff1a;权重参数是否具备“秘密性”与“价值性”双重…

作者头像 李华