如何在.net中拆分大型SQL数据库备份文件?

问题描述 投票:0回答:2

我正在备份和还原SQL数据库。我是新手,我有一个与备份过程有关的问题。我有SQL数据库,并且正在使用BACKUPRESTORE类来执行数据库的备份和还原。

我想使用分割备份使程序更高效。我有aprx 15至20 GB的数据。因此,我想将备份文件分割为指定的限制,例如8-10 GB。我可以使用以下SQL语句执行此操作:

BACKUP DATABASE AdventureWorks
TO  DISK = 'C:\Backup\MultiFile\AdventureWorks1.bak',
    DISK = 'C:\Backup\MultiFile\AdventureWorks2.bak',
    DISK = 'C:\Backup\MultiFile\AdventureWorks3.bak'
GO 

但是我想通过使用Microsoft.SqlServer.Management.Smo.Backup类来做到这一点。我想获取备份文件的大小。因为如果数据库大小超过10 GB,我的标准是分割文件,否则它将不会分割文件。所以我的问题是进行备份时如何获取数据库的大小。

.net sql backup restore
2个回答
1
投票

如果您的原始查询像您所说的那样工作(我不知道它是否可以那样工作,您只需要将其他设备添加到Backup对象中

这应该是等效的SMO代码

var server = new Server(/*...*/);
var backup = new Backup();

backup.Action = BackupActionType.Database;
backup.Database = "AdventureWorks";

backup.Devices.AddDevice(@"C:\Backup\MultiFile\AdventureWorks1.bak",DeviceType.File);
backup.Devices.AddDevice(@"C:\Backup\MultiFile\AdventureWorks2.bak",DeviceType.File);
backup.Devices.AddDevice(@"C:\Backup\MultiFile\AdventureWorks3.bak",DeviceType.File);

backup.SqlBackup(server);

0
投票

您是否尝试过在BlockSize对象上设置BlockSize

Backup
© www.soinside.com 2019 - 2024. All rights reserved.