V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
garth
V2EX  ›  MySQL

断电会导致 MYSQL 数据丢失,如何解决

  •  
  •   garth ·
    imgarth · Jun 28, 2015 · 9506 views
    This topic created in 3958 days ago, the information mentioned may be changed or developed.
    一个PHP+MYSQL的普通网站,CentOS系统,每次机器突然断电的话,最近几天的数据都会丢失,有解决办法吗?
    Supplement 1  ·  Jun 29, 2015
    我没有表述清楚,几天的数据,其实只有几十来条记录。
    准备上UPS了。
    25 replies    2015-06-30 12:46:16 +08:00
    Septembers
        1
    Septembers  
       Jun 28, 2015
    UPS?
    czheo
        2
    czheo  
       Jun 28, 2015
    mysqldump+crontab
    scys
        3
    scys  
       Jun 28, 2015
    UPS上,服务器千万不要断电,否则你根本不知道会发生任何你想不到的问题
    fortunezhang
        4
    fortunezhang  
       Jun 28, 2015
    这。。这必须ups啊。还有更好的办法吗?
    zado
        5
    zado  
       Jun 28, 2015
    解决的办法就是不要让他断电,否则无解。:-)
    omi4399
        6
    omi4399  
       Jun 28, 2015
    UPS + 双电源
    wy315700
        7
    wy315700  
       Jun 28, 2015
    试试看innodb
    jackysc
        8
    jackysc  
       Jun 28, 2015
    断电会造成几天的数据丢失? 。。。不应该吧。。
    xiaohanqing
        9
    xiaohanqing  
       Jun 28, 2015
    几天太多了吧,调整一下写入缓存
    xzl
        10
    xzl  
       Jun 28, 2015
    repl
    kjj98709
        11
    kjj98709  
       Jun 28, 2015
    丢好几天的数据有点不正常了呀
    realpg
        12
    realpg  
    PRO
       Jun 28, 2015
    每次断电,最近几天都会丢失,这不是服务器有没有UPS的问题,一定是设置问题。

    我以前公司内部系统,没事儿就被热心的财务大妈下班前把全公司电闸都拉了,说了几十次下班锁门不要拉总闸也不管用,也没有每次都丢几天数据,几十次也丢不了一次数据还都可以修复

    你这问题,可能的原因,MYSQL的引擎在哪里配成异步写磁盘了么,或者你服务器的存储系统比如RAID卡是无电池的但是配置了回写?每次断电都丢绝逼不正常
    caola
        13
    caola  
       Jun 29, 2015
    好几天的数据?是不是 mysql 配置的问题
    likuku
        14
    likuku  
       Jun 29, 2015
    首先服务器除了地震,火灾,战争/恐怖袭击,就不该被非人为断电。

    每日自动备份呢?自动备份到别的机器呢?自动备份到别的机房/云端呢?

    备份很可能是最后的救命稻草,这都没有的话,可以洗洗睡了。
    em70
        15
    em70  
       Jun 29, 2015
    难道用的是内存表
    garth
        16
    garth  
    OP
       Jun 29, 2015 via iPhone
    @jackysc
    @xiaohanqing
    @kjj98709
    @realpg
    @caola
    @em70

    我没有表述清楚,几天的数据,其实只有几十来条记录。
    准备上UPS了。
    realpg
        17
    realpg  
    PRO
       Jun 29, 2015
    @garth 你这跟UPS没关系了,真心的。绝对你这环境有问题。掉电就丢数据,而且你这种几天才几十条记录的,基本不会发生掉电过程中写入的情况,那得多巧,还是找出原因再说。

    我可以拿测试环境随便测,一个单硬盘无RAID的环境的ubuntu server,mysql 5.6,一个线程在不断地往里写数据,随时拔电源,基本都不会丢数据。MYISAM表可能会损坏,启动直接就自动查错然后recovery了,innodb的基本很少损。

    测试几十次都不会真丢一次数据。
    lvfujun
        18
    lvfujun  
       Jun 29, 2015
    你确定你的数据是实时写入Mysql的吗?而不是在缓冲系统放在内存中?
    jasontse
        19
    jasontse  
       Jun 29, 2015 via iPad
    你是不是把内存缓存开得很大,然后写入磁盘的间隔周期很长。
    est
        20
    est  
       Jun 29, 2015
    可以试试 oneproxy, onesql

    按理说mysql innodb 双缓存写入,断电不会造成丢数据。。。
    likuku
        21
    likuku  
       Jun 29, 2015
    磁盘是 ext3 文件系统?
    Pandora78
        22
    Pandora78  
       Jun 29, 2015
    听说oracle可以解决这个问题
    garth
        23
    garth  
    OP
       Jun 29, 2015
    @lvfujun
    @jasontse
    这个还真不知道,有可能吧。得测下才知道。
    @likuku 是ext4
    maskerTUI
        24
    maskerTUI  
       Jun 29, 2015
    你的配置文件有问题
    beneo
        25
    beneo  
       Jun 30, 2015
    上阿里云
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1720 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 77ms · UTC 16:23 · PVG 00:23 · LAX 09:23 · JFK 12:23
    ♥ Do have faith in what you're doing.