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

Откуда: Саратов
Сообщений: 779
Есть база, настроенная на закачку маленьких баз access c филиалов.
Сделано так - настроен Linked Server к odbc. В odbc меняется база.
Когда в odbc меняется база, linked server какое-то время помнит старое подключение.

Есть какая-нибудь команда очистки кеша linked server?
9 фев 14, 23:43    [15543920]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
Glory
Member

Откуда:
Сообщений: 104751
refreg
Есть какая-нибудь команда очистки кеша linked server?

Нет
10 фев 14, 10:49    [15544885]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
refreg
Есть база, настроенная на закачку маленьких баз access c филиалов.
Сделано так - настроен Linked Server к odbc. В odbc меняется база.
А наобророт сделать не пробовали?
Из каждого отдельного "филиального" aссесс'а периодически подключаться к общей базе данных?
10 фев 14, 12:02    [15545345]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
refreg
Member

Откуда: Саратов
Сообщений: 779
sphinx_mv
refreg
Есть база, настроенная на закачку маленьких баз access c филиалов.
Сделано так - настроен Linked Server к odbc. В odbc меняется база.
А наобророт сделать не пробовали?
Из каждого отдельного "филиального" aссесс'а периодически подключаться к общей базе данных?

Возможно, что-то типа этого я сделаю, если на меня повесят эту муть постоянно. Сейчас надо просто закачать (не моя работа, дали инструкцию - сказали сделать, в виду отсутствия ответственного).

Есть два варианта:
1) перезапускать сервер (с ним никто не работает, пока не закачаны все базы). Но все равно муторно.
2) На linked server правой кнопкой policies->delete health states - что это такое? я не знаю. Можно ли это сделать какой-либо командой?
10 фев 14, 13:02    [15545747]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
Glory
Member

Откуда:
Сообщений: 104751
3) Не использовать linked server. Использовать ad hoc distributed queries - OPENROWSET/OPENDATASOURCE с указанием пути к каждому из файлов access.

4) Не использовать TSQQL вообще. Использовать SSIS(DTS)
10 фев 14, 13:08    [15545777]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
Glory
3) Не использовать linked server. Использовать ad hoc distributed queries - OPENROWSET/OPENDATASOURCE с указанием пути к каждому из файлов access.
Если меня не подводит склероз, переменные в параметрах тут не поддерживаются, и для автоматизации множественных однотипных операций придется сначала "склеивать" одну большую строку с полным текстом команды для динамического SQL для каждого файла access (по списку)... Использовать копи-паст и большие простыни скриптов - не кучеряво...
Glory
4) Не использовать TSQQL вообще. Использовать SSIS(DTS)
50/50
10 фев 14, 13:22    [15545885]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
Glory
Member

Откуда:
Сообщений: 104751
sphinx_mv
Если меня не подводит склероз, переменные в параметрах тут не поддерживаются, и для автоматизации множественных однотипных операций придется сначала "склеивать" одну большую строку с полным текстом команды для динамического SQL для каждого файла access (по списку)... Использовать копи-паст и большие простыни скриптов - не кучеряво...

А зачем для выгрузки данных большой скрипт ?
insert #x exec('.... openrowset(....) ')
10 фев 14, 13:25    [15545911]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
Glory
sphinx_mv
Если меня не подводит склероз, переменные в параметрах тут не поддерживаются, и для автоматизации множественных однотипных операций придется сначала "склеивать" одну большую строку с полным текстом команды для динамического SQL для каждого файла access (по списку)... Использовать копи-паст и большие простыни скриптов - не кучеряво...

А зачем для выгрузки данных большой скрипт ?
insert #x exec('.... openrowset(....) ')
:) Типа, динамический SQL - это не то, что передается внутрь exec...
Сформировать по одной строке для каждого файла из списка в цикле - и в принципе все, что нужно...

Под "большой простыней" я подразумевал, что без динамического SQL это выливается в нечто вида:
insert tbl select bla-bla-bla from openrowset( ...тут настройки для файла #1... )
insert tbl select bla-bla-bla from openrowset( ...тут настройки для файла #2... )
...
insert tbl select bla-bla-bla from openrowset( ...тут настройки для файла #N.. )
С необходимостью "ручной" правки при изменении списка импортируемых файлов.
10 фев 14, 13:46    [15546053]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
Addx
Member

Откуда:
Сообщений: 957
refreg

Есть два варианта:
1) перезапускать сервер (с ним никто не работает, пока не закачаны все базы). Но все равно муторно.
2) На linked server правой кнопкой policies->delete health states - что это такое? я не знаю. Можно ли это сделать какой-либо командой?


Есть только один вариант - перелить данные из одной таблицы в другую DTS в пару щелчков. Если это разовый вариант, даже думать не стоит. Если не разовый - то это нужно обсуждать отдельно.
10 фев 14, 14:10    [15546214]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
refreg
Member

Откуда: Саратов
Сообщений: 779
Addx
refreg
Есть два варианта:
1) перезапускать сервер (с ним никто не работает, пока не закачаны все базы). Но все равно муторно.
2) На linked server правой кнопкой policies->delete health states - что это такое? я не знаю. Можно ли это сделать какой-либо командой?


Есть только один вариант - перелить данные из одной таблицы в другую DTS в пару щелчков. Если это разовый вариант, даже думать не стоит. Если не разовый - то это нужно обсуждать отдельно.

