如何快速配置启动CentOS上Oracle数据库,实现高效运维?

更新于
2026-08-21 09:44:49
2阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

快速配置与启动 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 官网或可信镜像下载:

如何快速配置启动CentOS上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” 等错误。

三、运行安装程序并创建数据库实例

  1. 痛点:`runInstaller` 在交互式模式下需要图形界面服务器无 GUI 时会报 “No X server available”。方法这方面,使用 `runInstaller &` 并配合 `nohup` 或改为命令行安装脚本。
  2. 至于步骤。

  3. cd /u01/app/oracle/product/11.2.0/dbhome_1
    sudo ./runInstaller &
    # 按提示完成 GUI 步骤,确认所有依赖已满足后执行脚本生成器所需命令。
  4. 后期脚本执行示例:

  5. 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 是否正确配置。
  6. 完成后检查状态:
  7. 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

快速配置与启动 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 官网或可信镜像下载:

如何快速配置启动CentOS上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” 等错误。

三、运行安装程序并创建数据库实例

  1. 痛点:`runInstaller` 在交互式模式下需要图形界面服务器无 GUI 时会报 “No X server available”。方法这方面,使用 `runInstaller &` 并配合 `nohup` 或改为命令行安装脚本。
  2. 至于步骤。

  3. cd /u01/app/oracle/product/11.2.0/dbhome_1
    sudo ./runInstaller &
    # 按提示完成 GUI 步骤,确认所有依赖已满足后执行脚本生成器所需命令。
  4. 后期脚本执行示例:

  5. 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 是否正确配置。
  6. 完成后检查状态:
  7. 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