• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Reign
V2EX  ›  程序员

mysql 备份,直接导 SQL 和复制数据表的 frm, MYD, MYI 有什么区别和弊端?

  •  
  •   Reign · Jan 11, 2019 · 3320 views
  •   You need to sign in to view this topic
    This topic created in 2826 days ago, the information mentioned may be changed or developed.

    mysql 每隔半小时备份一次到备份服务器,由于数据表太过庞大, 导一次 SQL 时间很长,于是我每次都是直接将数据表的 frm,MYD,MYI 文件传到备份服务器上,简单省事,但又有点担心这三个文件以后恢复数据的时候,能拿来就用吗?有没有什么弊端

    我测试过将这三个文件恢复到 mysql 的 data 目录,当我尝试删除一行时,提示我 incorrect key file,然后我修复了一下数据表索引,又正常了,其它缺点貌似还没发现?

    xnode
        1
    xnode  
       Jan 11, 2019
    直接复制数据库文件 可能会导致文件错误, 如果必须要用这两种方法 建议 二者的 mysql 都关闭 再 copy
    xiaoz
        2
    xiaoz  
       Jan 11, 2019
    如果某个表占用或者锁定的情况下直接拷贝源文件可能会出错或者损坏
    MilkShake
        3
    MilkShake  
       Jan 11, 2019
    为什么不用增量备份呢- -
    liwl
        4
    liwl  
       Jan 11, 2019
    ibdata 也要,如果是 8 的话,ibdtmp 的数据可能都要备份一下
    liwl
        5
    liwl  
       Jan 11, 2019
    xtrabackup 了解一下
    msg7086
        6
    msg7086  
       Jan 11, 2019
    如果只有 MyISAM 表的话是可以这么备份的。备份的时候需要停止服务器,让数据库把数据回写到磁盘上,然后再备份即可。不关闭数据库的话,文件复制的同时文件还在被读写,很大概率会损坏。

    另外你说「以后恢复数据的时候,能拿来就用吗」。

    记住:

    没有实际做过数据恢复试验的备份

    毫无价值
    snnn
        7
    snnn  
       Jan 11, 2019 via Android
    @msg7086 不用停机。flush tables with read lock,然后 copy 文件,然后 unlock。
    不用担心这么做会丢数据,这是官方推荐做法。
    Reign
        8
    Reign  
    OP
       Jan 11, 2019
    @msg7086 我的 myiasm 表,针对你说的:“文件复制的同时文件还在被读写,很大概率会损坏”,数据表每时每刻都在在频繁读写,我现在每隔半小时自动 ftp 上传 frm,MYD,MYI 文件到备份服务器,持续一个多月了,为啥还没损坏?
    avenger
        9
    avenger  
       Jan 12, 2019
    热备份还是 mysqldump 吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2846 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 03:35 · PVG 11:35 · LAX 20:35 · JFK 23:35
    ♥ Do have faith in what you're doing.