Для меня все, что происходит при переливе - черный ящик (что он там дополнительно делает, я не знаю - и не хочу знать) - я могу автоматизировать "ручной труд" и довольно легко - автоматом менять odbc на нужную базу и запускать скрипт. Проблема пришла с неожиданной стороны: linked server кэширует соединение...

Все советы хороши - но они заставляют меня влезать в черный ящик - я этого на данном этапе не хочу. Запустил - свой скриптик - и пошел "чай курить..."

Думаю, 2-й пост (первый ответ верен)

PS. Подскажите, как решите проблему сброса linked server - все остальное мне пока не интересно...
10 фев 14, 14:56    [15546580]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
Glory
Member

Откуда:
Сообщений: 104751
refreg
Подскажите, как решите проблему сброса linked server - все остальное мне пока не интересно...

Не запускать скрипт сразу, а подождать. Как раз на "чай курить"
10 фев 14, 15:00    [15546598]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3757
Glory
refreg
Подскажите, как решите проблему сброса linked server - все остальное мне пока не интересно...

Не запускать скрипт сразу, а подождать. Как раз на "чай курить"

не менять в одбс базу.
если это аккесс - то база - это файл.
Файлы новые просто подкладывать с тем же именем!
10 фев 14, 15:47    [15546943]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
refreg
Member

Откуда: Саратов
Сообщений: 779
Ivan Durak
Файлы новые просто подкладывать с тем же именем!
пробовал - база лочится - удалить нельзя. если только насильно как-нибудь - как unlocker делает - хз
10 фев 14, 16:35    [15547241]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
o-o
Guest
sp_dropserver, sp_addlinkedserver
по говноватости, наверное, почетное второе место после перезагрузки сервера.
зато так же глобально
10 фев 14, 16:43    [15547304]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
Glory
Member

Откуда:
Сообщений: 104751
refreg
Ivan Durak
Файлы новые просто подкладывать с тем же именем!
пробовал - база лочится - удалить нельзя. если только насильно как-нибудь - как unlocker делает - хз

А вы коннект то закрываете, в котором скрипт выполняете ?
10 фев 14, 16:44    [15547310]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
refreg
Member

Откуда: Саратов
Сообщений: 779
Glory
refreg
пропущено...
пробовал - база лочится - удалить нельзя. если только насильно как-нибудь - как unlocker делает - хз

А вы коннект то закрываете, в котором скрипт выполняете ?
Видимо, нет... Как его закрыть?
10 фев 14, 16:48    [15547337]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
Glory
Member

Откуда:
Сообщений: 104751
refreg
Видимо, нет... Как его закрыть?

А как вы запускаете скрипт ?
10 фев 14, 16:49    [15547342]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
Konst_One
Member

Откуда:
Сообщений: 11625
покажите скрипт открытия:

если было так (VBScript), то вот

Dim cn 

Set cn = CreateObject("ADODB.Connection")
cn.Open ...

...

'закрываем
cn.Close
Set cn = Nothing
10 фев 14, 16:50    [15547348]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
ziktuw
Member

Откуда:
Сообщений: 3552
В настройках ODBC пытались выключить пул соединений для используемого драйвера?
Вдруг поможет.
10 фев 14, 16:50    [15547352]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
refreg
Member

Откуда: Саратов
Сообщений: 779
Glory
refreg
Видимо, нет... Как его закрыть?

А как вы запускаете скрипт ?
Коннект с MS SQL ? Причем тут он? Хотя попробую...
10 фев 14, 16:51    [15547359]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
Addx
Member

Откуда:
Сообщений: 957
А мне вот интересно, сколько у Вас баз?
10 фев 14, 16:58    [15547415]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
refreg
Member

Откуда: Саратов
Сообщений: 779
Addx
А мне вот интересно, сколько у Вас баз?
40

Я в принципе все уже закачал - но проблему решить не мешает...

клиент совсем отключаю - файл базы остается залоченным около 3-х минут
10 фев 14, 17:11    [15547477]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
Addx
Member

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

Не вижу никакой проблемы. Вижу попытку криво решать проблемы.
Типа "проблема забивания гвоздей микроскопом"
Если уж Вам уж очень хочется использовать Linked servers,
вызовите 40 раз addlinkedserver
10 фев 14, 17:24    [15547552]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
ART-CODE
Member

Откуда:
Сообщений: 1095
Если сервер 32 bit то динамическую выборку из разных источников
очень удобно делать при помощи XP_Get_Remote_Rows.dll (см. исходники и примеры в архиве)
DLL сама определяет режим работы по типу передаваемых ей параметров и их количеству.

Простейший вызов
declare @ConnectionStr varchar(max)
declare @SelectStr varchar(max)
set @ConnectionStr='Provider=MSDAORA.1;Password=ZZZ;User ID=xxxx;Data Source=orasid;Persist Security Info=True' 
set @SelectStr='select * from customers where rownum<100'

insert into sometable
exec XP_Get_Remote_Rows @ConnectionStr,  @SelectStr


У меня таким способом выборка в несколько раз быстрее идет,
чем через linked server на 9 Oracle, а главное - без проблем с совместимостью типов данных.

+
Пожалуюсь:
Зачем-то MS всех на CLR принудительно переводит, отказав в выпуске 64 bit ODS API.
Не хорошо это.
10 фев 14, 22:56    [15548721]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить