欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > Oracle-重启数据库及可能遇到的问题

Oracle-重启数据库及可能遇到的问题

2024/10/24 14:16:11 来源:https://blog.csdn.net/FuTian0715/article/details/139913636  浏览:    关键词:Oracle-重启数据库及可能遇到的问题

1、登录到oracle用户

su - oracle

2、关闭监听

lsnrctl stop

3、杀掉oracle有关进程

#下面两条命令结合成一条
ps -ef|grep $ORACLE_SID|grep -v ora_|grep LOCAL=NO|awk '{print $2}'|xargs  kill -9#查询pid
ps -ef|grep $ORACLE_SID|grep -v ora_|grep LOCAL=NO|awk '{print $2}'
#杀掉进程
kill -9  

4、关闭数据库

sqlplus / as sysdba
#关闭数据库
shutdown immediate
#退出sqlplus
exit

5、重启监听

lsnrctl start

6、启动数据库

sqlplus / as sysdba
#启动数据库
startup

7、查看监听状态

#退出sqlplus
exit#查看监听状态
lsnrctl status

8、可能遇到的问题和解决方法

方案1:

shutdown immediate 时可能比较久,此时不要着急退出,等待一会等他报错
重启oracle startup时一直卡在Database mounted
可以等一会,如果等了很久没报错就退出然后重新来一遍重启流程
报错ORA-01012: not logged on
kill oracle 进程 或者关掉oracle

ps -ef|grep ora_dbw0_$ORACLE_SID
kill -9 pid

在UAT环境进行数据库重启时,确实遇到了ORA-01012报错和一直卡在Database mounted的情况,按照如上操作步骤,数据库重启成功。

方案2:

shutdown immediate卡住了,可能是因为有一些会话或者进程正在运行并阻止数据库关闭,可以尝试一下步骤来解决问题:

  1. 使用SQL*Plus或其他工具连接到数据库
  2. 使用如下语句查询当前会话和进程
SELECT t.MACHINE, t.SID, t.SERIAL#, t.STATUS, t.USERNAME FROM v$session t;
SELECT t.PID, t.SPID, t.USERNAME, t.PROGRAM FROM v$process t;
  1. 找到正在运行的会话或者进程,并尝试终止他们
alter system kill session 'SID,SERIAL#';
kill -9 PID
  1. 重复“步骤2和步骤3”,直到所有会话与进程都被终止
  2. 再次尝试执行shutdown immediate命令

阻止数据库关闭可能是因为有未完成的事务,长时间运行的查询,锁表、后台进程未完成等情况,这些问题通常会导致数据库重启卡主,可以尝试先解决这些问题后再进行数据库重启操作(v$transaction、v$session、v$process、v$locked_object、dba_objects相关视图或表进行查询)

!!!如果仍然无法关闭数据库,请考虑使用shutdown abort命令强制关闭数据库,但是请注意,这可能会导致数据库损坏和其他问题,因此在执行前请备份数据库。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com