Возможно ли сделать резервную копию и восстановить часть базы данных в sql-сервере?

19

У нас есть база данных sql-server 2005, которую мы регулярно переносим с нашего клиентского сайта на наш. Это занимает много времени, потому что у нас нет прямого соединения, и мы должны передать файл через веб-приложение для передачи файлов. База данных в настоящее время составляет около 10 ГБ, однако нам не нужны все данные - большинство из них находятся в таблицах аудита и таблицах, которые содержат рассчитанные значения, которые могут быть сгенерированы повторно.

Я посмотрел на создание файловой группы для хранения таблиц аудита и надеялся, что смогу просто сделать резервную копию и восстановить основную файловую группу. Я могу сделать резервную копию нормально, но при восстановлении я получаю сообщение о том, что я не восстанавливаю его в той же базе данных. Можно ли восстановить часть базы данных на другом сервере, используя файловые группы? Есть лучший способ это сделать?

Адам Батлер
источник
1
Вы могли бы извлечь пользу из прочтения этого вопроса: наименьшее возможное резервное копирование ... с SQL Server , и особенно ответ Брента.
Мариан
Поскольку это кажется невозможным без большого количества хакерских атак, я думаю, что мы могли бы взглянуть на перемещение всех таблиц журнала аудита в отдельную базу данных
Адам Батлер,
Разве это не требует изменения кода в приложении? Это немного, чтобы просить клиента пройти.
Шон Мелтон

Ответы:

15

Если честно, это проще всего:

  • резервное копирование / восстановление копии локально
  • удалить ненужные данные из копии (с помощью команды DELETE или TRUNCATE TABLE, а не DROP ...)
  • отправить копию

Я не стал бы беспокоиться о файловых группах из-за добавленной вами сложности ...

ГБН
источник
1
Я предлагаю изменить эту недавно восстановленную базу данных на простую модель восстановления. msdn.microsoft.com/en-CA/library/ms189272.aspx
датагод
7

То, как вы говорите, что вам нужна только основная группа файлов, для меня звучит так, что вам нужны только структура базы данных и очень маленький объем данных. Я хотел бы предложить, если вы просто хотите обновить структуру базы данных (объекты, таблицы и т. Д.), Чтобы просто записать в базу данных все объекты. Это можно сделать быстро и легко с помощью PowerShell.

Затем данные, которые вам действительно нужны, которые невозможно восстановить, просто экспортируйте их (сценарий PowerShell может сделать это тоже). Я уверен, что экспортный файл можно затем сжать до небольшого размера, а затем перенести через соединение с вашим сайтом.

Конечно, так же, как и этот, предложение @gbn может быть написано в сценарии, так что вам решать, какой вариант займет наименьшее количество времени.

Шон Мелтон
источник
2

Это возможно с помощью частичного восстановления . Объекты исходной базы данных и файловые группы должны быть организованы таким образом, чтобы это поддерживалось. ВОССТАНОВЛЕНИЕ требует дополнительных конкретных ключевых слов.

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

Майкл Грин
источник
-1

Щелкните правой кнопкой мыши и сгенерируйте сценарии, затем измените имя базы данных на target (USE db).

Объяснил здесь

Jude
источник
Что с этим не так?
Иуда