centos上oracle数据库如何启动配置
导读:CentOS 上 Oracle 数据库的启动与开机自启配置 一、准备与环境检查 切换到 Oracle 用户并检查环境: 命令:su - oracle 检查:echo $ORACLE_HOME、echo $ORACLE_SID、which...
CentOS 上 Oracle 数据库的启动与开机自启配置
一、准备与环境检查
- 切换到 Oracle 用户并检查环境:
- 命令:
su - oracle - 检查:
echo $ORACLE_HOME、echo $ORACLE_SID、which sqlplus
- 命令:
- 确认监听与实例状态:
- 监听:
lsnrctl status(未运行则lsnrctl start) - 实例:
sqlplus / as sysdba后执行startup(如需关闭用shutdown immediate)
- 监听:
- 注意:
- 监听默认端口为 1521;远程访问需确保该端口对客户端开放(云服务器需配置安全组/防火墙放行)。
二、手动启动与停止步骤
- 启动顺序建议:先监听器,后数据库实例
- 启动监听:
lsnrctl start - 登录实例:
sqlplus / as sysdba - 启动数据库:
startup(关闭用shutdown immediate)
- 启动监听:
- 可选:启动 OEM 控制台(如使用)
- 启动:
emctl start dbconsole - 停止:
emctl stop dbconsole
- 启动:
- 验证:
- 监听:
lsnrctl status应看到监听地址与端口(如 TCP:1521) - 实例:
select status from v$instance;应返回 OPEN。
- 监听:
三、配置开机自启动(推荐 systemd 方式)
- 步骤
- 允许实例随系统启动
- 编辑:
sudo vi /etc/oratab - 将目标实例行末尾的 N 改为 Y,例如:
orcl:/u01/app/oracle/product/19.0.0/dbhome_1:Y
- 编辑:
- 创建 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
- 新建:
- 使配置生效并启用
- 重载:
sudo systemctl daemon-reload - 开机自启:
sudo systemctl enable oracle.service - 手动测试:
sudo systemctl start oracle.service、sudo 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/dbshut与lsnrctl调用,设置可执行:chmod +x /etc/init.d/oracle - 加入 chkconfig:
chkconfig --add oracle、chkconfig oracle on - 如需在关机/重启前停止数据库,可建立链接:
ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle、ln -s /etc/init.d/oracle /etc/rc6.d/K01oracle
- 在
- 监听配置与网络连通
- 配置文件路径:
$ORACLE_HOME/network/admin/listener.ora、tnsnames.ora - 基本示例(listener.ora):
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_host)(PORT = 1521)) ) ) - 修改后执行:
lsnrctl stop→lsnrctl start(或lsnrctl reload)并lsnrctl status验证。
- 配置文件路径:
- 防火墙与云安全组
- 放行 1521/TCP(以及 OEM 的 1158/TCP 如使用):
firewall-cmd --add-port=1521/tcp --permanent & & firewall-cmd --reload - 云上需在安全组规则中放行对应端口。
- 放行 1521/TCP(以及 OEM 的 1158/TCP 如使用):
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos上oracle数据库如何启动配置
本文地址: https://pptw.com/jishu/760799.html
