Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как быстрее передать данные с одного сервера на другой? ms sql 2005->ms sql 2012  [new]
Tray
Member

Откуда:
Сообщений: 138
Выборка делается на 2005ом и инсертится на 2012 через линкд сервер.
но выполняется это все отвратительно долго, еще и по таймауту может отвалиться.

надо перезаливать 10 таблиц (в некоторых миллионы записей) каждую ночь.

мне посоветовали копнуть в сторону bulk insert, но это же сначала надо как-то выгружать данные во внешний файл, а потом уже из него кидать данные на другой сервак...
это все можно сделать автоматом?

посоветуйте что-нибудь на эту тему, пожалуйста.
8 окт 14, 10:41    [16674797]     Ответить | Цитировать Сообщить модератору
 Re: Как быстрее передать данные с одного сервера на другой? ms sql 2005->ms sql 2012  [new]
Glory
Member

Откуда:
Сообщений: 104751
Tray
мне посоветовали копнуть в сторону bulk insert, но это же сначала надо как-то выгружать данные во внешний файл, а потом уже из него кидать данные на другой сервак...
это все можно сделать автоматом?

bcp.exe out ....<file> -S Server1
bcp.exe in ....<file> -S Server2
8 окт 14, 10:45    [16674828]     Ответить | Цитировать Сообщить модератору
 Re: Как быстрее передать данные с одного сервера на другой? ms sql 2005->ms sql 2012  [new]
кириллk
Member

Откуда:
Сообщений: 1062
Tray,

SSIS
у меня 30 000 000 льются до 3 минут
8 окт 14, 10:46    [16674835]     Ответить | Цитировать Сообщить модератору
 Re: Как быстрее передать данные с одного сервера на другой? ms sql 2005->ms sql 2012  [new]
Tray
Member

Откуда:
Сообщений: 138
2 Glory
это все запускать батником на стороне 2005-го сиквела?

кириллk
а можно поподробнее?
какие компоненты ты используешь? какое примерно дерево задач получается...
датафлоу таском все?
8 окт 14, 11:34    [16675186]     Ответить | Цитировать Сообщить модератору
 Re: Как быстрее передать данные с одного сервера на другой? ms sql 2005->ms sql 2012  [new]
Tray
Member

Откуда:
Сообщений: 138
2 Glory
такие вопросы по bcp:
1) можно ли задать пароль для сиквельной учетке, чтобы бцп его не спрашивал каждый раз?
2) обязательно ли создавать форматный файл для выгрузки данных и загрузки, и как это сделать?
нельзя ли какой-нибудь маленький пример?
8 окт 14, 11:40    [16675233]     Ответить | Цитировать Сообщить модератору
 Re: Как быстрее передать данные с одного сервера на другой? ms sql 2005->ms sql 2012  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Tray,

можно BCP
8 окт 14, 11:42    [16675248]     Ответить | Цитировать Сообщить модератору
 Re: Как быстрее передать данные с одного сервера на другой? ms sql 2005->ms sql 2012  [new]
Tray
Member

Откуда:
Сообщений: 138
попробовал создать форматный файл строкой:
bcp bdtemp.dbo.mytable format null -S [192.168.10.2] -U testuser -P password -n -f dep.fmt

где:
bdtemp - БД
mytable - таблица с данными
[192.168.10.2] - sql-сервер
testuser - юзер
password - пароль юзера

сиквел выдал такую ошибку -
"SQLState = 08001, NativeError = 53
Error = [Microsoft][SQL Native Client]Named Pipes Provider: Could not open a connection to SQL Server [53].
SQLState = 08001, NativeError = 53
Error = [Microsoft][SQL Native Client]An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.
SQLState = S1T00, NativeError = 0
Error = [Microsoft][SQL Native Client]Login timeout expired"

подскажите, что я неправильно сделал?
8 окт 14, 12:08    [16675472]     Ответить | Цитировать Сообщить модератору
 Re: Как быстрее передать данные с одного сервера на другой? ms sql 2005->ms sql 2012  [new]
Tray
Member

Откуда:
Сообщений: 138
хотя уже сам разобрался, надо было айпишник сервака без скобок ставить...

еще вопрос такой - при экспорте данных надо ставить параметр -n?
на что он реально влияет?
8 окт 14, 12:27    [16675624]     Ответить | Цитировать Сообщить модератору
 Re: Как быстрее передать данные с одного сервера на другой? ms sql 2005->ms sql 2012  [new]
o-o
Guest
не надо скобки
-S [192.168.10.2] -> -S192.168.10.2
8 окт 14, 12:28    [16675631]     Ответить | Цитировать Сообщить модератору
 Re: Как быстрее передать данные с одного сервера на другой? ms sql 2005->ms sql 2012  [new]
o-o
Guest
Tray
при экспорте данных надо ставить параметр -n?
на что он реально влияет?


надо.
если совсем никакой параметр не задать, пунктуально спросит ВАС о типе каждой колонки.
если задать -c, то все станет типа SQLCHAR.
8 окт 14, 12:35    [16675696]     Ответить | Цитировать Сообщить модератору
 Re: Как быстрее передать данные с одного сервера на другой? ms sql 2005->ms sql 2012  [new]
Tray
Member

Откуда:
Сообщений: 138
скажите, а бцпшкой загружать данные лучше с другого сервера, куда надо эти данные залить или можно удаленно?
я имею в виду в смысле скорости загрузки
8 окт 14, 13:18    [16676002]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить