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

  

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

  

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

  

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

  

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

  

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

  

  

在地对地导弹中,新建查询窗口,执行数据库备份语句:

        ——定义变量,把备份数据库的QL脚本赋值给变量   宣布@SqlBackupDataBase为nvarchar (1000)   设置@SqlBackupDataBase=N 'BACKUP Northwind数据库磁盘=" D: \罗斯文——“+   转换(varchar(11),获取当前日期(),112年)+取代(转换(varchar(12),获取当前日期(),108),‘:’,”)+ ' . bak“   ——备份文件格式:罗斯文- 20170111132424. -贝克   exec sp_executesql @SqlBackupDataBase——调用系统存储过程,执行SQL      

备份成功后,备份的贝克文件有1.16 g大小:

  

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

  

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

  

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

  

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

  

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

  

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

  

其实就是在备份数据库的语句上加上“与统计=1,压缩”,

  

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

        ——定义变量,把备份数据库的QL脚本赋值给变量   宣布@SqlBackupDataBase为nvarchar (1000)   设置@SqlBackupDataBase=N 'BACKUP Northwind数据库磁盘=" D: \罗斯文——“+   转换(varchar(11),获取当前日期(),112年)+取代(转换(varchar(12),获取当前日期(),108),‘:’,”)+ ' . bak“   +数据=1,压缩的   ——备份文件格式:罗斯文- 20170111132424. -贝克   exec sp_executesql @SqlBackupDataBase——调用系统存储过程,执行SQL      

备份成功后,发现备份的贝克文件只有160 mb大小:

  

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

  

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

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