Linux环境下Oracle 19c ZIP包静默部署全攻略

张开发
2026/5/11 13:26:11 15 分钟阅读

分享文章

Linux环境下Oracle 19c ZIP包静默部署全攻略
1. 环境准备打好地基才能盖高楼第一次在Linux上部署Oracle 19c时我踩了不少坑。最惨的一次是装到一半才发现系统参数没调好只能全部重来。从那以后我就养成了先检查再动手的习惯。下面这些准备工作看似繁琐但能让你后续安装过程顺利十倍。首先确保你的Linux系统是Oracle官方认证的版本。我推荐用CentOS 7.x或RHEL 7.x这些版本兼容性最好。内存建议至少4GB硬盘空间不能少于50GB实际生产环境需要更大。曾经有个同事在虚拟机里只分配了20GB空间结果数据库创建到一半就报空间不足那场面相当尴尬。关闭防火墙和SELinux是必须的否则安装过程中各种奇怪的权限问题能让你怀疑人生systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config安装依赖包时有个小技巧先创建一个本地yum源。我在内网环境部署时就遇到过依赖包下载慢的问题后来把常用包都做成了本地仓库。下面是必须安装的依赖包列表yum -y install binutils compat-libcap1 gcc-c ksh libaio-devel yum -y install libstdc-devel make sysstat unixODBC-devel yum -y install elfutils-libelf-devel libXext libXtst libX11 libXau yum -y install libxcb libXi smartmontools glibc-devel验证安装是否成功时我习惯用这个命令检查关键包rpm -q binutils gcc glibc ksh libaio make sysstat | grep not installed如果有输出就说明还有包没装好。遇到过最坑的情况是系统自带的老版本gcc导致安装失败所以一定要确认gcc版本在4.8.5以上。2. 用户与目录配置给Oracle安个家Oracle对权限和目录结构的要求相当严格。我见过有人直接用root安装结果后面各种权限问题不断。正确的做法是创建专门的oracle用户和组。创建用户组时要注意顺序先创建组再创建用户groupadd -g 54321 oinstall groupadd -g 54322 dba useradd -u 54321 -g oinstall -G dba oracle passwd oracle # 建议设置复杂密码目录结构我推荐按照OFA(Optimal Flexible Architecture)标准来配置。这是我常用的目录方案/u01 ├── app │ ├── oracle │ │ ├── product │ │ │ └── 19.3.0 │ │ │ └── dbhome_1 # ORACLE_HOME │ ├── oraInventory /home/oracle/scripts # 存放自定义脚本设置目录权限时要特别注意mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1 chown -R oracle:oinstall /u01 chmod -R 775 /u01环境变量配置是新手最容易出错的地方。建议先在测试机验证.bash_profile配置export ORACLE_BASE/u01/app/oracle export ORACLE_HOME$ORACLE_BASE/product/19.3.0/dbhome_1 export PATH$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH$ORACLE_HOME/lib:/lib:/usr/lib export TMP/tmp export TMPDIR$TMP3. 系统参数调优让Oracle飞起来内核参数配置直接影响数据库性能。有一次生产环境频繁出现内存不足就是因为shmmax设置太小。下面这些参数是我经过多次实践验证的推荐值编辑/etc/sysctl.conf添加fs.aio-max-nr 1048576 fs.file-max 6815744 kernel.shmall 2097152 kernel.shmmax 内存的75%8GB内存设为6GB 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执行sysctl -p生效后建议用以下命令验证sysctl -a | grep shm sysctl -a | grep sem用户资源限制也很重要特别是生产环境。编辑/etc/security/limits.conforacle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240有个坑要注意如果/etc/pam.d/login里没有加载pam_limits.so上面的配置不会生效。确保有以下内容session required pam_limits.so4. 静默安装实战无交互一键部署静默安装的核心是response file响应文件。我建议先备份原始文件再修改cp $ORACLE_HOME/install/response/db_install.rsp /home/oracle/关键参数配置示例db_install.rsporacle.install.optionINSTALL_DB_SWONLY UNIX_GROUP_NAMEoinstall INVENTORY_LOCATION/u01/app/oraInventory ORACLE_BASE/u01/app/oracle oracle.install.db.InstallEditionEE oracle.install.db.OSDBA_GROUPdba oracle.install.db.OSOPER_GROUPdba oracle.install.db.OSBACKUPDBA_GROUPdba oracle.install.db.OSDGDBA_GROUPdba oracle.install.db.OSKMDBA_GROUPdba oracle.install.db.config.starterdb.typeGENERAL_PURPOSE oracle.install.db.config.starterdb.SIDorcl开始安装前建议先做预检查cd $ORACLE_HOME ./runInstaller -executePrereqs -silent -responseFile /home/oracle/db_install.rsp正式安装命令./runInstaller -silent -responseFile /home/oracle/db_install.rsp -ignorePrereq安装完成后需要用root执行两个脚本/u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/19.3.0/dbhome_1/root.sh5. 数据库创建与监听配置静默建库需要修改dbca.rsp文件。我建议先创建测试库熟悉流程responseFileVersion/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0 gdbNameorcl sidorcl templateNameGeneral_Purpose.dbc sysPassword你的密码 systemPassword你的密码 characterSetAL32UTF8 memoryPercentage40 enableArchivetrue archiveLogFormat%t_%s_%r.dbf执行建库命令dbca -silent -createDatabase -responseFile /home/oracle/dbca.rsp监听配置也有静默模式。先准备netca.rspRESPONSEFILE_VERSION19.0 INSTALL_TYPEcustom LISTENER_NAMELISTENER LISTENER_PORT1521 LISTENER_PROTOCOLS{TCP}配置监听netca -silent -responseFile /home/oracle/netca.rsp启动监听后建议测试连接sqlplus sys/你的密码orcl as sysdba6. 开机自启与服务管理生产环境必须配置开机自启。我整理了一套可靠的方案首先修改/etc/orataborcl:/u01/app/oracle/product/19.3.0/dbhome_1:Y创建服务脚本/etc/init.d/oracle#!/bin/bash ORACLE_HOME/u01/app/oracle/product/19.3.0/dbhome_1 ORACLE_USERoracle case $1 in start) su - $ORACLE_USER -c $ORACLE_HOME/bin/lsnrctl start su - $ORACLE_USER -c $ORACLE_HOME/bin/dbstart $ORACLE_HOME ;; stop) su - $ORACLE_USER -c $ORACLE_HOME/bin/lsnrctl stop su - $ORACLE_USER -c $ORACLE_HOME/bin/dbshut $ORACLE_HOME ;; restart) $0 stop $0 start ;; *) echo Usage: $0 {start|stop|restart} exit 1 esac设置权限并启用服务chmod 755 /etc/init.d/oracle chkconfig --add oracle chkconfig oracle on测试服务控制service oracle start # 启动 service oracle stop # 停止 service oracle status # 查看状态7. 常见问题排查指南安装过程中难免会遇到问题这里分享几个我遇到的典型问题及解决方法问题1安装时提示pdksh包缺失原因Oracle 19c需要ksh而不是pdksh解决yum install ksh问题2dbca建库时报内存不足检查free -m查看可用内存解决调整dbca.rsp中的memoryPercentage参数问题3监听启动失败检查lsnrctl status解决检查$ORACLE_HOME/network/admin/listener.ora配置问题4sqlplus连接时报ORA-12541检查netstat -tulnp | grep 1521解决确认监听是否启动防火墙是否关闭问题5安装日志查看位置安装日志$ORACLE_HOME/install/logs建库日志$ORACLE_BASE/cfgtoollogs/dbca8. 性能优化建议安装完成后我通常会做这些优化调整内存调整ALTER SYSTEM SET sga_target4G SCOPEspfile; ALTER SYSTEM SET pga_aggregate_target2G SCOPEspfile;表空间优化CREATE TEMPORARY TABLESPACE temp2 TEMPFILE /u01/app/oracle/oradata/orcl/temp02.dbf SIZE 2G; ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp2;归档日志配置ALTER SYSTEM SET log_archive_dest_1location/u01/app/oracle/archivelog SCOPEspfile; ALTER SYSTEM SET log_archive_formatarch_%t_%s_%r.arc SCOPEspfile;连接数调整ALTER SYSTEM SET processes500 SCOPEspfile; ALTER SYSTEM SET sessions555 SCOPEspfile;定时任务配置# 每天凌晨3点自动备份 0 3 * * * /home/oracle/scripts/rman_backup.sh这套部署方案已经在我的多个生产环境稳定运行超过两年。记得第一次成功部署时的成就感现在虽然已经轻车熟路但每次安装还是会仔细检查每个步骤。Oracle安装就像做手术准备越充分过程越顺利。

更多文章