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大小:

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

  • 相关阅读:
    hiveserver2 with kerberos authentication
    python Basic usage
    python Quicksort demo
    Python HeapSort
    mrunit for wordcount demo
    CCDH证书
    Hadoop question list
    Hadoop Yarn core concepts
    Hadoop Resource
    Hadoop could not find or load main class
  • 原文地址:https://www.cnblogs.com/Violety/p/15777499.html
Copyright © 2011-2022 走看看