如何快速配置启动CentOS上Oracle数据库,实现高效运维?
- 内容介绍
- 文章标签
- 相关推荐
快速配置与启动 CentOS 上的 Oracle 数据库
一、准备与环境检查
在开始之前请先确认服务器满足以下硬件与程序要求:
- 内存 ≥ 2 GB
- 磁盘可用空间 ≥ 10 GB
- Swap ≥ 2 GB
-
已更新至最新补丁:
sudo yum update -y - 痛点:如果程序版本不在 Oracle 支持列表中,安装会报 “must be redhat‑…” 错误,需要先修改 /etc/redhat-release 或使用兼容脚本。
1.1 切换到 oracle 使用者并验证环境变量
su - oracle echo $ORACLE_HOME echo $ORACLE_SID which sqlplus
二、下载并解压 Oracle 安装包
Oracle 官网或可信镜像下载:
将压缩文件放到 /u01/app/oracle 并解压:
mkdir -p /u01/app/oracle cd /u01/app/oracle unzip linux.x64_11gR2_database_1of2.zip unzip linux.x64_11gR2_database_2of2.zip chown -R oracle:oinstall /u01/app/oracle chmod -R +x /u01/app/oracle/*
二、1 安装必要的依赖包
sudo yum install -y binutils gcc glibc glibc-common libaio libaio-devel \ libgcc libgcc_s.x86_64 libstdc++ libstdc++-devel make \ sysstat unzip # 对于 CentOS 6,请确保安装对应版本的 gcc 和 glibc 等。
二、2 配置内核参数和文件描述符限制
# 编辑 /etc/sysctl.conf 添加: fs.file-max = 6815744 kernel.sem = 250 32000 1000 128 # 重启生效: sudo sysctl -p # 设置 ulimit 为 unlimited: echo "* soft nofile unlimited" | sudo tee -a /etc/security/limits.conf echo "* hard nofile unlimited" | sudo tee -a /etc/security/limits.conf # 对 oracle 使用者单独设置: echo "oracle soft nproc unlimited" | sudo tee -a /etc/security/limits.conf echo "oracle hard nproc unlimited" | sudo tee -a /etc/security/limits.conf痛点的观点是。若未设置上述参数,安装过程中可能出现 “cannot open shared object file” 或 “ORA‑00054” 等错误。
三、运行安装程序并创建数据库实例
- 痛点:`runInstaller` 在交互式模式下需要图形界面服务器无 GUI 时会报 “No X server available”。方法这方面,使用 `runInstaller &` 并配合 `nohup` 或改为命令行安装脚本。
至于步骤。
cd /u01/app/oracle/product/11.2.0/dbhome_1 sudo ./runInstaller & # 按提示完成 GUI 步骤,确认所有依赖已满足后执行脚本生成器所需命令。后期脚本执行示例:
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export PATH=$ORACLE_HOME/bin:$PATH sqlplus sys as sysdba痛点:`lsnrctl start` 报错 “Listener was not started” 时检查 $ORACLE_HOME/network/admin/listener.ora 是否正确配置。 - 完成后检查状态:
ps aux | grep ora_ lsof -i :1521 # 查看监听端口是否占用正常 sqlplus system/password @?话说回来,/rdbms/admin/utlrpen.sql # 编译自动生成包,以防止未来错误四、开机自启动配置
创建 systemd 单元文件 `/etc/systemd/system/oracle.service`:
Description=Oracle Database Service After=network.target User=oracle Group=oinstall Environment=ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 Environment=ORACLE_SID=orcl ExecStart=/bin/sh -c 'source ~/.bash_profile && sqlplus / as sysdba至于**痛点**。若 `~/.bash_profile` 未加载 ORACLE 环境变量,服务启动后会报 “ORA-03115” 或 “ORA-03114”。请在 `.profile` 中添加相应 export 命令,并重新登录或 `source ~/.profile`。 按理说,
启用并开启服务:
sudo systemctl daemon-reload sudo systemctl enable oracle.service # 开机自启 sudo systemctl start oracle.service # 当前手动启动 systemctl status oracle.service # 检查状态五、常见问题排查与调整建议
- PATTERN ①:YUM 源未正确配置 → 安装依赖包报错“Package not found”。解决办法这方面,检查 `/etc/yum.repos.d/*` 是否包含 CentOS 官方 repo;若为云镜像,请自行添加官方 repo。
- PATTERN ②:缺失共享库 → ORA‑00054 或 ORA‑01045。说到解决办法,查看 `/var/log/messages` 或 `dmesg` 中的缺失库信息。并手动 `yum install`.
- PATTERN ③:监听器未开启 → SQL*Plus 连不上。从解决办法来看,先执行 `lsnrctl status`;若显示 *not running*,执行 `lsnrctl start`;同时确认防火墙允许 TCP1521。
- PATTERN ④:程序日志显示“Cannot allocate memory”,往往是文件描述符或进程数限制不够。说到解决办法,按上面 **内核参数** 和 **ulimit** 步骤调整;重启后 检查,
- PATTERN ⑤:开机自启失败,即使 service enable 后仍不运行。原因常是 PATH 未包含 `$ORACLE_HOME/bin`;在 unit 文件中显式设置 PATH 并 reload。
六、与常用方法速查表
# 步骤 关键命令/配置项 常见问题 & 痛点说明 准备工作 & 环境校验 ) Oracle 安装流程 ) 开机自启动及维护 ) 最终测试成功示例 无异常即可进入 SQL*Plus 并执行简单查询。 © 本教程主要是帮助运维工程师快速部署并排查常见故障,请根据实际环境进行细节调整。按理说,
快速配置与启动 CentOS 上的 Oracle 数据库
一、准备与环境检查
在开始之前请先确认服务器满足以下硬件与程序要求:
- 内存 ≥ 2 GB
- 磁盘可用空间 ≥ 10 GB
- Swap ≥ 2 GB
-
已更新至最新补丁:
sudo yum update -y - 痛点:如果程序版本不在 Oracle 支持列表中,安装会报 “must be redhat‑…” 错误,需要先修改 /etc/redhat-release 或使用兼容脚本。
1.1 切换到 oracle 使用者并验证环境变量
su - oracle echo $ORACLE_HOME echo $ORACLE_SID which sqlplus
二、下载并解压 Oracle 安装包
Oracle 官网或可信镜像下载:
将压缩文件放到 /u01/app/oracle 并解压:
mkdir -p /u01/app/oracle cd /u01/app/oracle unzip linux.x64_11gR2_database_1of2.zip unzip linux.x64_11gR2_database_2of2.zip chown -R oracle:oinstall /u01/app/oracle chmod -R +x /u01/app/oracle/*
二、1 安装必要的依赖包
sudo yum install -y binutils gcc glibc glibc-common libaio libaio-devel \ libgcc libgcc_s.x86_64 libstdc++ libstdc++-devel make \ sysstat unzip # 对于 CentOS 6,请确保安装对应版本的 gcc 和 glibc 等。
二、2 配置内核参数和文件描述符限制
# 编辑 /etc/sysctl.conf 添加: fs.file-max = 6815744 kernel.sem = 250 32000 1000 128 # 重启生效: sudo sysctl -p # 设置 ulimit 为 unlimited: echo "* soft nofile unlimited" | sudo tee -a /etc/security/limits.conf echo "* hard nofile unlimited" | sudo tee -a /etc/security/limits.conf # 对 oracle 使用者单独设置: echo "oracle soft nproc unlimited" | sudo tee -a /etc/security/limits.conf echo "oracle hard nproc unlimited" | sudo tee -a /etc/security/limits.conf痛点的观点是。若未设置上述参数,安装过程中可能出现 “cannot open shared object file” 或 “ORA‑00054” 等错误。
三、运行安装程序并创建数据库实例
- 痛点:`runInstaller` 在交互式模式下需要图形界面服务器无 GUI 时会报 “No X server available”。方法这方面,使用 `runInstaller &` 并配合 `nohup` 或改为命令行安装脚本。
至于步骤。
cd /u01/app/oracle/product/11.2.0/dbhome_1 sudo ./runInstaller & # 按提示完成 GUI 步骤,确认所有依赖已满足后执行脚本生成器所需命令。后期脚本执行示例:
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export PATH=$ORACLE_HOME/bin:$PATH sqlplus sys as sysdba痛点:`lsnrctl start` 报错 “Listener was not started” 时检查 $ORACLE_HOME/network/admin/listener.ora 是否正确配置。 - 完成后检查状态:
ps aux | grep ora_ lsof -i :1521 # 查看监听端口是否占用正常 sqlplus system/password @?话说回来,/rdbms/admin/utlrpen.sql # 编译自动生成包,以防止未来错误四、开机自启动配置
创建 systemd 单元文件 `/etc/systemd/system/oracle.service`:
Description=Oracle Database Service After=network.target User=oracle Group=oinstall Environment=ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 Environment=ORACLE_SID=orcl ExecStart=/bin/sh -c 'source ~/.bash_profile && sqlplus / as sysdba至于**痛点**。若 `~/.bash_profile` 未加载 ORACLE 环境变量,服务启动后会报 “ORA-03115” 或 “ORA-03114”。请在 `.profile` 中添加相应 export 命令,并重新登录或 `source ~/.profile`。 按理说,
启用并开启服务:
sudo systemctl daemon-reload sudo systemctl enable oracle.service # 开机自启 sudo systemctl start oracle.service # 当前手动启动 systemctl status oracle.service # 检查状态五、常见问题排查与调整建议
- PATTERN ①:YUM 源未正确配置 → 安装依赖包报错“Package not found”。解决办法这方面,检查 `/etc/yum.repos.d/*` 是否包含 CentOS 官方 repo;若为云镜像,请自行添加官方 repo。
- PATTERN ②:缺失共享库 → ORA‑00054 或 ORA‑01045。说到解决办法,查看 `/var/log/messages` 或 `dmesg` 中的缺失库信息。并手动 `yum install`.
- PATTERN ③:监听器未开启 → SQL*Plus 连不上。从解决办法来看,先执行 `lsnrctl status`;若显示 *not running*,执行 `lsnrctl start`;同时确认防火墙允许 TCP1521。
- PATTERN ④:程序日志显示“Cannot allocate memory”,往往是文件描述符或进程数限制不够。说到解决办法,按上面 **内核参数** 和 **ulimit** 步骤调整;重启后 检查,
- PATTERN ⑤:开机自启失败,即使 service enable 后仍不运行。原因常是 PATH 未包含 `$ORACLE_HOME/bin`;在 unit 文件中显式设置 PATH 并 reload。
六、与常用方法速查表
# 步骤 关键命令/配置项 常见问题 & 痛点说明 准备工作 & 环境校验 ) Oracle 安装流程 ) 开机自启动及维护 ) 最终测试成功示例 无异常即可进入 SQL*Plus 并执行简单查询。 © 本教程主要是帮助运维工程师快速部署并排查常见故障,请根据实际环境进行细节调整。按理说,

