V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
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 · 2015-06-28 20:12:53 +08:00 · 8831 次点击
    这是一个创建于 3464 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一个PHP+MYSQL的普通网站,CentOS系统,每次机器突然断电的话,最近几天的数据都会丢失,有解决办法吗?
    第 1 条附言  ·  2015-06-29 01:36:42 +08:00
    我没有表述清楚,几天的数据,其实只有几十来条记录。
    准备上UPS了。
    25 条回复    2015-06-30 12:46:16 +08:00
    Septembers
        1
    Septembers  
       2015-06-28 20:13:41 +08:00
    UPS?
    czheo
        2
    czheo  
       2015-06-28 20:13:52 +08:00
    mysqldump+crontab
    scys
        3
    scys  
       2015-06-28 20:16:12 +08:00
    UPS上,服务器千万不要断电,否则你根本不知道会发生任何你想不到的问题
    fortunezhang
        4
    fortunezhang  
       2015-06-28 20:40:13 +08:00
    这。。这必须ups啊。还有更好的办法吗?
    zado
        5
    zado  
       2015-06-28 20:40:54 +08:00
    解决的办法就是不要让他断电,否则无解。:-)
    omi4399
        6
    omi4399  
       2015-06-28 20:53:34 +08:00
    UPS + 双电源
    wy315700
        7
    wy315700  
       2015-06-28 21:15:50 +08:00
    试试看innodb
    jackysc
        8
    jackysc  
       2015-06-28 21:23:57 +08:00
    断电会造成几天的数据丢失? 。。。不应该吧。。
    xiaohanqing
        9
    xiaohanqing  
       2015-06-28 21:40:22 +08:00
    几天太多了吧,调整一下写入缓存
    xzl
        10
    xzl  
       2015-06-28 22:04:21 +08:00
    repl
    kjj98709
        11
    kjj98709  
       2015-06-28 22:07:29 +08:00
    丢好几天的数据有点不正常了呀
    realpg
        12
    realpg  
       2015-06-28 22:11:09 +08:00
    每次断电,最近几天都会丢失,这不是服务器有没有UPS的问题,一定是设置问题。

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

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

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

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

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

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

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

    按理说mysql innodb 双缓存写入,断电不会造成丢数据。。。
    likuku
        21
    likuku  
       2015-06-29 09:46:32 +08:00
    磁盘是 ext3 文件系统?
    Pandora78
        22
    Pandora78  
       2015-06-29 10:37:03 +08:00
    听说oracle可以解决这个问题
    garth
        23
    garth  
    OP
       2015-06-29 10:58:44 +08:00
    @lvfujun
    @jasontse
    这个还真不知道,有可能吧。得测下才知道。
    @likuku 是ext4
    maskerTUI
        24
    maskerTUI  
       2015-06-29 12:06:59 +08:00
    你的配置文件有问题
    beneo
        25
    beneo  
       2015-06-30 12:46:16 +08:00
    上阿里云
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2581 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 05:45 · PVG 13:45 · LAX 21:45 · JFK 00:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.