【IT专家网独家】SQL Server 2008推出了一个新的特性叫做数据库备份压缩。这个特性使数据库管理员可以压缩SQL Server 2008数据库备份而不是使用未压缩的本地SQL Server数据库备份或使用一个第三方工具。默认情况下,在SQL Server2008中数据库备份压缩是关闭的。现在这个特性只在SQL Server2008企业版中可用。但是,SQL Server2008的所有版本允许恢复压缩的数据库备份。
使用数据库备份压缩特性,数据库管理员就可以执行全面的、不同的和事务型的日志压缩备份。首先它是在SQL Server实例级别的,其次它可以在备份时指定WITH COMPRESSION条件语句。这篇文章提供了对怎样配置和使用SQL Server 2008中的数据库培芬压缩特性的按步指导。
使用GUI配置数据库备份压缩
1. 使用SQL Server管理套件连接到SQL Server 2008实例。
2. 在对象管理器中,右键单击服务器和选择属性来查看服务器属性窗口。
3. 在备份和恢复下,压缩备份显示了备份压缩默认选项的当前设置。这个设置决定了服务器级别对压缩备份的默认:
如果没有选压缩备份,新的备份在默认情况下是不压缩的。
如果选择了压缩备份,那么新的备份在默认情况下会被压缩。
4. 用户需要是sysadmin 或serveradmin 固定服务器角色的成员,来改变数据库备份压缩的默认设置。
使用TSQL配置数据库备份压缩
USE MASTER GO EXEC sp_configure 'backup compression default', '1' GO RECONFIGURE WITH OVERRIDE GO |
怎样使用TSQL解压一个数据库备份
下面的TSQL代码可以用来执行解压完全本地的SampleDB 数据库备份,它的大小是277MB。完成完全的解压本地备份的时间是18.287秒。
BACKUP DATABASE SAMPLEDB TO DISK = N'D:\DatabaseBackups\SampleDB_UnCompressed.Bak' WITH INIT, STATS = 20 |
怎样使用TSQL来执行一个压缩的数据库备份
下面的TSQL代码可以用来对SampleDB 数据库执行完全的压缩备份。完成这个压缩完全备份所花费的时间是6.910秒。
BACKUP DATABASE SAMPLEDB TO DISK = N'D:\DatabaseBackups\SampleDB_Compressed.Bak' WITH INIT, STATS = 20 |
在这个案例中,与本地SQL Server数据库备份相比,我们可以完成数据库备份规模的90%压缩。
你可以运行下面的TSQL代码在压缩字段中查找一个值。如果这个值是1,那么这意味着这个数据库备份是压缩了的,如果它是0,那么它意味着这个数据库备份没有被压缩或者它是一个本地备份。
RESTORE HEADERONLY FROM DISK = N'D:\DatabaseBackups\SampleDB_Compressed.Bak' |
注意:数据库备份压缩显著地提高了CPU的使用,并因此在执行数据库备份时它对其它的数据库操作有轻微的影响。你需要仔细地计划数据库备份工作可以执行备份的这个时间。
恢复一个压缩的数据库备份
下面的TSQL代码将从压缩的备份恢复SampleDB数据库,它的完成时间是8.565秒。
RESTORE FILELISTONLY |
恢复未压缩的数据库备份
下面的TSQL代码将从未压缩的备份恢复SampleDB 数据库,它的完成时间是15.9891秒。
RESTORE FILELISTONLY FROM DISK = N'D:\DatabaseBackups\SampleDB_Uncompressed.Bak' GO RESTORE DATABASE SampleDB FROM DISK = N'D:\DatabaseBackups\SampleDB_Uncompressed.Bak' WITH MOVE N'SampleDB_Data' TO N'D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\SampleDB.mdf', MOVE N'SampleDB_Log' TO N'D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\SampleDB_1.ldf', RECOVERY, STATS = 20 GO |
用来评估数据库备份压缩的性能计算器(Performance Counters)
处理器对象的%处理器时间计算器。
物理磁盘对象的%磁盘时间计算器& Avg 磁盘队列长度。
SQLServer 备份设备对象的设备吞吐量字节/秒计算器。t
SQLServer数据库对象的备份/恢复吞吐量/秒计算器。