CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Oracle >  基础和管理

WinNT下的Oracle数据库服务器,使用关闭Windows服务的方式关闭,在工业生产下是否安全。

楼主hongchenzpm111(红尘)2006-06-02 08:47:15 在 Oracle / 基础和管理 提问

近日了解到一种关闭WinNT下的Oracle数据库服务器的方法,就是使用Windows的Net   start命令或者net   stop命令。用这种方式,写个批处理的脚本,就可以很容易的快速关闭Oracle的后台服务,迅速的释放资源。  
  但是我觉着这种方法对于测试或者开发可能是可以适用的。对于正在工业使用的数据库,这样的方式是不是安全呢?用Net   Stop命令能不能和Oracle的Shutdown一样安全的停止数据库呢?毕竟数据库的Shutdown过程是一个很复杂的过程。用Net   Stop   能够保证数据库的一致性和数据安全吗?  
  请权威解答。请给出详细的说明。多谢。 问题点数:80、回复次数:2Top

1 楼kingofworl(良辰美景虚度)回复于 2006-06-02 09:47:33 得分 0

当然不能了   Shutdown   -还需要参数控制呢     ,你自己不也是这么认为的吗Top

2 楼zakat(听者如歌)回复于 2006-06-02 11:09:06 得分 0

答案是肯定的:不能。  
  首先我们来了解一下数据库关闭的原理:  
  数据库的关闭(SHUTDOWN)  
   
  对于数据库的关闭,有四种不同的关闭选项,下面对其进行一一介绍。  
   
  1、SHUTDOWN   NORMAL  
   
    这是数据库关闭SHUTDOWN命令的确省选项。也就是说如果你发出SHUTDOWN这样的命令,也即是SHUTDOWN   NORNAL的意思。  
   
    发出该命令后,任何新的连接都将再不允许连接到数据库。在数据库关闭之前,Oracle将等待目前连接的所有用户都从数据库中退出后才开始关闭数据库。采用这种方式关闭数据库,在下一次启动时不需要进行任何的实例恢复。但需要注意一点的是,采用这种方式,也许关闭一个数据库需要几天时间,也许更长。  
   
  2、SHUTDOWN   IMMEDIATE  
   
    这是我们常用的一种关闭数据库的方式,想很快地关闭数据库,但又想让数据库干净的关闭,常采用这种方式。  
   
    当前正在被Oracle处理的SQL语句立即中断,系统中任何没有提交的事务全部回滚。如果系统中存在一个很长的未提交的事务,采用这种方式关闭数据库也需要一段时间(该事务回滚时间)。系统不等待连接到数据库的所有用户退出系统,强行回滚当前所有的活动事务,然后断开所有的连接用户。  
   
  3、SHUTDOWN   TRANSACTIONAL  
   
    该选项仅在Oracle   8i后才可以使用。该命令常用来计划关闭数据库,它使当前连接到系统且正在活动的事务执行完毕,运行该命令后,任何新的连接和事务都是不允许的。在所有活动的事务完成后,数据库将和SHUTDOWN   IMMEDIATE同样的方式关闭数据库。  
   
  4、SHUTDOWN   ABORT  
   
    这是关闭数据库的最后一招,也是在没有任何办法关闭数据库的情况下才不得不采用的方式,一般不要采用。如果下列情况出现时可以考虑采用这种方式关闭数据库。  
   
  1、   数据库处于一种非正常工作状态,不能用shutdown   normal或者shutdown   immediate这样的命令关闭数据库;  
   
  2、   需要立即关闭数据库;  
   
  3、   在启动数据库实例时遇到问题;  
   
    所有正在运行的SQL语句都将立即中止。所有未提交的事务将不回滚。Oracle也不等待目前连接到数据库的用户退出系统。下一次启动数据库时需要实例恢复,因此,下一次启动可能比平时需要更多的时间。  
   
    表1可以清楚地看到上述四种不同关闭数据库的区别和联系。  
   
          表1   Shutdown数据库不同方式对比表  
   
        关闭方式   A   I   T   N    
        允许新的连接   ×   ×   ×   ×    
        等待直到当前会话中止   ×   ×   ×   √    
        等待直到当前事务中止   ×   ×   √   √    
        强制CheckPoint,关闭所有文件   ×   √   √   √  
   
  其中:A-Abort   I-Immediate   T-Transaction   N-Nornal  
   
  而net   stop关闭数据库的方式和你通过“服务”去手工关闭数据库的方式是相同的,而这种方式也就相当于在数据库中执行“SHUTDOWN   ABORT”是一样的。  
  作为生产环境,出现shutdown   abort这种方式关闭数据库,势必有可能出现事务未处理完而出现数据不一致的现象,所以,在生产环境中,除非你确认没有任何应用连接且数据库事务处理完毕才能使用,否则,千万不要使用。Top

相关问题

关键词

得分解答快速导航

  • 帖主:hongchenzpm111

相关链接

  • Oracle类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo