当我们升级、迁移或者重建数据库时,你是否为将一个大数据库文件(动不动上100GB)的传输而烦劳呢?当你在配置数据库镜像的时候,你是否也曾因为超大备份文件的移动而抓耳挠腮呢?当你需要跨地域传输数据库备份文件时,你是否为网络的带宽限制而劳神苦思呢?如果是,那么SQL Server的压缩备份也许能够帮到你
诚然,节约数据库存储空间大小事DBA的一项重要职责,但是能够保证备份文件足够小也是一件让人怦然心动的事情。那么,让我们在SQL Server备份压缩的实验中,感受它的魅力。
SQL Server的备份压缩是SQL Server 2008才开始支持的一项功能,具体的做法是我们再Backup语句中使用WITH Compression即可,请参见下面的测试例子。
在测试之前,我构造了一个名为Test的数据,该数据库大小为2.5GB左右。
|
use test go
exec sys.sp_helpdb 'test' /*仅显示了关键的两个字段 name db_size test 2533.81 MB */ |
使用SQL Server 2008的备份压缩功能:
|
use master go backup database test to disk = N'H:\test_full_comp.bak' with STATS = 1 ,compression;--压缩备份 |
让我们查看备份完毕后的压缩文件大小,仅仅只有23MB:

当然,不同的数据库有不同的压缩比,但可以肯定的是备份压缩可以大大的减少数据库备份文件的大小。
压缩数据库还原:
|
RESTORE DATABASE test_bak FROM disk = N'H:\test_full_comp.bak' WITH RECOVERY, stats = 1, MOVE 'test' TO 'E:\DATA\MSSQLSERVER\test\SQL\test_bak.mdf', MOVE 'test_log' TO 'E:\DATA\MSSQLSERVER\test\LOG\test_bak_log.LDF' ; |
SQL Server 2008 Enterprise 中引入了备份压缩。从 SQL Server 2008 R2 开始,SQL Server 2008 R2 Standard 和所有更高版本都支持备份压缩。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24374052/viewspace-716762/ ,如需转载,请注明出处,否则将追究法律责任。