У меня есть база данных в SQL Server 2008 R2, в которой используется простая модель восстановления.Sql сервер SMO частичное резервное копирование
База данных содержит файловую группу, в которой находится основная часть данных (> 20 ГБ изображений). Эти изображения не являются критическими для приложения.
Я хочу сделать резервную копию базы данных с C# с помощью SQL Server SMO. Но я хочу только создать резервную копию структуры базы данных (первичная файловая группа, все, кроме несущественных изображений). Я хочу сделать это, чтобы размер резервного копирования был небольшим.
В моем коде на C# я устанавливаю действие резервного копирования на BackupActionType.Files
, и я включаю в себя только основную файловую группу PRIMARY внутри коллекции DatabaseFileGroups
, поэтому она должна сохранять только структуру базы данных, а не изображения.
Но когда я запускаю подпорку, я получаю это исключение:
System.Data.SqlClient.SqlError: The primary filegroup cannot be backed up as a file backup because the database is using the SIMPLE recovery model. Consider taking a partial backup by specifying READ_WRITE_FILEGROUPS.
Мой вопрос, как я могу указать READ_WRITE_FILEGROUPS
из внутри C# код, с помощью SQL Server SMO? Исключение показывает мне, как это сделать в T-SQL, но я хочу сделать то же самое в C#.
Вот код, я использую:
class Program
{
static string DbName = PATH_TO_DATABASE;
static string connString = CONNECTION_STRING;
static void Main(string[] args)
{
ServerConnection serverConn = new ServerConnection();
serverConn.ConnectionString = connString;
Server server = new Server(serverConn);
Backup backup = new Backup() { Database = DbName };
backup.Action = BackupActionType.Files;
backup.DatabaseFileGroups.Add("PRIMARY");
backup.Devices.AddDevice("D:\\backup.bak", DeviceType.File);
backup.Initialize = true;
backup.ContinueAfterError = false;
backup.Incremental = false;
backup.Complete += (snd, e) => { Console.WriteLine("Complete"); };
backup.PercentComplete += (snd, e) => { Console.WriteLine("Percent " + e.Percent); };
backup.SqlBackup(server);
serverConn.Disconnect();
}
}
«Но я только хочу сделать резервную копию структуры базы данных «... Итак, в основном ваш вопрос переводит на создание сценария для создания базы данных? Или действительно ли это должна быть резервная копия без содержимого таблицы? –
Должна быть резервная копия, содержащая содержимое таблицы, но без изображений. – Ove
Я ничего не вижу в интерфейсе SMO, который поддерживает добавление опции READ_WRITE_FILEGROUPS. Возможно, вам лучше создать резервные копии с использованием T-SQL. –