sql server 2008 压缩备份数据库(20g)

今天需要把一个省外项目的数据库从服务器上备份、拷贝到本机(跨地域传输数据库备份文件)。

连上VPN,通过远程桌面连接,连接上服务器,发现数据库文件已经有20G以上大小了。

文件太大,公司网络也不稳定,根本不可能通过网络传输过来。

于是,把数据库的恢复模式由“完整”模式设置为“简单”模式,接着收缩数据库,

数据库瞬间由20G变成1G多点。

在SSMS中,新建查询窗口,执行数据库备份语句:

sql;"> --定义变量,把备份数据库的QL脚本赋值给变量 declare @sqlBackupDataBase as nvarchar(1000) set @sqlBackupDataBase=N'BACKUP DATABASE Northwind TO DISK = ''D:\Northwind-'+ CONVERT(varchar(11),GETDATE(),112)+REPLACE(CONVERT(varchar(12),108),':','')+'.bak''' --备份文件格式:Northwind-20170111132424.bak exec sp_executesql @sqlBackupDataBase --调用系统存储过程,执行sql

备份成功后,备份的bak文件有1.16G大小:

接着,兴冲冲地拷贝bak文件到本机,

结果:总是在传输的过程中,传输自动中断。

原因是 网络不稳定,网络的带宽限制。

想想,能不能备份成更小的bak文件呢?

最后用到了sql server 2008 以上版本的数据库的新特性:压缩备份数据库

其实就是在备份数据库的语句上加上 “with STATS = 1,compression”,

完整压缩备份数据库语句如下:

sql;"> --定义变量,把备份数据库的QL脚本赋值给变量 declare @sqlBackupDataBase as nvarchar(1000) set @sqlBackupDataBase=N'BACKUP DATABASE Northwind TO DISK = ''D:\Northwind-'+ CONVERT(varchar(11),'')+'.bak''' +'with STATS = 1,compression' --备份文件格式:Northwind-20170111132424.bak exec sp_executesql @sqlBackupDataBase --调用系统存储过程,执行sql

备份成功后,发现备份的bak文件只有160MB大小:

最后顺利地把这个数据库备份文件拷贝并还原到本机数据库

相关文章

(一)日志传送架构 (1.1)相关服务器 主服务器 :用于生产的服务器,上面运行这生产SQL Server数据库...
(一)事故背景 最近在SQL Server 2012生产数据库上配置完事物复制(发布订阅)后,生产数据库业务出现了...
(一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既...
(一)背景个人在使用sql server时,用到了sql server的发布订阅来做主从同步,类似MySQL的异步复制。在...
UNION和OR谓词 找出 product 和 product2 中售价高于 500 的商品的基本信息. select * from product wh...
datawhale组队学习task03