如何在将数据库备份保存到磁盘之前压缩它?
How to compress a DB backup before saving it to the disk?
我正在研究将备份并将所述数据库备份保存到指定位置的东西。我想知道是否有办法在 .bak
文件生成后对其进行压缩,但在我实际将其保存到目的地之前未获取备份、压缩 .bak
然后删除未压缩版本.
SqlConnection objconnection = new SqlConnection(connString);
ServerConnection con = new ServerConnection(objconnection.DataSource.ToString());
Server server = new Server(con);
Backup source = new Backup();
source.Action = BackupActionType.Database;
source.Database = dbName;
BackupDeviceItem destination = new BackupDeviceItem(dbName+".bak" , DeviceType.File);
//-->Zip the backup prior to actually saving backup
source.Devices.Add(destination);
source.SqlBackup(server);
如果您创建了一个存储过程,然后从您的代码中调用它应该可以工作,请查看 method 2,其中说明了如何通过使用 transact SQL 命令
SqlServer 备份产品支持压缩。
如果您采用此方法,您将受益于能够直接从磁盘上的媒体恢复,而不必先扩展媒体。
显然这是不可能的,我必须先创建 .BAK 备份文件,然后 compress/zip 它才能发送。
我正在研究将备份并将所述数据库备份保存到指定位置的东西。我想知道是否有办法在 .bak
文件生成后对其进行压缩,但在我实际将其保存到目的地之前未获取备份、压缩 .bak
然后删除未压缩版本.
SqlConnection objconnection = new SqlConnection(connString);
ServerConnection con = new ServerConnection(objconnection.DataSource.ToString());
Server server = new Server(con);
Backup source = new Backup();
source.Action = BackupActionType.Database;
source.Database = dbName;
BackupDeviceItem destination = new BackupDeviceItem(dbName+".bak" , DeviceType.File);
//-->Zip the backup prior to actually saving backup
source.Devices.Add(destination);
source.SqlBackup(server);
如果您创建了一个存储过程,然后从您的代码中调用它应该可以工作,请查看 method 2,其中说明了如何通过使用 transact SQL 命令
SqlServer 备份产品支持压缩。
如果您采用此方法,您将受益于能够直接从磁盘上的媒体恢复,而不必先扩展媒体。
显然这是不可能的,我必须先创建 .BAK 备份文件,然后 compress/zip 它才能发送。