首页主机资讯centos上oracle数据库如何启动配置

centos上oracle数据库如何启动配置

时间2025-12-02 02:07:03发布访客分类主机资讯浏览1005
导读:CentOS 上 Oracle 数据库的启动与开机自启配置 一、准备与环境检查 切换到 Oracle 用户并检查环境: 命令:su - oracle 检查:echo $ORACLE_HOME、echo $ORACLE_SID、which...

CentOS 上 Oracle 数据库的启动与开机自启配置

一、准备与环境检查

  • 切换到 Oracle 用户并检查环境:
    • 命令:su - oracle
    • 检查:echo $ORACLE_HOMEecho $ORACLE_SIDwhich sqlplus
  • 确认监听与实例状态:
    • 监听:lsnrctl status(未运行则 lsnrctl start
    • 实例:sqlplus / as sysdba 后执行 startup(如需关闭用 shutdown immediate
  • 注意:
    • 监听默认端口为 1521;远程访问需确保该端口对客户端开放(云服务器需配置安全组/防火墙放行)。

二、手动启动与停止步骤

  • 启动顺序建议:先监听器,后数据库实例
    1. 启动监听:lsnrctl start
    2. 登录实例:sqlplus / as sysdba
    3. 启动数据库:startup(关闭用 shutdown immediate
  • 可选:启动 OEM 控制台(如使用)
    • 启动:emctl start dbconsole
    • 停止:emctl stop dbconsole
  • 验证:
    • 监听:lsnrctl status 应看到监听地址与端口(如 TCP:1521
    • 实例:select status from v$instance; 应返回 OPEN

三、配置开机自启动(推荐 systemd 方式)

  • 步骤
    1. 允许实例随系统启动
      • 编辑:sudo vi /etc/oratab
      • 将目标实例行末尾的 N 改为 Y,例如:orcl:/u01/app/oracle/product/19.0.0/dbhome_1:Y
    2. 创建 systemd 服务单元
      • 新建:sudo vi /usr/lib/systemd/system/oracle.service
      • 内容(按需替换路径与实例):
        [Unit]
        Description=Oracle Database Service
        After=network.target
        
        [Service]
        Type=forking
        User=oracle
        Group=oinstall
        Environment="ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1"
        Environment="ORACLE_SID=orcl"
        ExecStart=/u01/app/oracle/product/19.0.0/dbhome_1/bin/dbstart $ORACLE_HOME
        ExecStop=/u01/app/oracle/product/19.0.0/dbhome_1/bin/dbshut $ORACLE_HOME
        TimeoutSec=300
        
        [Install]
        WantedBy=multi-user.target
        
    3. 使配置生效并启用
      • 重载:sudo systemctl daemon-reload
      • 开机自启:sudo systemctl enable oracle.service
      • 手动测试:sudo systemctl start oracle.servicesudo systemctl status oracle.service
  • 说明
    • 使用 dbstart/dbshut 时,需确保 /etc/oratab 中对应实例第三字段为 Y,否则不会随服务启动。
    • 若需同时自动启动监听,可保持 dbstart 默认行为或按下一节修改脚本使其一并启动监听。

四、可选优化与常见问题

  • 让 dbstart/dbshut 同时启停监听(适用于 11g/12c 等)
    • 编辑:$ORACLE_HOME/bin/dbstart$ORACLE_HOME/bin/dbshut
    • ORACLE_HOME_LISTNER=$1 修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME
    • 保存后重启服务或系统测试自启效果。
  • 使用传统 SysV 脚本方式(兼容 CentOS 6/7
    • /etc/init.d/oracle 中封装 dbstart/dbshutlsnrctl 调用,设置可执行:chmod +x /etc/init.d/oracle
    • 加入 chkconfig:chkconfig --add oraclechkconfig oracle on
    • 如需在关机/重启前停止数据库,可建立链接:ln -s /etc/init.d/oracle /etc/rc0.d/K01oracleln -s /etc/init.d/oracle /etc/rc6.d/K01oracle
  • 监听配置与网络连通
    • 配置文件路径:$ORACLE_HOME/network/admin/listener.oratnsnames.ora
    • 基本示例(listener.ora):
      LISTENER =
        (DESCRIPTION_LIST =
          (DESCRIPTION =
            (ADDRESS = (PROTOCOL = TCP)(HOST = your_host)(PORT = 1521))
          )
        )
      
    • 修改后执行:lsnrctl stoplsnrctl start(或 lsnrctl reload)并 lsnrctl status 验证。
  • 防火墙与云安全组
    • 放行 1521/TCP(以及 OEM 的 1158/TCP 如使用):firewall-cmd --add-port=1521/tcp --permanent & & firewall-cmd --reload
    • 云上需在安全组规则中放行对应端口。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos上oracle数据库如何启动配置
本文地址: https://pptw.com/jishu/760799.html
centos gitlab集群搭建 oracle配置文件在centos上怎么设置

游客 回复需填写必要信息