Резервное копирование БД SQL 2008 для восстановления на SQL 2000 .NET - PullRequest
1 голос
/ 10 февраля 2010

У нас есть клиенты, заинтересованные в отправке своих данных Sql 2008 другим клиентам с помощью SQL 2000. Теперь очевидно, что в настоящее время это не работает, поэтому я пытаюсь создать «общий» процесс резервного копирования, который позволяет нам выполнять резервное копирование и восстановление наших данных на Server 2000 и выше (поскольку SQL2000 является наименее распространенным знаменателем среди всех или клиентов). Прямо сейчас мы создаем наши резервные копии следующим образом (C #):

 Server server = new Server( GetServerConnection( serverName, userName, password ) );
 Backup backup = new Backup();
 backup.Action = BackupActionType.Database;
 backup.Database = GetDatabasePrefix() + databaseName;
 backup.Devices.AddDevice( fileName, DeviceType.File );
 backup.Initialize = true;

 backup.SqlBackup( server );

Мой первый вопрос: есть ли способ «заставить» резервное копирование работать как SQL 2000, даже если база данных - SQL 2005 или 2008?

Кроме того, мы думали избежать этого, используя процедуру bcp в базе данных, чтобы упаковать и распаковать таблицы и сжать их вместе. В процессе zip я бы поместил флаг заголовка, чтобы объявить его «общей» резервной копией. Это кажется разумным, или есть более простой способ сделать это? Поскольку приложение не зависит от сервера, все столбцы и таблицы должны быть одинаковыми. Спасибо за помощь!

Ответы [ 2 ]

5 голосов
/ 10 февраля 2010

Если вы переносите только данные, BCP или пользовательский пакет служб SSIS выглядят как ваши наиболее вероятные варианты, которые можно использовать повторно. Возможно, вы захотите взглянуть на мастера импорта / экспорта служб SSIS, он довольно прост в использовании и может выполнить то, что вы хотите.

2 голосов
/ 10 февраля 2010

Невозможно восстановить резервную копию с более новой версии SQL Server до более старой версии.

Вы можете создавать сценарии SQL SSMS 2000 из SSMS 2008:

  • Открыть Инструменты -> Параметры в SSMS 2008
  • Перейдите в Обозреватель объектов SQL Server -> Сценарии
  • Установить "Скрипт для серверной версии" на 2000
  • Щелкните правой кнопкой мыши по своей базе данных, выберите Задачи -> Создать сценарии
  • Скрипт всех объектов в вашей базе данных
  • Выполнить скрипт на вашем сервере 2000

Затем свяжите серверы вместе и скопируйте данные как:

insert ChefDb.dbo.MyTable from ChefServer.ChefDb.dbo.MyTable

В качестве альтернативы рассмотрите возможность покупки RedGate SQL Data Compare .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...