我们正在寻找一个免费的解决方案来压缩SQL Server 2005的SQL Server备份。我知道SQL Safe免费软件版本,但我想知道其他人如何将备份文件存储在压缩文件夹中以实现所需的结果。这将允许我们使用本机SQL备份任务和本机Windows压缩,从而消除对第三方产品的需求。
过去我没有使用压缩文件夹。这是一个可行的想法吗?压缩文件夹中备份的完整性是否存在可预见的问题?
答案 0 :(得分:3)
我是一个开源项目(GPL v3)的作者,可以满足您的需求。它是一个命令行工具(在Windows中安排在计划任务中)并备份到gzip,zip(特别是由于常规zip文件的4GB限制而为zip64)或bzip2文件。您可以使用该工具直接从压缩文件还原,也可以解压缩压缩文件(标准* .bak文件),然后使用SQL Server GUI进行还原。
它叫做SQL Server压缩备份,可在此处找到:http://sourceforge.net/projects/mssqlcompressed/
示例命令是:
msbp.exe backup "db(database=model)" "zip64" "local(path=c:\model.full.bak.zip)"
答案 1 :(得分:1)
谷歌快速提示:backing-up-to-a-ntfs-compressed-folder。似乎数据库大小可能会产生问题。
那么免费软件解决方案然后你可以在备份后的预定批处理中运行7zip,应该正确处理大文件。您应该移动备份 outta 生产服务器:)
答案 2 :(得分:0)
我使用Syncback Freeware自动将文件复制并压缩到另一个文件夹。这样可以节省大量的空间。我已经这样做了好几年了,而且效果很好。
答案 3 :(得分:0)
我们ISP的服务器上有100个数据库
ISP拥有全面的磁带备份,但它们需要很长时间才能恢复任何内容......所以我们需要将备份“保持在线”一段合理的时间,这样我们才能从中恢复它们。
我们每周生成一次完整备份,每天生成差异备份。我们将完整备份保留一个月,差异备份保留七天 我们每10分钟生成一次TLog备份,但只存储(在线)两天。
因此,我们可以恢复到前2天的时间点,过去7天的“午夜”,以及过去4周的“周日前”。
使用差异备份可以减少备份的总大小,并使我们能够在线保留更多“已用时间”。
所有备份都存储在NTFS压缩文件夹中。我们从来没有遇到过问题,但我认为我们没有任何数据库>这些“共享数据库服务器”上有30GB
在数据库维护期间(索引碎片整理等),我们将TLog备份的频率提高到每分钟。我们发现扩展数据库大小的一个原因是数据库维护,因此通过这样做,我们可以减少数据库的操作大小,从而释放一些磁盘空间以进行更多备份。 (通常在不同的驱动器上备份到MDF或LDF,但批处理操作会将旧的,陈旧的备份文件复制到包含MDF / LDF的驱动器,这样我们就可以使它们“在线”)
P.S。 SQL 2008具有内置的压缩备份功能,以防您计划升级
答案 4 :(得分:0)
虽然我不建议直接备份到压缩文件夹,但您当然可以备份到普通文件夹,然后在服务器不太忙时使用PowerShell脚本单独压缩每个文件。这是我使用的片段。它基本上通过备份目录进行递归,使用NTFS压缩压缩每个文件,达到一定的大小。这不是最好的解决方案;我首选的解决方案是在执行升级时使用SQL 2008/2012备份压缩。
$max_compressible_size = 10*1024*1024*1024 #10 gigs
$files = Get-ChildItem -recurse | where {$_.Extension -match "(trn)|(diff)|(bak)"}
foreach ($file in $files) {
$attr = (Get-ItemProperty $file.fullname).Attributes
if ($attr.ToString() -notmatch ".*Compressed.*" -and $file.Length -le $max_compressible_size) {
write-output $file.FullName
compact /C $file.FullName
}
}