I've just released version 1.2-20091123 of SQL Server Compressed Backup which can be downloaded here.
SQL Server Compressed Backup will back up SQL Server databases using either gzip, zip or bzip2 compression.
The new features are:
- Fixed the encoding problem by removing “\s”, “\p” and “\\” since they are commonly used in file paths and replacing them with “;;” to mean “;”. Looking at the command line options, it is only necessary to encode the semicolon, so “;;” is the only encoding the command line does.
- Added a feature I’ve personally wanted: progress updates and an estimated time until completion. It is more verbose at the beginning (every few seconds), then slows down. After an hour of backing up, updates are only once every 24 minutes.
- Worked on the BlockSize and BufferCount request. I’m not keen on implementing BlockSize. I’d like to hear someone explain how they take advantage of it. My understanding is that BlockSize is only for writing to devices (tapes and CD-ROMs — not files on a CD-ROM though), so it doesn’t seem appropriate for backing up to files. BufferCount and MaxTransferSize seem like reasonable options to request, so these are now available.
#1 by Terry at January 7th, 2010
| Quote
I really like the progress updates. Nice job.
One thing - it seems I can’t take a backup I made on a 64 bit server and restore it on a 32 bit server, even though that’s possible through the standard SSMS interface. I get ‘device is incorrectly formatted’. Any thoughts?
#2 by Clay Lenhart at January 9th, 2010
| Quote
Terry,
I suspect that you used compression when backing up, but didn’t include the compression plugin in the pipeline when restoring. If you post a comment with the backup command, I’ll reply with the restore command that you should use.
Cheers,
Clay
#3 by -phil- at January 25th, 2010
| Quote
Hi Clay,
Thx for your excellent work !
A little bug:
C:\Program Files\MSSQLCompressedBackup-1.2>msbp.exe restore
capacity was less than the current size.
Parameter name: capacity
System.ArgumentOutOfRangeException
at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
at System.Collections.Generic.List`1..ctor(Int32 capacity)
at MSBackupPipe.Cmd.Program.CopySubArgs(String[] args) in C:\Documents and Settings\clay.lenhart\My Documents\personal\Hg\mssql
compressed\MSBackupPipe.Cmd\Program.cs:line 251
at MSBackupPipe.Cmd.Program.Main(String[] args) in C:\Documents and Settings\clay.lenhart\My Documents\personal\Hg\mssqlcompres
sed\MSBackupPipe.Cmd\Program.cs:line 136
The restore failed.
Below are the commands for msbp.exe:
msbp.exe help
msbp.exe backup
msbp.exe restore
msbp.exe listplugins
msbp.exe helpplugin
msbp.exe version
For more information, type msbp.exe help
C:\Program Files\MSSQLCompressedBackup-1.2>
#4 by Clay Lenhart at January 25th, 2010
| Quote
Thanks, the error message should be nicer. I’ll add a issue for this.
The problem is that the command is incomplete. It should be something like
msbp.exe restore file:///c:\model.bak db(database=model)
or
msbp.exe restore file:///c:\model.bak.zip zip64 db(database=model)
#5 by -phil- at January 26th, 2010
| Quote
Yep, just rests you to improve a little bit the error message hanlder
Thx Clay
++
#6 by Kim at February 26th, 2010
| Quote
Hi Clay
Is your command incompatible with sql2008
It works great with our 2005
/kim
#7 by Clay Lenhart at February 26th, 2010
| Quote
It works with sql2008. Can you post the error message? A common error is related to using the right x86 or x64 version of msbp (based on SQL Server not Windows. So SQL Server x86 on Windows x64 should use the x86 version of msbp)
#8 by Kim at March 1st, 2010
| Quote
Thx. Excactly I had 64bit msbp and os but only 32 bit sqlserver.
Everything works fine now.
/kim
#9 by Clay Lenhart at March 2nd, 2010
| Quote
Kim,
I’m glad it is working for you!
The next todo item is to hide x86 vs x64 from users and have one EXE. This will also make a GUI easier since we can then target “any cpu” rather than a particular one.
#10 by Don bell at March 8th, 2010
| Quote
I’m currently using your tool to run full backups and all works ok, i started using it for log backups on SQL 2008 64 bit edition and that works fine, but when i tried using it on SQL 2000 32 bit edition, it gave this error :
Exception #1
EXECUTE cannot be used as a source when inserting into a table variable.
Any idea what may cause this, thanks!!
#11 by Clay Lenhart at March 8th, 2010
| Quote
This sounds like a bug that has been fixed. Can you check to see if you are using the latest version, 1.2-20100117. You can download the latest version from the project page here https://sourceforge.net/projects/mssqlcompressed/