MSSQL - 备份数据库大小错误

MSSQL - 备份数据库大小错误

我有一个 10GB 大小的数据库备份 (.bak),我通过以下方式将其导入我的 MSSQL 数据库:

USE [master]
GO
RESTORE DATABASE [<dbname>] FROM  DISK = N'$BAKFILEWITHPATH' WITH FILE = 1, MOVE N'$LOGICNAME' TO N'/var/opt/mssql/data/$BAKFILENOEXT.mdf',  MOVE N'$LOGFILE' TO N'/var/opt/mssql/data/$BAKFILELOG.ldf',  NOUNLOAD,  STATS = 5
GO

(由于此查询是使用 bash 脚本创建的,因此包含多个变量。)这样就成功了。然后我删除了占备份大小 90% 的 BLOB 列。(~9GB)

USE [$BAKFILENOEXT]
GO
ALTER TABLE [dbo].[BLOB] DROP COLUMN [Blob]
GO

然后我将导入的不包含 Blob 行的数据库再次备份到 .bak 文件中。备份现在应该只有 1GB 大,对吗?

BACKUP DATABASE [$BAKFILENOEXT] TO  DISK = N'$_mountpoint/$BAKFILE' WITH FORMAT, INIT,  MEDIADESCRIPTION = N'$blobstatus',  MEDIANAME = N'$blobstatus',  NAME = N'complete backup without blob column', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

但是 BAK 文件又有 10GB 大。怎么会这样?它不再有 BLOB 行,它必须是 1GB。但它是 10GB。怎么会这样?

站点说明:操作系统:Ubuntu 16.04 SQL:MSSQL Server 2017,我使用 SQLCMD 工具启动 sql 脚本

相关内容