A command-line utilty that does local SQL Server backups to STDOUT/STDIN.
sqlpipe backup "database" [options]
Options:
-q Quiet, don't print messages to STDERR
-i "instancename"
-f "file" Write/read file instead of STDOUT/STDIN
NOTE: restore currently does not work
Basic backup:
sqlpipe backup AdventureWorks > AdventureWorks.bak
Backup from named instance SQLEXPRESS:
sqlpipe backup AdventureWorks -i SQLEXPRESS > AdventureWorks.bak
Backup with gzip compression (assumes 7-Zip's 7z.exe is in %PATH%
):
sqlpipe backup AdventureWorks | 7z a -si AdventureWorks.gz
SqlPipe itself can only connect to a local SQL Server, but by using something like Sysinternals PSExec you can execute it remotely like so:
psexec \\dbserver -cv sqlpipe backup AdventureWorks > C:\Backups\AdventureWorks.bak
Note that in this example that C:\Backups\Inventory.bak
refers to a location on your machine not the remote server. Yes, the backup data was piped over the network!
To write to a remote file locaton use the -f
option:
psexec \\dbserver -cv sqlpipe backup AdventureWorks -f C:\Backups\AdventureWorks.bak
Or a central network location:
psexec \\dbserver -u domain\user -p P@55w0rd -cv sqlpipe backup AdventureWorks -f \\fileserver\Backups\AdventureWorks.bak
See https://github.com/duncansmart/sqlpipe/releases
Uses SQL Server's Virtual Backup Device Interface as detailed in the SQL Server 2005 Virtual Backup Device Interface (VDI) Specification. It's not a million miles away from the simple.cpp
example there.