'Pipe' (or 'libpipe') is a drop-in extension for Sybase backup server.
With this plugin the operands of the DUMP and LOAD commands are not limited to just files. stdin (for DUMP) or stdout (for LOAD) of any command at all can be specified — local or remote, as can be any port on any host on the network.
Now Sybase dumps can be sent to and received from from any command line (hence "pipe"). Special provisions also allow easy sending to a specified host:port or to a command on a remote machine (via rcmd).
Once the plugin's shared library is dropped into the Sybase server's bin-directory, the following examples become possible. You'll be limited only by your imagination...
The usual way to compress the dumps is to use Sybase's own 'compress' plugin. Assuming you archive the dumps on a remote box called "backupbox", your command will look something like this:
isql> dump database FOO to 'compress::/net/backupbox/backups/FOO.cmp'
Doing so, however, causes the server's processor to do the compression. Quite often that other machine has a (much) faster CPU. (This method also avoids the idiosyncrasies of NFS):
isql> dump database FOO to 'pipe::Rbackupbox:gzip > /backups/FOO.cmp'
The resulting file backupbox:/backups/FOO.cmp will be the same... You will have the flexibility to decide, which machine should do the job.
This example uses a third-party tool to encrypt the dump before it even hits the disk:
dump database MEOW to 'pipe:::ccrypt -k /etc/secret \> /dumps/MEOW.dmp.cpt'
dump database MEOW to 'pipe:::bzip2 -9 \| ccrypt -k /etc/secret \> /dump/MEOW.dmp.bz2.cpt'
load database MEOW from 'pipe:::ccat -k /etc/secret /dump/MEOW.dmp.bz2.cpt \| bzcat'
This example shows, how a database can be transferred from one server to another directly without creating an intermediate backup file avoiding the time- and disk-consuming process. First we tell the loading server to wait for a connection on an available port from 5000 up:
isqlprompt1> load database MEOW_COPY from 'pipe::S:5000' isqlprompt1> go [... usual LOAD verbiage skipped ...] AWAITING ON backupserver:5009
Ok, now — pass the above host:port combination to the dumping server:
isqlprompt2> dump database MEOW to 'pipe::Pbackupserver:5009' isqlprompt2> go
The math is simple here. Assume, your database servers can DUMP and LOAD at an average rate of 15Mb/s. For a 15Gb database, that's about 1000 seconds or 17 minutes — in each direction. Our plugin lets you finish the job in 17 instead of 34 minutes... For larger databases this can make a difference between finishing the job overnight and having to wait for the weekend... That you don't need the large space to temporary hold the dump is an extra bonus.
Our command-line tool (available in open source and in binary) makes the automation of DUMP, LOAD, and transfer (including transfers between different architectures) a breeze.
The plugin was developed and tested with Sybase versions 12.0, 12.5.3, and 12.5.4 on Solaris, AIX, Linux, and Windows. We do not foresee any problems neither with later versions nor on the less extensively tested platforms.
The plugin consists of a single file named libpipe.so (or libpipe.dll on Windows). The shared library needs to be saved on the server next to the libcompress.so (a similar plugin provided to you by Sybase). The installation is so simple, we don't even include an install program.
Yes, we know your data is important. While we customarily disclaim any and all warranties (including suitability for a particular purpose), we are happy to sell support in addition to the actual software licenses.
We are also monitoring Sybase-related news groups — if you post a question, be sure, your posting has [pipe] in the subject.
The price is $1599 per server.
Yes, our experience and know-how is up for hire. If you'd like a customized backup solution that goes beyond dumping to tape/file-system (such as integrating with an off-site Internet-based backup provider), please, contact us.
No. Unless explicitly stated otherwise, we make no representations regarding any third party(ies) endorsing our products or services. All mentioned trademarks belongs to their respective owners.