V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zzztongxue
V2EX  ›  数据库

服务器硬盘空间马上就要被数据库吃满(100 多 G),该怎么迁移呢?求助求助

  •  
  •   zzztongxue · 162 天前 · 1246 次点击
    这是一个创建于 162 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有个产品用了宝塔面板部署,之前这个数据库是放在阿里云上面,之前还在阿里云的时候不到 20G ,想着迁移到服务器 120G 应该够用好久了,但是没想到涨这么快,不知道是不是因为我那里没配置好,产生了大量的缓存文件。

    总之现在爆红,必须要处理了,求一个大佬指点指点怎么迁移宕机时间最少

    数据库已经差不多过 100G 了,迁移感觉一晚上都搞不定,直接扩容原来的硬盘又好贵。。。难受了

    第 1 条附言  ·  162 天前
    老哥们提醒得对,回去排查了一下,确实日志的问题。

    err 错误日志给占了 80G ,打算今晚凌晨删一下。

    ps:我是前端半路出家现在走野路子,现在一个人维护兼开发了两个日活 10w+的产品,一个人做技术草台班子都算不上,也不怕各位老哥笑话,技术确实蛮菜的...
    24 条回复
    Pastsong
        1
    Pastsong  
       162 天前
    内存?
    zzztongxue
        2
    zzztongxue  
    OP
       162 天前
    @Pastsong 是服务器硬盘空间
    yangg
        3
    yangg  
       162 天前
    连啥数据库都不说,大家来猜猜?数据库里每个表的占用呢?
    zeusho871
        4
    zeusho871  
       162 天前 via Android
    binlog 要记得关
    dier
        5
    dier  
       162 天前
    先看看是不是开了 binlog 日志之类的导致空间占用过大。如果是日志,可以先清理一下旧的日志文件再说。
    ```shell
    du -m -d 1 /
    ```
    dzdh
        6
    dzdh  
       162 天前
    不怕死执行一遍 optimize
    yefee
        7
    yefee  
       162 天前
    直接硬盘扩容啊
    rainmint
        8
    rainmint  
       162 天前
    阿里云可以动态扩容
    zzztongxue
        9
    zzztongxue  
    OP
       162 天前
    @yefee 我服务器买的 5 年,直接扩容好贵... 500G 需要一万多
    NevadaLi
        10
    NevadaLi  
       162 天前   ❤️ 1
    mysql 确实会占很大内存,不过你这种 120GB 都不够的要不还是 shard 分开吧,在业务端进行 shard ,将压力均摊开,并且主从分离,slave 负责 read ,用 master 负责写。
    iBugOne
        11
    iBugOne  
       162 天前   ❤️ 3
    1. 用宝塔
    2. 自己都不知道自己配了个啥
    3. 管硬盘叫内存

    buff 叠满了,这种问题估计没什么人愿意理
    zzztongxue
        12
    zzztongxue  
    OP
       162 天前
    @yangg 我的我的,mysql8.0 ,社区类应用,主要是评论表和消息通知表占用得多
    kneo
        13
    kneo  
       162 天前 via Android
    优先清理数据库。清理完争取再将就一年。

    mysql 8 默认开启 binlog ,可以自己关了,旧的 binlog 删掉就行,估计你用不着。
    xiaogu2014
        14
    xiaogu2014  
       162 天前   ❤️ 1
    down time 要最少的的话。建议是先扩容。再接个外部的数据库当 slave (会利用 binlog 的)。直到数据一致之后切换主从。然后把 master 给删了。。
    如果 downtime 可以接受的话。先把网站关了。然后数据库直接迁移到新的库。然后再更改链接。。
    defunct9
        15
    defunct9  
       162 天前   ❤️ 1
    开 ssh ,让我上去看看
    cheng6563
        16
    cheng6563  
       162 天前
    停 mysql ,阿里云面板上扩容,重启扩分区大小,启动 mysql 。
    手速快的话几分钟搞定

    不要 optimize ,跑 optimize 直接死。
    wenxueywx
        17
    wenxueywx  
       162 天前   ❤️ 1
    首先看看是什么占用的磁盘,日志还是数据?
    其次看看能不能删?
    都不行的话就另外搞个机器远程备份克隆一个 mysql 实例过去,然后进行主从同步到最新位点,服务再找机会切到新实例,原实例就可以删了。
    jianchang512
        18
    jianchang512  
       162 天前
    借楼问下,主从 读写分离这种延时怎么处理
    lyxxxh2
        19
    lyxxxh2  
       162 天前
    开 ssh 免费帮你解决。
    保证删得干净。
    june4
        20
    june4  
       162 天前   ❤️ 1
    啥论坛这么大用户量啊,120G 的数据库都能很快用完
    wcloudme
        21
    wcloudme  
       162 天前   ❤️ 1
    大概率是日志占用了太多空间
    jones2000
        22
    jones2000  
       162 天前
    数据库脱机, 整个数据库文件拷到新的机器上, 然后新的机器上绑定这个库文件。
    wenxueywx
        23
    wenxueywx  
       162 天前   ❤️ 1
    错误日志还等什么凌晨删啊
    直接 echo > error.log
    zzztongxue
        24
    zzztongxue  
    OP
       162 天前
    @wenxueywx 哈哈哈,前面直接清空了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5301 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 01:26 · PVG 09:26 · LAX 17:26 · JFK 20:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.