zoukankan      html  css  js  c++  java
  • 【转】sql server 压缩备份数据库

    转自 https://www.cnblogs.com/527289276qq/p/6273291.html

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

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

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

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

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

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

    --定义变量,把备份数据库的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),GETDATE(),108),':','')+'.bak'''
    --备份文件格式:Northwind-20170111132424.bak
    

    exec sp_executesql @SqlBackupDataBase --调用系统存储过程,执行SQL

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

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

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

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

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

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

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

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

    --定义变量,把备份数据库的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),GETDATE(),108),':','')+'.bak'''
    +'with STATS = 1,compression'
    --备份文件格式:Northwind-20170111132424.bak
    exec sp_executesql @SqlBackupDataBase
    --调用系统存储过程,执行SQL

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

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

  • 相关阅读:
    使用较大的 JavaScript 函数
    js代码,执行简单的按钮翻转
    GUID!!!!
    日期可以直接比较,但从页面取来的日期要用单引号括起来!
    statement
    关于switch
    关于Confirm
    JS代码,将终端用户(Web 页面的查看者)的计算机时间置于一个按钮 Web 服务器控件上
    测试时应该注意的
    如果你觉得现在的生活并不好,说明你的努力还不够
  • 原文地址:https://www.cnblogs.com/Violety/p/15777499.html
Copyright © 2011-2022 走看看