sql server 2008 压缩备份数据库(20g)
程序员文章站
2023-10-31 13:05:52
今天需要把一个省外项目的数据库从服务器上备份、拷贝到本机(跨地域传输数据库备份文件)。
连上vpn,通过远程桌面连接,连接上服务器,发现数据库文件已经有20g以上大小了。...
今天需要把一个省外项目的数据库从服务器上备份、拷贝到本机(跨地域传输数据库备份文件)。
连上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大小:
最后顺利地把这个数据库备份文件拷贝并还原到本机数据库。
上一篇: C#在foreach遍历删除集合中元素的三种实现方法
下一篇: C#字体池技术实现代码详解
推荐阅读
-
SQL Server 2005/2008用户数据库文件默认路径和默认备份路径修改方法
-
sql server 2008 压缩备份数据库(20g)
-
Sql Server2005实现远程备份数据库
-
SQL Server 2008服务器角色和数据库角色
-
如何在SQL Server 2005数据库中导入SQL Server 2008的数据
-
SQL SERVER 2012数据库自动备份的方法
-
SQL Server数据库设置自动备份策略的完整步骤
-
SQL Server 2008数据库设置定期自动备份的方法
-
SQL SERVER 2008 r2 数据压缩的两种方法第2/2页
-
解决SQL Server 2008 不能使用 “.” local本地连接数据库问题