十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1、shutdown normal
成都创新互联服务项目包括曹妃甸网站建设、曹妃甸网站制作、曹妃甸网页制作以及曹妃甸网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,曹妃甸网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到曹妃甸省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
正常方式关闭数据库。
2、shutdown immediate
立即方式关闭数据库。
在SVRMGRL中执行shutdown immediate,数据库并不立即关闭,
而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),
当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。
3、shutdown abort
直接关闭数据库,正在访问数据库的会话会被突然终止,
你可以考虑使用在操作系统层面来杀掉客户端会话的连接进程,这样资源马上就可以释放掉,如果只是在数据库级别的话,即便是管理员杀掉会话,那么v$session里面也不过是显示killed状态,而不是真正的释放掉,同时如果此时实际的连接数量达到参数session设定数量上线的话,新的连接将会报错无法连接,直到资源释放才可以。
在Oracle中,可以用kill session来终止一个会话进程,其基本语法结构为:
alter system kill session 'sid,serial' ;
用 shutdown immdiate;
SHUTDOWN NORMAL:不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。
SHUTDOWN TRANSACTIONAL:不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。
SHUTDOWN IMMEDIATE:不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。没有结束的事务是自动rollback的。启动时不需要实例恢复。
SHUTDOWN ABORT:不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件。启动时自动进行实例恢复。
执行下面的语句获得进程(线程)号:
select spid, osuser, s.program from v$session s, v$process p
where s.paddr = p.addr and s.sid = sid;
在操作系统级别kill:Windows orakill sid spid
Linux # kill -9 spid
杀掉所有的Oracle用户进程
a、windows的环境,执行如下SQL,并把结果存成.bat的文件,比如kill.bat, 执行一下kill.bat就可以了。
select 'orakill '||sid||' '||spid as thread from sys.v_$process p, sys.v_$session s
where sid 10 and p.addr = s.paddr ;
b、 Unix的环境相对来说就简单多了,执行如下的命令就可以了
$ ps -ef|grep $ORACLE_SID|grep -v ora_|grep LOCAL=NO|awk '{print $2}'|xargs kill
或者:#kill -9 'ps -ef|grep oracle |grep -v grep |awk '{print $2}''
#ps -ef|grep oracle |grep -v grep |cut -c 9-15|xargs kill -9