Можно ли создать резервную копию базы данных SQL Server, но только для структур и содержимого таблиц (т.е. не включать хранимые процедуры, представления и т. Д.?)
Сценарий:
У нас есть продукт, размещенный в центре обработки данных, с одной уникальной базой данных для каждого клиента.
Многим клиентам мы обязаны ежедневно предоставлять им копии их данных для импорта в их хранилища данных для целей отчетности, которые плохо обслуживаются действующей транзакционной системой.
Итак, в настоящее время мы делаем ежедневное полное резервное копирование производственной базы данных, восстанавливаем его на «промежуточном» сервере, где мы запускаем сценарий очистки для удаления представлений и хранимых процедур (поскольку имеет значение наш IPR на код в Sps / views и т. Д.) а затем мы делаем резервную копию и экспортируем в них.
Это приводит к ежедневной отправке больших баз данных.
Они считают накладные расходы на загрузку и обработку файла резервной копии размером 20 ГБ ежедневно накладными расходами и хотели бы, чтобы мы предоставляли дополнительные резервные копии.
Проблема в том, что если мы делаем полную резервную копию для копирования на промежуточный сервер, это ангилирует отслеживание изменений, и дифференциальная резервная копия содержит все.
Мы попробовали процесс:
Это не работает, потому что дифференциальная базовая линия считается неправильной при восстановлении разности, которую мы отправляем.
Теперь, если бы мы могли сделать какую-то резервную копию, которая не включала бы SP, но оставалась инкрементной, это решило бы проблему.
Повторяйте шаги 5–9 в течение недели / месяца, затем вернитесь к шагу 1.
Если вы хотите сделать резервную копию только структуры ваших таблиц и их содержимого без чего-либо еще, вы не можете использовать SQL Команда резервного копирования.
Структуры таблиц могут быть написаны сценарием, чтобы иметь свою структуру. Что касается их содержимого, вы можете экспортировать его с помощью нескольких инструментов, таких как: Инструмент экспорта / импорта SQL или BCP утилита.
Имейте в виду, что с помощью этого решения вы не сможете восстановить базу данных с ее параметрами и безопасностью, если не создадите сценарий для базы данных. У вас будет только несколько файлов (.xls или .txt) для импорта в уже созданную существующую базу данных. Задача намного тяжелее и не очень удобна.
Если вам нужны все таблицы из базы данных, я предлагаю выполнять регулярное резервное копирование и удалять представления или SP после восстановления. Однако они не занимают слишком много места.
«Резервная копия», как ее называют в мире SQL-серверов, включает в себя все. Он предназначен для загрузки всей базы данных на диск или на магнитную ленту.
Если вы хотите просто получить схему и данные таблицы, вам нужно что-то более близкое к функции «Создание сценариев», которая, как я знаю, есть в SQL 2008 и, возможно, в более ранних версиях. Щелкните правой кнопкой мыши базу данных, нажмите «Задачи», затем «Создать сценарии» и следуйте инструкциям мастера.
Это очень просто, для этого нужно сгенерировать скрипт. Щелкните правой кнопкой мыши имя своей базы данных в обозревателе объектов и выполните следующие действия - Задача> Создать сценарий> Далее> Выбрать определенные объекты базы данных> выбрать таблицу и нажать Далее> Нажмите «Далее»
Появятся всплывающие окна с названием «Дополнительные параметры сценария». Найдите «Тип данных для сценария» в разделе «Общие» и измените его на «Схема и данные». Затем нажмите «Ок».
В SQL Server 6.5 была возможность резервного копирования отдельных таблиц, но в более поздних версиях это было удалено. Регулярное резервное копирование SQL Server создает резервную копию всей базы данных.
Есть какая-то конкретная причина, по которой вам нужна эта функция?