Резервное копирование на уровне таблицы

Как выполнить резервное копирование на уровне таблицы (дамп) в MS SQL Server 2005/2008?

Ответ 1

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

Что вы можете сделать, так как вы предложили экспортировать данные таблицы в файл CSV. Теперь, чтобы получить определение вашей таблицы, вы можете "Script out" CREATE TABLE script.

Это можно сделать в SQL Server Management Studio, используя:

щелкните правой кнопкой мыши Database > Tasks > Generate Script

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

чтобы получить DATA вместе с только schema, вам нужно выбрать Advanced на вкладке параметров набора сценариев, а в секции GENERAL установите Types of data to script выберите Schema and Data

Надеюсь, что это поможет, но не стесняйтесь обращаться ко мне напрямую, если вам требуется дополнительная помощь.

Ответ 2

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

для экспорта:

bcp.exe "select * from [MyDatabase].dbo.Customer " queryout "Customer.bcp" -N -S localhost -T -E

для импорта:

bcp.exe [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000

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

Ответ 3

Вот шаги, которые вам нужны. Шаг 5 важен, если вы хотите данные. Шаг 2 - это выбор отдельных таблиц.

версия EDIT не вполне читаема... здесь полноразмерное изображение http://i.imgur.com/y6ZCL.jpg

Here are the steps from John Sansom's answer

Ответ 4

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

select * into newtablename from oldtablename

Чтобы скопировать только структуру таблицы, используйте следующий запрос.

select * into newtablename from oldtablename where 1 = 2

Ответ 5

Это похоже на решение qntmfred, но с помощью прямого дампа таблицы. Эта опция немного быстрее (см. Документы BCP):

для экспорта:

bcp "[MyDatabase].dbo.Customer " out "Customer.bcp" -N -S localhost -T -E

для импорта:

bcp [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000

Ответ 6

Если вы ищете что-то вроде MySQL DUMP, то хорошие новости: SQL Server 2008 Management Studio добавила эту способность.

В SSMS просто щелкните правой кнопкой мыши на соответствующей БД и выберите "Задачи" > "Сгенерировать скрипты". Затем на 2-й странице мастера параметров убедитесь, что выберите, что вы хотели бы также использовать сценарии с данными, и он будет генерировать то, что составляет DUMP файл для вас.

Ответ 7

Вы можете использовать бесплатный Мастер публикации базы данных от Microsoft для создания текстовых файлов со сценариями SQL (CREATE TABLE и INSERT INTO).

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

Ответ 8

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

Ответ 9

Я не знаю, будет ли это соответствовать описанной здесь проблеме. Я должен был сделать пошаговое резервное копирование таблицы! (Необходимо копировать только новые вставленные данные). Я использовал для создания пакета DTS, где.

  • Я беру новые записи (на основе столбца состояния) и передавал данные в пункт назначения. (Через "Задача преобразования данных" )

  • Затем я просто обновил столбец "статус". (Через "Выполнять задачу SQL" )

Мне нужно было правильно исправить "рабочий процесс".

Ответ 10

Каждая модель восстановления позволяет создавать резервные копии полная или частичная база данных SQL Server или отдельных файлов или файловых групп базы данных. Резервные копии на уровне таблиц не может быть создан.

От: Обзор резервного копирования (SQL Server)

Ответ 11

Используйте мастер импорта и экспорта SQL Server.

  • SSMS
  • Откройте движок базы данных
  • Alt. щелкните базу данных, содержащую таблицу, чтобы экспортировать
  • Выберите "Задачи"
  • Выберите "Экспорт данных..."
  • Следуйте указаниям мастера

Ответ 12

Вероятно, у вас есть два варианта: SQL Server не поддерживает резервное копирование таблиц. Оба будут начинаться с создания сценариев создания таблицы. Затем вы можете использовать опцию Script Table - INSERT, которая будет генерировать множество операторов вставки, или вы можете использовать службы Integration (DTS с 2000) или аналогичные для экспорта данных как CSV или аналогичные.

Ответ 14

Если вы хотите восстановить таблицу после того, как кто-то ошибочно удалил строки из нее, вы могли бы взглянуть на моментальные снимки базы данных. Вы можете легко восстановить таблицу (или подмножество строк) из моментального снимка. См. http://msdn.microsoft.com/en-us/library/ms175158.aspx

Ответ 15

Бесплатное приложение под названием SqlTableZip выполнит свою работу. В принципе, вы пишете любой запрос (который, конечно, также может быть [select * from table]), и приложение создает сжатый файл со всеми данными, которые могут быть восстановлены позже.

Ссылка: http://www.doccolabs.com/products_sqltablezip.html

Ответ 16

Handy Backup автоматически создает файлы дампа с MS SQL Server, включая MSSQL 2005/2008. Эти дампы представляют собой двоичные файлы на уровне таблицы, содержащие точные копии конкретного содержимого базы данных.

Чтобы сделать простой дамп с Handy Backup, следуйте следующей инструкции:

  • Установите Handy Backup и создайте новую задачу резервного копирования.
  • Выберите "MSSQL" на шаге 2 в качестве источника данных. В новом окне отметьте базу данных для резервного копирования.
  • Выберите один из разных пунктов назначения, где вы будете хранить резервные копии.
  • На шаге 4 выберите опцию "Полная". Настройте отметку времени, если вам это нужно.
  • Пропустите шаг 5, если у вас нет необходимости сжимать или шифровать результирующий файл дампа.
  • На шаге 6 настройте расписание задачи для создания дампов периодически (иначе запустите задачу вручную).
  • Снова пропустите Шаг 7 и дайте своей задаче имя на шаге 8. Вы закончили задачу!

Теперь запустите новую задачу, щелкнув значок перед его именем или дождитесь запланированного времени. Handy Backup автоматически создаст дамп для вашей базы данных. Затем откройте место для резервного копирования. Вы найдете папку (или пару папок) с резервными копиями MS SQL. Любая такая папка будет содержать файл дампа на уровне таблицы, состоящий из нескольких бинарных таблиц и настроек, сжатых в один ZIP.

Другие базы данных

Handy Backup может сохранять дампы для MySQL, MariaDB, PostgreSQL, Oracle, IBM DB2, Lotus Notes и любой общей базы данных SQL с драйвером ODBC. Некоторые из этих баз данных требуют дополнительных шагов для установления соединений между СУБД и Handy Backup.

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