Назад | Перейти на главную страницу

Резервное копирование базы данных SQL Server 2008 R2 без хранимых процедур

Можно ли создать резервную копию базы данных SQL Server, но только для структур и содержимого таблиц (т.е. не включать хранимые процедуры, представления и т. Д.?)

Сценарий:

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

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

Итак, в настоящее время мы делаем ежедневное полное резервное копирование производственной базы данных, восстанавливаем его на «промежуточном» сервере, где мы запускаем сценарий очистки для удаления представлений и хранимых процедур (поскольку имеет значение наш IPR на код в Sps / views и т. Д.) а затем мы делаем резервную копию и экспортируем в них.

Это приводит к ежедневной отправке больших баз данных.

Они считают накладные расходы на загрузку и обработку файла резервной копии размером 20 ГБ ежедневно накладными расходами и хотели бы, чтобы мы предоставляли дополнительные резервные копии.

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

Мы попробовали процесс:

  1. День 1: Полная резервная копия
  2. Восстановить постановку
  3. Выполнить дезинфекцию
  4. COPY_ONLY полная резервная копия.
  5. Отправить заказчику
  6. День 2: полная резервная копия COPY_ONLY.
  7. Восстановить постановку
  8. Выполнить дезинфекцию
  9. Дифференциальное резервное копирование
  10. Отправить заказчику

Это не работает, потому что дифференциальная базовая линия считается неправильной при восстановлении разности, которую мы отправляем.

Теперь, если бы мы могли сделать какую-то резервную копию, которая не включала бы SP, но оставалась инкрементной, это решило бы проблему.

  1. Резервное копирование производственной базы данных.
  2. Восстановить как staging_extract.
  3. Удалите SP и т.д. (для этого у нас есть сценарий).
  4. Сделайте полную резервную копию, отправьте ее заказчику.
  5. Резервное копирование производственной базы данных.
  6. Восстановить как staging_master
  7. Используйте Redgate SQL Data Compare для сравнения данных и копирования измененных данных в staging_extract
  8. Сделайте дифференциальную резервную копию staging_extract
  9. Отправьте это покупателю.

Повторяйте шаги 5–9 в течение недели / месяца, затем вернитесь к шагу 1.

Если вы хотите сделать резервную копию только структуры ваших таблиц и их содержимого без чего-либо еще, вы не можете использовать SQL Команда резервного копирования.

Структуры таблиц могут быть написаны сценарием, чтобы иметь свою структуру. Что касается их содержимого, вы можете экспортировать его с помощью нескольких инструментов, таких как: Инструмент экспорта / импорта SQL или BCP утилита.

Имейте в виду, что с помощью этого решения вы не сможете восстановить базу данных с ее параметрами и безопасностью, если не создадите сценарий для базы данных. У вас будет только несколько файлов (.xls или .txt) для импорта в уже созданную существующую базу данных. Задача намного тяжелее и не очень удобна.

Если вам нужны все таблицы из базы данных, я предлагаю выполнять регулярное резервное копирование и удалять представления или SP после восстановления. Однако они не занимают слишком много места.

«Резервная копия», как ее называют в мире SQL-серверов, включает в себя все. Он предназначен для загрузки всей базы данных на диск или на магнитную ленту.

Если вы хотите просто получить схему и данные таблицы, вам нужно что-то более близкое к функции «Создание сценариев», которая, как я знаю, есть в SQL 2008 и, возможно, в более ранних версиях. Щелкните правой кнопкой мыши базу данных, нажмите «Задачи», затем «Создать сценарии» и следуйте инструкциям мастера.

Это очень просто, для этого нужно сгенерировать скрипт. Щелкните правой кнопкой мыши имя своей базы данных в обозревателе объектов и выполните следующие действия - Задача> Создать сценарий> Далее> Выбрать определенные объекты базы данных> выбрать таблицу и нажать Далее> Нажмите «Далее»

Появятся всплывающие окна с названием «Дополнительные параметры сценария». Найдите «Тип данных для сценария» в разделе «Общие» и измените его на «Схема и данные». Затем нажмите «Ок».

В SQL Server 6.5 была возможность резервного копирования отдельных таблиц, но в более поздних версиях это было удалено. Регулярное резервное копирование SQL Server создает резервную копию всей базы данных.

Есть какая-то конкретная причина, по которой вам нужна эта функция?