Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Частичное восстановление данных, как сделать? / 11 сообщений из 11, страница 1 из 1
04.07.2018, 12:27
    #39669417
abrashka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичное восстановление данных, как сделать?
День добрый!
Есть не мало баз размером порядка 100-300Гб, часто программерам необходимо "поковыряться" в данных. Делать это напрямую у клиента как-то не очень... Тащить полный бекап, ресторить и т.п. тоже не совсем логично.
В существующих базах большую часть объема занимают таблицы логов и еще всякие "бесполезные" данные. Поэтому возник вопрос сделать процесс, который может скопировать выбранные программером таблицы, чтоб их можно было легко перенести на тестовый сервер и восстановить на нем данные?
Может есть какой-то готовый функционал или инструменты, которые могут справиться с задачей кроме как select * into... from ...?

Речь идет о sql 2016 standard edition.

Все данные находятся на одном партишине.

Спасибо!
...
Рейтинг: 0 / 0
04.07.2018, 12:31
    #39669420
aleksrov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичное восстановление данных, как сделать?
abrashka,

Мастер импорта\экспорта вам в помощь
...
Рейтинг: 0 / 0
04.07.2018, 13:50
    #39669477
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичное восстановление данных, как сделать?
abrashka,

Integration Services, создаете пакет, потом одним кликом данные скачиваете.
Повозиться придется, конечно, ввиду внешних и автоключей скрипты отключения - включения создать в пакете.
...
Рейтинг: 0 / 0
04.07.2018, 14:54
    #39669526
abrashka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичное восстановление данных, как сделать?
Владислав Колосов,

спасибо!
Думал об этом, но на разных базах разные версии таблиц. Поэтому либо писать динамическое создание таблиц и их заполнение, либо...
поэтому и хотелось бы другое решение, типа выборочного бэкапа и восстановления.
...
Рейтинг: 0 / 0
04.07.2018, 16:40
    #39669598
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичное восстановление данных, как сделать?
abrashkaпоэтому и хотелось бы другое решение, типа выборочного бэкапа и восстановления.Вам же надо вручную определять, какие данные нужно переносить, а какие не нужно? Тогда это придётся указывать, независимо от того, как будет называться такой механизм: если бы бакап мог бакапить только выбранные таблицы, то их всё равно придётся указывать вручную.

Но самое простое - это всё таки предоставлять девелоперам копии баз, заодно и бакап будет проверяться.
...
Рейтинг: 0 / 0
04.07.2018, 16:52
    #39669610
abrashka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичное восстановление данных, как сделать?
alexeyvg, Ну имелось в виду, что названия таблиц которые нужно скопировать могут передаваться как параметр в процедуру.
На данный момент так и делаем, перетаскиваем бэкапы, но ингода приходится тянуть 300 Гига через океан, чтоб посмотреть какую-то мелочь.
...
Рейтинг: 0 / 0
04.07.2018, 18:15
    #39669642
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичное восстановление данных, как сделать?
abrashkaМожет есть какой-то готовый функционал или инструменты, которые могут справиться с задачей кроме как select * into... from ...?


есть, называется batch file, t-sql & BCP OUT

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

Код: sql
1.
bcp [Database].[dbo].[myTable] OUT X:\BCP_OUT\myTable.bcp -T -n



выходные файлы заархивировать по необходимости.


И, в финале, попросить отправить вам архив.
...
Рейтинг: 0 / 0
04.07.2018, 18:20
    #39669647
abrashka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичное восстановление данных, как сделать?
komrad,
Спасибо! Буду пробовать
...
Рейтинг: 0 / 0
05.07.2018, 09:53
    #39669832
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичное восстановление данных, как сделать?
komradесть, называется batch file, t-sql & BCP OUT

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

Код: sql
1.
bcp [Database].[dbo].[myTable] OUT X:\BCP_OUT\myTable.bcp -T -n

Только уж не -T, хотя бы чтоб не было проблем с спецсимволами.

Такой способ понятен, но человек же ищет такую штуку, что бы просто список таблиц передать, и опа, скопировано.
...
Рейтинг: 0 / 0
05.07.2018, 10:45
    #39669871
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичное восстановление данных, как сделать?
alexeyvgkomrad
Код: sql
1.
bcp [Database].[dbo].[myTable] OUT X:\BCP_OUT\myTable.bcp -T -n

Только уж не -T, хотя бы чтоб не было проблем с спецсимволами.


проблем не будет
-T - это виндовая аутентификация
-n - это бинарный формат

BCP /?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
C:\Users\komrad>bcp /?
usage: bcp {dbtable | query} {in | out | queryout | format} datafile
  [-m maxerrors]            [-f formatfile]          [-e errfile]
  [-F firstrow]             [-L lastrow]             [-b batchsize]
  [-n native type]          [-c character type]      [-w wide character type]
  [-N keep non-text native] [-V file format version] [-q quoted identifier]
  [-C code page specifier]  [-t field terminator]    [-r row terminator]
  [-i inputfile]            [-o outfile]             [-a packetsize]
  [-S server name]          [-U username]            [-P password]
  [-T trusted connection]   [-v version]             [-R regional enable]
  [-k keep null values]     [-E keep identity values]
  [-h "load hints"]         [-x generate xml format file]
  [-d database name]        [-K application intent]  [-l login timeout]

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

на мой взгляд, под такое описание попадает параметризированный батник с вызовом BCP внутри

Примерно так:
батник bcp_out.bat
Код: plaintext
bcp [master].dbo.%1 out .\%1.dat -S ВАШСИКВЕЛ -T -n

вызов
Код: plaintext
bcp_out.bat sysdatabases
...
Рейтинг: 0 / 0
05.07.2018, 11:28
    #39669914
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Частичное восстановление данных, как сделать?
komradalexeyvgТолько уж не -T, хотя бы чтоб не было проблем с спецсимволами.


проблем не будет
-T - это виндовая аутентификация
-n - это бинарный форматОй, да, по привычке подумал, что -T это текстовый формат.
Да, вот с -n, и последующей архивацией, я как раз передавал данные на другой сервер (в архивную базу), хороший способ.

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

Примерно так:Хе, а таблицу создать? :-)
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Частичное восстановление данных, как сделать? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]