sql-server - 删除未使用的数据库后如何减小 SQL Server docker 卷的大小?
问题描述
我在 Mac 上运行 (linux) docker 版本的 SQL Server。我将 SQL 服务器的主数据目录定义为已安装的 docker 卷,位于:
/var/opt/mssql/data
我的 docker 磁盘使用量现在已经达到 92Gb。我已经进入 SQL 服务器并删除了一些未使用的数据库,这些数据库删除了大约 60Gb 的数据。我如何回收该空间?现在 docker 仍然显示相同的磁盘使用情况。我已经登录到正在运行的 docker 容器并验证了数据库文件已被删除,但我不确定如何回收空间。如果我在容器内运行 mount 命令,我可以看到已安装的卷:
/dev/sda1 on /var/opt/mssql/data type ext4 (rw,relatime,stripe=1024,data=ordered)
如果我执行 df 这个卷现在似乎只使用 26Gb,假设它确实是这里显示为 /dev/sda1 的卷:
[root@4a74a4f096d2 data]# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 88G 26G 59G 31% /
tmpfs 64M 0 64M 0% /dev
tmpfs 1000M 0 1000M 0% /sys/fs/cgroup
/dev/sda1 88G 26G 59G 31% /etc/hosts
shm 64M 0 64M 0% /dev/shm
tmpfs 1000M 0 1000M 0% /proc/acpi
tmpfs 1000M 0 1000M 0% /sys/firmware
docker system df 似乎没有多大用处,因为它似乎甚至不认为该卷正在使用中:
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 9 1 5.091GB 3.162GB (62%)
Containers 1 1 86.85MB 0B (0%)
Local Volumes 2 0 20.5GB 20.5GB (100%)
Build Cache 0 0 0B 0B
我怎样才能收回这个空间?谢谢。
解决方案
我按照这个问题的步骤:
答案“为什么文件不断增长?” 向您展示如何运行 fstrim 命令:
docker run --rm -it --privileged --pid=host walkerlee/nsenter -t 1 -m -u -i -n fstrim /var/lib/docker