我用过很多数据库,如access,fb,ib,sqlite3,mysql,在突然停电的情况下,都有不同几率引起数据库损坏,且是致命的,无法修复。如何最大限度防止突然停电引起数据库损坏?希望数据库高手把经验介绍一下,谢谢了。

解决方案 »

  1.   

    别说数据库了,硬盘都会坏的
    解决办法当然就是UPS了
      

  2.   

    保证系统没在用数据库时断开数据库.
    如果正在用数据库,突然断电,那没办法了;
    只好用UPS了
      

  3.   

    物理解决方法,用智能UPS,带串口/LAN管理的
      

  4.   

    UPS。。
    不过想问问:UPS电也用完怎么办?不也等于停电?
      

  5.   

    被楼上小BS了把,其实我不是想追根刨底问,我其实是想说:是不是在停电以后,UPS运行时就着手准备断开服务器,关闭主机?我不大清楚大家的做法,反正我这是不管它,一直用,用到来电为止这样好不好?
      

  6.   

    没有BS你,不要自作多情。由此向上五层,“物理解决方法,用智能UPS,带串口/LAN管理的”
      

  7.   

    “物理解决方法,用智能UPS,带串口/LAN管理的”是不是可以解决你的疑问。
      

  8.   

    可以用程序监控到UPS电量,到电快用完时关闭主机还不是小CASE
      

  9.   

    说来说去都是UPS,我想讨论编程注意的问题,从程序上以最大限度防止突然停电引起数据库损坏。UPS不是个好办法。请大家从编程角度讨论这个问题。谈谈大家的经验。一年停电10多次很正常,如果你有100个用户,一年就是1000次停电。按10%损坏就有100个数据库损坏。如何从编程角度上来以最大限度防止突然停电引起数据库损。
      

  10.   

    ===================================================================================
    说来说去都是UPS,我想讨论编程注意的问题,从程序上以最大限度防止突然停电引起数据库损坏。UPS不是个好办法。请大家从编程角度讨论这个问题。谈谈大家的经验。一年停电10多次很正常,如果你有100个用户,一年就是1000次停电。按10%损坏就有100个数据库损坏。如何从编程角度上来以最大限度防止突然停电引起数据库损。
    ===================================================================================LZ思路有问题,UPS是个最简单有效的好办法,用的人都说好!
    除此之外,那就得用异地实时备份这样的复杂方案了。
      

  11.   

    网通的机房也是常停电,只能用ups
      

  12.   

    ups + 发电机~~~ 多备些油 保你不会出现没电~~~
      

  13.   

    ===================================================================================
    说来说去都是UPS,我想讨论编程注意的问题,从程序上以最大限度防止突然停电引起数据库损坏。UPS不是个好办法。请大家从编程角度讨论这个问题。谈谈大家的经验。一年停电10多次很正常,如果你有100个用户,一年就是1000次停电。按10%损坏就有100个数据库损坏。如何从编程角度上来以最大限度防止突然停电引起数据库损。
    ===================================================================================电都没有了,还有什么样的编程是能跑起来的?
    如果是无视硬件问题单从数据保护上来说,也就是注意实时备份吧
      

  14.   

    一般情况下ups可以提供足够安全的时间退出设备了
    -------------
    电都没有了,还有什么样的编程是能跑起来的?
    如果是无视硬件问题单从数据保护上来说,也就是注意实时备份吧
    and so on
      

  15.   

    用智能UPS,带串口/LAN管理的,可实现UPS快没电的时候,计算机自动安全关闭
      

  16.   

    建议改用Sql server
    我一般都不会用access,fb,ib,sqlite3,mysql作为数据库,主要原因就是他们停电很容易引起数据库的损坏,而且功能不够强大,Sql server用了好几年了,到目前为止还没有发现过停电数据库损坏的情况,比较稳定.
    如果非要用access,fb,ib,sqlite3,mysql作为数据库,那么建议使用短连接,即用完马上要断开
      

  17.   

    UPS确实是最好的方案,但是还是要考虑应用环境,如果是做产品,不可能要求客户都去配备UPS,还是要尽可能的用软件方式去解决问题。
    程序解决可以考虑以下思路,首先是数据备份,增加备份频率,比如每小时或两小时,视数据库大小而定。
    其次是注意及时关闭数据连结,突然断电造成的文件损坏90%是由于文件处于写入状态,所以对于数据连结一定要做好控制,第一,使用最新的数据驱动程序,目前应当是Jet4,连接数据库时指名使用jet作为引擎;第二,在不需要更新数据的时候一律使用只读锁,以减少文件写入的频率;第三,及时关闭数据连结,尽可能的降低打开文件的频率。
      

  18.   

    1、先写几个asp网页
    2、和电网公司的人拉好关系,要他们准备停电时就点一下你网页上的按钮,更新某个字段值;
    3、在你的服务器上用一个程序即时监视网页所访问的值,并判断否自动关机。
      

  19.   

    UPS是最经济又省事的选择~~
    个人感觉UPS + RAID就足够了,有条件的话再上个双机热备...
      

  20.   

    程序当然不能保证数据库损坏,我是说最大限度,感谢rodgerkong(Rodger)给予指导。
    Ms SQL停电就不容易损坏吗?使用MSSQL来谈谈经验。
      

  21.   

    MSSQL, Oracal,DB2之类的DBMS从设计上就保障了突发故障时的的数据完整性,DBMS通常使用事务日志来保存每步的操作,并且使用优化设计的存储方案,使之能在突发事件之后,只要磁盘没有物理损坏,DBMS都能从事务日志中恢复以前的操作,保障数据完整。
      

  22.   

    sql server\oracle\sybase 等企业级数据库一般不会受突然停电的损坏,即使你正在进行数据库读写操作.
      

  23.   

    UPS. 从软件的角度...不要使用常连接. 
    尽量减少数据库读写的时间...以降低停电时数据库文件打开的概率.
    读数据尽可能的使用缓存数据.
      

  24.   

    UPS. 从软件的角度...不要使用常连接. 
    尽量减少数据库读写的时间...以降低停电时数据库文件打开的概率.
    读数据尽可能的使用缓存数据.
    同意
      

  25.   

    总结一下:
    1UPS
    2磁盘阵列(硬件角度)
    2实时复制(软件角度,不过多用了一台计算机)
      

  26.   

    晕,上边一堆不懂装懂的家伙在误导楼主
    无人值守系统,UPS能够起到的作用有限
    该问题的解决需要依赖于数据库底层的文件存储结构机制,也就是冗余安全机制,MSSQL,ORACLE这方面做得很好
    如果使用文件存储结构较为简单的数据库,不是采用冗余安全机制的数据库
    可以使用双数据库来实现在应用层面的冗余安全机制
    虽然在数据库级别没有提供冗余安全,但可在应用层面来自建双机冗余热备解决楼主问题的答案就是"双机热备"这个技术,去查一下相关资料和原理我们公司使用SQLite在嵌入式设备当中,需要很高的安全性
    使用双数据库冗余,理论上是安全的,并经过上万次各种异常掉电测试,数据库总是可以安全
    在实际上万个设备在各个项目中使用,均未出现冗余的两个数据库在微观上的同一时刻同时损坏的现象
      

  27.   

    看过《虎胆龙威四》没有?里面的IT高手用的也是备用电源(UPS+发电机)