Як зробити резервне копіювання (дамп) на рівні таблиці в MS SQL Server 2005/2008?
Як зробити резервне копіювання (дамп) на рівні таблиці в MS SQL Server 2005/2008?
Відповіді:
Ви не можете використовувати BACKUP DATABASE
команду для резервного копіювання однієї таблиці, якщо, звичайно, таблиця, про яку йде мова, не призначена для її власної FILEGROUP
.
Що ви можете зробити, як ви запропонували, - експортувати дані таблиці у файл CSV. Тепер, щоб отримати визначення вашої таблиці, ви можете "виписати" CREATE TABLE
сценарій.
Ви можете зробити це в SQL Server Management Studio, виконавши:
клацніть правою кнопкою миші База даних> Завдання> Створити сценарій
Потім можна вибрати таблицю, яку потрібно виписати, а також включити будь-які пов’язані об’єкти, такі як обмеження та індекси.
для того, щоб ужитися DATA
лише з schema
, вам слід вибрати Advanced
на вкладці параметри встановлених сценаріїв, а в GENERAL
розділі встановити Types of data to script
вибірSchema and Data
Сподіваюся, це допоможе, але не соромтеся зв’язуватися зі мною безпосередньо, якщо вам потрібна подальша допомога.
Advanced
на вкладці параметри встановлених сценаріїв, а в розділі ЗАГАЛЬНО встановити Types of data to script
вибір Schema and Data
. Це було не очевидно вперше, коли я це зробив.
Я використовую утиліту масового копіювання для створення резервних копій на рівні таблиці
експортувати:
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.
Ось кроки, які вам потрібні. Крок 5 важливий, якщо ви хочете отримати дані. Крок 2 - це де ви можете вибрати окремі таблиці.
Версія стека EDIT не зовсім читабельна ... ось зображення в повному розмірі http://i.imgur.com/y6ZCL.jpg
Ви можете запустити наведений нижче запит, щоб зробити резервну копію існуючої таблиці, яка створить нову таблицю з існуючою структурою старої таблиці разом із даними.
select * into newtablename from oldtablename
Щоб скопіювати лише структуру таблиці, використовуйте запит нижче.
select * into newtablename from oldtablename where 1 = 2
Це схоже на рішення qntmfred , але за допомогою прямого дампа таблиці. Цей варіант трохи швидший (див. BCP docs ):
експортувати:
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
Якщо ви шукаєте щось на зразок MySQL DUMP
, то хороші новини: SQL Server 2008 Management Studio додав цю можливість.
У SSMS просто клацніть правою кнопкою миші на відповідній БД і виберіть Завдання> Створити сценарії . Потім на 2-й сторінці майстра параметрів обов’язково виберіть, чи хочете ви також скриптувати дані , і він згенерує DUMP
для вас кількість файлів.
Створіть нову файлову групу, поставте на неї цю таблицю та зробіть резервну копію лише цієї файлової групи.
Ви можете використовувати безкоштовний Майстер публікації баз даних від Microsoft для створення текстових файлів за допомогою сценаріїв SQL (СТВОРИТИ ТАБЛИЦЮ та ВСТАВИТИ В).
Ви можете створити такий файл для однієї таблиці, і ви можете "відновити" повну таблицю, включаючи дані, просто запустивши скрипт SQL.
Не знаю, чи відповідатиме це проблемі, описаній тут. Мені довелося зробити додаткову резервну копію таблиці! (Копіювати слід лише нові вставлені дані). Раніше я розробляв пакет DTS, де.
Я отримую нові записи (на основі стовпця "статус") і передаю дані до місця призначення. (Через "Завдання перетворення даних")
Потім я просто оновив стовпець "статус". (Через 'Виконати завдання SQL')
Мені довелося правильно виправити "робочий процес".
Кожна модель відновлення дозволяє створювати резервні копії цілої або часткової бази даних SQL Server або окремих файлів або файлових груп бази даних. Неможливо створити резервні копії на рівні таблиці .
Можливо, у вас є два варіанти, оскільки SQL Server не підтримує резервне копіювання таблиць. І те, і інше почнеться зі створення сценаріїв створення таблиці. Тоді ви можете використовувати опцію Таблиця сценаріїв - ВСТАВИТИ, яка генерує багато операторів вставки, або ви можете скористатися службами інтеграції (DTS з 2000) або подібними для експорту даних як CSV чи подібні.
BMC Recovery Manager (раніше відомий як SQLBacktrack) дозволяє відновити окремі об'єкти в базі даних (так звані таблиці) в момент часу. Це недешево, але робить фантастичну роботу: http://www.bmc.com/products/proddocview/0,2832,19052_19429_70025639_147752,00.html
http://www.bmc.com/products/proddocview/0,2832,19052_19429_67883151_147636,00.html
Якщо ви прагнете мати можливість відновити таблицю після того, як хтось помилково видалив з неї рядки, можливо, ви можете переглянути фотографії баз даних. Ви можете досить легко відновити таблицю (або підмножину рядків) зі знімка. Див. Http://msdn.microsoft.com/en-us/library/ms175158.aspx
Безкоштовний додаток під назвою SqlTableZip виконає роботу. В основному, ви пишете будь-який запит (який, звичайно, також може бути [вибрати * з таблиці]), і програма створює стислий файл із усіма даними, які можна відновити пізніше.
Посилання: http://www.doccolabs.com/products_sqltablezip.html
Handy Backup автоматично робить дамп файлів з MS SQL Server, включаючи MSSQL 2005/2008. Ці дампи - це двійкові файли на рівні таблиці, що містять точні копії певного вмісту бази даних.
Щоб зробити простий дамп за допомогою Handy Backup, дотримуйтесь наступних інструкцій:
Тепер запустіть нове завдання, натиснувши піктограму перед її назвою, або дочекайтеся запланованого часу. Handy Backup автоматично створить дамп для вашої бази даних. Потім відкрийте резервне місце призначення. Ви знайдете папку (або кілька папок) із вашими резервними копіями MS SQL. Будь-яка така папка буде містити файл дампа рівня таблиці, що складається з деяких двійкових таблиць та налаштувань, стиснених в єдиний ZIP.
Handy Backup може зберігати дампи для MySQL, MariaDB, PostgreSQL, Oracle, IBM DB2, Lotus Notes та будь-якої загальної бази даних SQL, що має драйвер ODBC. Деякі з цих баз даних вимагають додаткових кроків для встановлення зв’язків між СУБД та Handy Backup.
Описані вище інструменти часто скидають бази даних SQL як послідовність команд SQL на рівні таблиці, роблячи ці файли готовими до будь-яких необхідних ручних змін.