ORACLE 数据库重启注意事项

前言

曾经接到开发人员求救,由于测试环境速度太慢,尝试通过重启数据库的方式来解决,但是由于当时数据库有很多任务在执行,数据库很久都没有办法停止,之后就经历了多次强制关数据库,重启服务器的操作,最后数据库出现坏块无法启动,由于是测试环境,数据库没有备份,最后只能重建数据库,重新从其它环境获得测试数据,折腾了好几天。

本文主要列出重启数据库的注意事项,尽量避免由于重启数据库引起数据库无法启动的情况

重启注意事项

如果关闭数据库较慢,建议耐心等待,不要频繁对数据库强制关闭,重启服务器的操作,有可能会引起数据库启动时出现坏块,无法启动的情况

如果该数据库是生产系统
1)与业务沟通后,需要在可变更时间,进行数据库重启
2)在变更时间,业务人员停止所有的应用
3)停止数据库监听
4)重启数据库

如果是数据库是测试环境

1)建议在相对比较空闲的时间重启数据库
2)如果可能,建议停止所有测试连接后再进行数据库重启

数据库重启步骤

1. 在可变更时间,停止应用连接
2. 关闭监听,防止有新的连接
$ lsnrctl stop
3. 执行日志切换
SQL>select count(distinct group#) from v$log;  -- 查询日志组的数量
SQL> alter system switch logfile;   -- 执行次数为:日志组数据量+1 次
4. 查看当前是否还有active的连接
select sid, serial#,username, machine, program from v$session where username is not null and status='ACTIVE';
5. 关闭数据库
SQL>shutdown immediate
如果数据库启动较慢,可以查看数据库alert日志,Oracle 11g及以上默认路径为$ORACLE_BASE/diag/rdbms/<sid>/<sid>/alert_<sid>.log
在ORACLE10G及以上版本,可能会有如下提示:
Active call for process 12345 user 'oracle' program 'oracle@abcd'
SHUTDOWN: waiting for active calls to complete.
也就是指出哪个进程引起的等待,有时候会自动释放,建议等待30分钟以上,如果还是没有办法释放,可使用此时kill -9 <ospid> 进程即可,在本例中process 12345为ospid, 即:kill -9 12345

6. 重新启动数据库
SQL> startup
7. 启动监听
$ lsnrctl start
8. 连接测试
9. 启动应用

 

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值