Oracle配置在CentOS上如何高效实施
导读:高效落地方案总览 目标:在CentOS 7/8上以最少人工干预完成Oracle 19c/21c部署,兼顾性能与安全。 推荐路径:优先采用RPM一键安装 + 响应文件静默建库;图形化仅用于验证或小规模环境。 关键动作:预检与依赖、内核与资源...
高效落地方案总览
- 目标:在CentOS 7/8上以最少人工干预完成Oracle 19c/21c部署,兼顾性能与安全。
- 推荐路径:优先采用RPM一键安装 + 响应文件静默建库;图形化仅用于验证或小规模环境。
- 关键动作:预检与依赖、内核与资源限制、目录与权限、响应文件模板化、root脚本自动化、监听与DBCA静默、服务化与备份基线。
一、环境与前置准备
- 系统与介质
- 选择CentOS 7/8 x86_64;Oracle提供RPM与ZIP(dbhome)两种介质,二者均可静默化。生产建议19c(LTS),如需新特性可用21c。
- 预检与依赖
- 安装常用工具与驱动:binutils、compat-libcap1、compat-libstdc+±33、gcc/gcc-c++、glibc/glibc-devel、ksh、libaio/libaio-devel、libgcc、libstdc++/libstdc+±devel、make、sysstat、unixODBC/unixODBC-devel、elfutils-libelf-devel、fontconfig-devel、libXrender-devel、net-tools、smartmontools。
- 可选:安装oracle-rdbms-server-12cR1-preinstall(自动做内核参数与用户/目录预设,仍需人工复核)。
- 资源基线
- 内存至少2GB(生产建议更高),可用磁盘≥10GB;Swap不足时按需扩容(如创建16GB交换文件)。
- 安全策略
- 测试环境可临时关闭firewalld/SELinux;生产环境建议保留并仅放行1521/TCP(数据库监听)与5500/TCP(EM Express,如启用)。
二、标准化安装流程
- 创建用户与目录
- 用户/组:
groupadd oinstall & & groupadd dba(可按需补充asmdba、backupdba、dgdba、kmdba、racdba、oper);useradd -g oinstall -G dba oracle。 - 目录:建议基目录**/u01/app/oracle或/opt/oracle**;创建product/19.3.0/dbhome_1(或21.3.0)、oradata、fast_recovery_area、oraInventory并赋权
oracle:oinstall。
- 用户/组:
- 内核与资源限制
- /etc/sysctl.conf(示例,按内存调优
kernel.shmmax):- fs.aio-max-nr = 1048576
- fs.file-max = 6815744
- kernel.shmall = 2097152
- kernel.shmmax = 4294967295(或物理内存一半,单位Byte)
- 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生效。
- /etc/security/limits.conf(oracle用户):
- oracle soft nproc 16384;oracle hard nproc 16384
- oracle soft nofile 1024;oracle hard nofile 65536
- oracle soft stack 10240;oracle hard stack 32768
- oracle soft/hard memlock 3145728
- /etc/sysctl.conf(示例,按内存调优
- 环境变量(oracle用户)
- export ORACLE_BASE=/u01/app/oracle
- export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
- export ORACLE_SID=orcl
- export ORACLE_UNQNAME=orcl
- export PATH=$ORACLE_HOME/bin:$PATH
- export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
- export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
- 安装方式
- RPM方式(19c/21c均可用)
- 安装:
rpm -ivh oracle-database-ee-21c-1.0-1.ol7.x86_64.rpm - 建库:
/etc/init.d/oracledb_ORCLCDB-21c configure(按提示完成CDB/PDB初始化与监听)。
- 安装:
- ZIP方式(19c/21c均可用)
- 解压:
unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME - 静默装软件:复制并编辑
$ORACLE_HOME/install/response/db_install.rsp,关键项:- oracle.install.option=INSTALL_DB_SWONLY
- UNIX_GROUP_NAME=oinstall
- ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
- ORACLE_BASE=/u01/app/oracle
- oracle.install.db.InstallEdition=EE
- oracle.install.db.OSDBA_GROUP=dba
- oracle.install.db.rootconfig.executeRootScript=false
- 执行:
./runInstaller -silent -responseFile /path/db_install.rsp - 以root执行提示的orainstRoot.sh与root.sh。
- 解压:
- RPM方式(19c/21c均可用)
三、静默建库与网络配置
- 监听(NETCA静默)
- 复制并编辑
$ORACLE_HOME/assistants/netca/netca.rsp,常用项:- INSTALL_TYPE=Typical
- LISTENER_NUMBER=1
- LISTENER_NAMES={ “LISTENER”}
- LISTENER_PROTOCOLS={ “TCP; 1521”}
- LISTENER_START=LISTENER
- 执行:
netca -silent -responseFile /path/netca.rsp
- 复制并编辑
- 建库(DBCA静默)
- 复制并编辑
$ORACLE_HOME/assistants/dbca/dbca.rsp,关键项:- gdbName=orcl
- sid=orcl
- databaseConfigType=SI
- templateName=General_Purpose.dbc
- sysPassword=YourStrong!Passw0rd
- systemPassword=YourStrong!Passw0rd
- emExpressPort=5500
- datafileDestination=/u01/app/oracle/oradata
- recoveryAreaDestination=/u01/app/oracle/fast_recovery_area
- characterSet=AL32UTF8
- 执行:
dbca -silent -createDatabase -responseFile /path/dbca.rsp
- 复制并编辑
- 验证
- 监听:
lsnrctl status(应见1521端口与LISTENER) - 实例:
sqlplus / as sysdba→SELECT name, open_mode FROM v$database;与SELECT * FROM v$version;。
- 监听:
四、高效运维与常见坑
- 服务化与自启
- 建议将启停封装为脚本并注册系统服务(如
/etc/init.d/oracle或systemd unit),实现start|stop|status与开机自启,便于标准化交付与批量执行。
- 建议将启停封装为脚本并注册系统服务(如
- RPM方式权限修复
- 若
/etc/init.d/oracledb_* configure报oradism权限/属主异常,执行随软件包提供的root.sh修复;该文件应具备setuid root特性(常见为-rwsr-x--- 1 root oinstall)。
- 若
- 常见报错速解
- ORA-00845:共享内存不足,调大
kernel.shmmax并重启; - swap不足:创建16GB交换文件并启用;
- 安装界面乱码:设置
LANG=C或NLS_LANG=AMERICAN_AMERICA.AL32UTF8; - 依赖缺失:按前述依赖清单补齐,必要时安装
oracle-rdbms-server-12cR1-preinstall再复核。
- ORA-00845:共享内存不足,调大
- 日志与诊断
- 安装日志:
/u01/app/oraInventory/logs/installActions*.log - 监听日志:
$ORACLE_HOME/diag/tnslsnr/< listener> /trace/*.trc - 数据库告警:
$ORACLE_BASE/diag/rdbms/< dbname> /< inst> /trace/alert_< inst> .log - 使用ADR/EM进行性能与故障诊断。
- 安装日志:
五、一键化与参数模板
- 建议将以下要素模板化并纳入代码仓库:
- db_install.rsp / netca.rsp / dbca.rsp(含实例名、字符集、端口、目录、口令策略占位符)
- limits.conf / sysctl.conf 片段
- oracle用户 .bash_profile 环境变量
- 启停脚本与systemd unit
- 安装与建库SOP(含root脚本执行顺序、验证命令清单)
- 通过CI/CD或Ansible批量渲染与执行,实现分钟级标准化交付与可重复回放。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Oracle配置在CentOS上如何高效实施
本文地址: https://pptw.com/jishu/765346.html
