问题

mysql 导入任务时,由于导出的 sql 文件是在很大 (30G),利用 SQLDumpSpliter 切割工具 切成几个 1G 大小的 sql 文件

结果在导入大半天,突然报错 (另一个服务器上更惨,都导入两天快完成的时候,也报错了,那个是 ubuntu 20.04 ,后续再写)

20191230_154230_03.sql: write error (disk full?). Continue? (y/n/^C)

处理过程

  1. 查看磁盘占用情况

     df -a
     
     文件系统                    1K-块     已用      可用 已用% 挂载点
     
     ...
     tmpfs                     8128668        0   8128668    0% /dev/shm
     devpts                          0        0         0     - /dev/pts
     tmpfs                     8128668     8640   8120028    1% /run
     tmpfs                     8128668        0   8128668    0% /sys/fs/cgroup
     ...
     /dev/mapper/centos-root  52403200 52064648    338552  100% /
     ...
     /dev/mapper/centos-home 147899844    32992 147866852    1% /home
     /dev/sda1                 1038336   196772    841564   19% /boot
     ...
     
     # df -h
     文件系统                 容量  已用  可用 已用% 挂载点
     ...
     /dev/mapper/centos-root   50G   50G  335M  100% /
     /dev/mapper/centos-home  142G   33M  142G    1% /home
     ...
    
  2. 想当然认为 tmp 临时文件太多了,删除 tmp

     # ls /tmp -l
     
     总用量 0
     drwx------. 3 root root 17 8月  10 21:40 systemd-private-1408eb49d4e14c48b6e70c22ff965768-chronyd.service-H72jr9
     drwx------. 3 root root 17 8月  10 21:44 systemd-private-4c01797c31bf4a4dbb9ef7bd2735e39b-chronyd.service-S6gwnJ
     drwx------. 3 root root 17 8月  10 22:08 systemd-private-74265bf9678649f7be1d9095a0303a41-chronyd.service-yY6sZC
     drwx------. 3 root root 17 8月  11 01:15 systemd-private-ea7fdb52f3094cf088283fc820f29e06-chronyd.service-wtvh3q
     drwx------. 3 root root 17 8月  10 21:51 systemd-private-fc233b8722b74a3c9a79417eb7e8b857-chronyd.service-MPdEIR
     
     # rm -rf /tmp/*
     # ls /tmp -l
     总用量 0
    
  3. 删完再仔细看,原来问题出在这个 已用% 占用 100% 的 /dev/mapper/centos-root

     # df -a
     文件系统                    1K-块     已用      可用 已用% 挂载点
     ...
     /dev/mapper/centos-root  52403200 52060036    343164  100% /
     ...
     /dev/mapper/centos-home 147899844    32992 147866852    1% /home
     /dev/sda1                 1038336   196772    841564   19% /boot
     ...
    

    怎么办?因为我这是虚拟机,扩充容量很 easy ,从那个之前的 200G 扩展到了 500G ,这应该足够了!
    但是,重启后再看,那个 100% 占用没有改变,因为 linux 扩展的磁盘不是直接就挂上的

  4. 冷静分析,找到对策
    1). 设备 /dev/sda1 实际占用才 19% ,很空啊!
    2). home 占用也很少, 才 1%
    3). 原来 centos 给 root 用户才分配了 50G
    4). 既然 home 那么空,干脆,将 root 下的大文件转移到 home

    说干就干!把那些大文件全部转移到了 /home ,再来查看

     # df -h
     文件系统                 容量  已用  可用 已用% 挂载点
     ...
     /dev/mapper/centos-root   50G   29G   22G   58% /
     /dev/mapper/centos-home  142G   21G  121G   15% /home
     /dev/sda1               1014M  193M  822M   19% /boot
     ...
    
  5. OK ! 可以继续了
    如果啥时候 /home 也满了,就只能再挂载新的磁盘分区了

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