CentOS7 上设备上没有剩余空间

CentOS7 上设备上没有剩余空间

我的机器的操作系统CentOS7需要将50G数据备份到MySQL中。但是,设备上没有剩余空间。但上面有很多空格/home。如何让用户知道MySQL有足够的空间来存储数据。我认为 中 没有空间/dev/mapper/centos-root,我怎样才能将空间移动到 from/home/

$ df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G   50G   20K 100% /
devtmpfs                 7.8G     0  7.8G   0% /dev
tmpfs                    7.8G   84K  7.8G   1% /dev/shm
tmpfs                    7.8G  2.6G  5.2G  34% /run
tmpfs                    7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/mapper/centos-home  500G   20G  480G   4% /home
/dev/sda1                497M  241M  257M  49% /boot
tmpfs                    1.6G   16K  1.6G   1% /run/user/42
tmpfs                    1.6G     0  1.6G   0% /run/user/0
tmpfs                    1.6G  4.0K  1.6G   1% /run/user/1000

并且g++编译代码失败。

$ g++ test.cpp
Cannot create temporary file in /tmp/: No space left on device
[1]    6642 abort (core dumped)  g++ test.cpp

答案1

您首先需要将根分区(“/”)从已满的状态中删除,否则系统中会发生许多不好的事情。对于许多系统和用户任务来说,它需要 /tmp 是可写的。

您的根分区只有 50GB,因此在当前分区结构下您永远无法获得所需的空间。

您的选择是重新分区以获取单独的 /var(/home 空间不足),为自己提供 MySQL 数据文件的空间。实用程序分手了会那么做。如果它是一台托管计算机,可能不容易或不可能做到,并且如果您不确定自己在做什么,我不建议使用该实用程序。

如果做不到这一点,这有点麻烦,但你可以用符号链接来绕过它。通常不建议这样做,您可能需要将计算机切换到单用户模式,因为正在运行的守护进程将有文件锁阻止您移动。本质是:

mv /var /home
ln -s /home/var /var

如果你这样做,你可能需要重新启动机器才能干净地启动它:

shutdown -r now

请研究一下你想要做什么,如果你没有一个明确的计划,那么使用磁盘分区可能会变得非常混乱。

答案2

如果您存储仅有的在您的分区上备份 MySQL /,然后很容易移动数据。

假设您将数据存储在/opt/backup/

  • 停止备份写入该目录(如果您正在使用某些备份程序)

  • 将备份文件夹移动/到(或您想要的/home/任何文件夹)/home

    # mv /opt/backup/ /home/

  • 创建到旧目录的符号链接:

    # ln -s /home/backup/ /opt/backup

  • 授予适当的权限以确保您的备份程序具有对/home/backupwith的写入权限chmod

  • 重新启动您的备份程序

答案3

使用专业工具(如 acronis)将操作系统克隆到具有更大分区的更大磁盘,因为硬链接可能会在后期造成问题。使用引导救援重建 grub,因为在移动到新的磁盘布局后 centos 可能无法引导。

答案4

永久解决方案:

fs.inotify.max_user_watches=1048576 #只需添加到这一行

/etc/sysctl.conf

永久固定极限值

然后做

系统控制-p

相关内容