oracleshutdownimmediate⼀直没反应解决⽅案
数据库监听突然出现了问题,重新配置之后,重启数据库。发现不管是⽤shutdown 还是跟上参数 immediate都是同样效果,等了10多分钟⼀点反应都没有。
查了查资料,看了下每个参数的⽤法,发现可能是连接请求还在连接数据库,没有关闭所以只能等着。⼀狠⼼强⾏关掉了SSH,结果杯具了。
启动的时候就说:量纲分析法
详细的shutdown和startup参数解释如下:
shutdown有四个参数:normal、transactional、immediate、abort。缺省不带任何参数时表⽰是normal。
shutdown normal:不允许新的连接、等待会话结束、等待事务结束、做⼀个检查点并关闭数据⽂件。启动时不需要实例恢复。
shutdown transactional:不允许新的连接、不等待会话结束、等待事务结束、做⼀个检查点并关闭数据⽂件。启动时不需要实例恢复。经济可行性>环卫工
shutdown immediate:不允许新的连接、不等待会话结束、不等待事务结束、做⼀个检查点并关闭数据⽂件。没有结束的事务是⾃动ROLLBACK的。启动时不需要实例恢复。
shutdown abort:不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据⽂件。启动时⾃动进⾏实例恢复。唇外翻
采购项目另外,对于normal、transactional、immediate,db bUFFER cACHE的内容写⼊了数据⽂件,没有提交的事务被回滚,所有的资源被释放,数据库被“⼲净”的关闭。
对于abort,db bUFFER cACHE的内容没有写⼊数据⽂件,没有提交的事务也没有回滚。数据库没有DISMOUNT和关闭,数据⽂件也没有关闭。当数据库启动时,需要通过REDO LOG恢复数据,通过回滚段对事务回滚,对资源进⾏释放。
startup [force] [restrict] [pfile= FILENAME] [open [recover][ DATABASE] | mount | nomount]
举手的英文startup open:startup缺省的参数就是open,打开数据库,允许数据库的访问。当前实例的控制⽂件中所描述的所有⽂件都已经打开。
startup mount:mount数据库,仅仅给dba进⾏管理操作,不允许数据库的⽤户访问。仅仅只是当前实例的控制⽂件被打开,数据⽂件未打开。
startup nomount:仅仅通过初始化⽂件,分配出sga区,启动数据库后台进程,没有打开控制⽂件和数据⽂件。不能任何访问数据库。
startup pfile= FILENAME:以FILENAME为初始化⽂件启动数据库,不是采⽤缺省初始化⽂件。
带梦字的成语startup force:中⽌当前数据库的运⾏,并开始重新正常的启动数据库。
startup restrict:只允许具有restricted ssion权限的⽤户访问数据库。
startup recover:数据库启动,并开始介质恢复。
使⽤shutdown的时候 normal和immediate可能都因为连接没有释放⽽造成数据库⽆法重启的现象。
可以采⽤以下两个⽅案:
代码
三年级数学口算题上册
SQL>shutdown abort; --这个⽅法是不等待会话结束就直接关闭掉数据库,⼀般情况下事不推荐使⽤的。实在关不掉的话,⼀般也没有什么问题。跟直接KILL进程差不多。
SQL>startup --shutdown abort以后在启动数据库。
SQL>startup force; --这个⽅法是直接关闭掉数据库然后再重启数据库,这个⽅式也可以达到关闭的⽬的,我个⼈使⽤的时候两个⽅法都⾏。