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

Откуда: большая деревня
Сообщений: 265
Скачал с сайта Oracle клиента, установил. В ODBC прописал коннект, тест соединения проходит.
Пытаюсь создать линкованный сервер в SQL и соединение не устанавливается.
В поиске google и по форуму рылся.
USE [master]
GO

/****** Object:  LinkedServer [MIXX]    Script Date: 13.08.2014 17:33:02 ******/
EXEC master.dbo.sp_addlinkedserver @server = N'MIXX', @srvproduct=N'mixx', @provider=N'OraOLEDB.Oracle', @datasrc=N'mixx'
 /* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'MIXX',@useself=N'False',@locallogin=NULL,@rmtuser=N'mixxcc',@rmtpassword='########'

GO

EXEC master.dbo.sp_serveroption @server=N'MIXX', @optname=N'collation compatible', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'MIXX', @optname=N'data access', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'MIXX', @optname=N'dist', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'MIXX', @optname=N'pub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'MIXX', @optname=N'rpc', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'MIXX', @optname=N'rpc out', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'MIXX', @optname=N'sub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'MIXX', @optname=N'connect timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'MIXX', @optname=N'collation name', @optvalue=null
GO

EXEC master.dbo.sp_serveroption @server=N'MIXX', @optname=N'lazy schema validation', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'MIXX', @optname=N'query timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'MIXX', @optname=N'use remote collation', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'MIXX', @optname=N'remote proc transaction promotion', @optvalue=N'false'
GO


Пробую:
declare @sql_string1 varchar(max)
set @sql_string1 = 'select * from mixx.vie_cc_active_numbers'

EXECUTE (@sql_string1) AT [MIXX];


Сообщение 7302, уровень 16, состояние 1, строка 4
Не удалось создать экземпляр поставщика OLE DB "OraOLEDB.Oracle" для связанного сервера "MIXX".

К сообщению приложен файл. Размер - 47Kb
13 авг 14, 17:41    [16437987]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7969
Разрядность клиента соответствует разрядности сервера?
13 авг 14, 18:02    [16438095]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
o-o
Guest
@srvproduct = 'Oracle'?
13 авг 14, 18:10    [16438148]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
zatar86
Member

Откуда: СПБ
Сообщений: 228
В св-вах провайдера (Oracle provider for OLE DB) включи Allow inprocess
13 авг 14, 18:26    [16438222]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
virtuOS
Member

Откуда: большая деревня
Сообщений: 265
автор
Разрядность клиента соответствует разрядности сервера?

Разрядность сервера не знаю, клиент x64. Не понимаю, почему это важно, из GUI соединение-то устанавливается.

автор
@srvproduct = 'Oracle'?

Заменил, ошибка та же. За что отвечает этот параметр? Мне казалось, он должен соответствовать TNS name из конфигурационного файла.

автор
В св-вах провайдера (Oracle provider for OLE DB) включи Allow inprocess

Включено.

Может быть, что ms sql не видит установленный драйвер?
13 авг 14, 19:24    [16438379]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7969
автор
GUI соединение-то устанавливается.

GUI драйвера, а не сервера.
Не видеть может как раз по причине разной битности. Проще всего это проверить через GUI сервера, драйвер должен быть в списке, если поддерживается.
13 авг 14, 19:40    [16438415]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
virtuOS
Member

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

Тьфу, я первоначально подумал, что речь идет о сервере Oracle.
SQL также x64, в поставщиках драйвер есть.
14 авг 14, 09:13    [16439397]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
Glory
Member

Откуда:
Сообщений: 104760
virtuOS
SQL также x64, в поставщиках драйвер есть.

У вас Connection success для ODBC, а скрипт для OLEDB
14 авг 14, 10:53    [16439953]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
EvAlex
Member

Откуда: Israel
Сообщений: 1001
regsvr32.exe Oracle_Installation_Folder\BIN\OraOLEDB11.dll
14 авг 14, 15:40    [16442035]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
virtuOS
Member

Откуда: большая деревня
Сообщений: 265
Glory
virtuOS
SQL также x64, в поставщиках драйвер есть.

У вас Connection success для ODBC, а скрипт для OLEDB

Согласен. Но это не объясняет, почему не работает и где искать ошибку.

В порядке бреда попробовал подключить связанный сервер через ODBC (через такую строку у меня подключен MySQL сервер)

автор
EXEC master.dbo.sp_addlinkedserver @server = N'MIXX_4', @srvproduct=N'MIXX', @provider=N'MSDASQL', @datasrc=N'MIXX'
/* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'MIXX_4',@useself=N'False',@locallogin=NULL,@rmtuser=N'mixxcc',@rmtpassword='########'

Получил ошибку
Поставщик OLE DB "MSDASQL" для связанного сервера "MIXX_4" вернул сообщение "Не удается загрузить указанный драйвер из-за системной ошибки  1114: 
Произошел сбой в программе инициализации библиотеки динамической компоновки (DLL). (Oracle in OraClient12Home1, C:\ORA\product\12.1.0\client_2\SQORA32.DLL).".
14 авг 14, 16:54    [16442522]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
Konst_One
Member

Откуда:
Сообщений: 11543
поставьте x64 oracle client
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/database12c-win64-download-1968077.html
14 авг 14, 17:03    [16442560]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
virtuOS
Member

Откуда: большая деревня
Сообщений: 265
Ставил ODAC121012_x64.zip отсюда http://www.oracle.com/technetwork/database/migration/index-090165.html
Не то?
14 авг 14, 17:35    [16442753]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
Konst_One
Member

Откуда:
Сообщений: 11543
это тоже самое только + ODAC
14 авг 14, 17:40    [16442795]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
Konst_One
Member

Откуда:
Сообщений: 11543
а что вернёт :

select @@version
14 авг 14, 17:42    [16442815]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
virtuOS
Member

Откуда: большая деревня
Сообщений: 265
Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64) 
	Dec 28 2012 20:23:12 
	Copyright (c) Microsoft Corporation
	Express Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
14 авг 14, 17:56    [16442880]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
Konst_One
Member

Откуда:
Сообщений: 11543
Oracle in OraClient12Home1, C:\ORA\product\12.1.0\client_2\SQORA32.DLL

а почему у вас 32bit провайдер настроен в TNSNAMES.ORA ?
14 авг 14, 17:58    [16442886]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
Konst_One
Member

Откуда:
Сообщений: 11543
%ORACLE_HOME% проверьте в Environment Variables
14 авг 14, 18:05    [16442907]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
jimm3rs
Guest
Чем завершилось?
19 авг 14, 02:28    [16459876]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
virtuOS
Member

Откуда: большая деревня
Сообщений: 265
jimm3rs
Чем завершилось?

Пока ничем. Как я понял, sql почему-то использует 32-х разрядный драйвер.
У меня есть ещё один сервер, 32-х разрядный, попробую на нем настроить, и потом использовать его как посредник.
19 авг 14, 09:49    [16460352]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
Glory
Member

Откуда:
Сообщений: 104760
Зайдите на консоль сервера. Желательно под учетной записью mssql.
Создайте на десктопе файл test.udl
Нажмите на нем два раза мышой.
Вы там видите своего OLEDB провайдера ?
Если нет, то его никто не видит
Вы можете для этого провайдера создать соединение с нужным сервером ? Test connection работает ?
Если не работает, то никто не может тогда создать такое соединение.
19 авг 14, 10:53    [16460729]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
o-o
Guest
virtuOS
jimm3rs
Чем завершилось?

Пока ничем. Как я понял, sql почему-то использует 32-х разрядный драйвер.
У меня есть ещё один сервер, 32-х разрядный, попробую на нем настроить, и потом использовать его как посредник.


у меня щас нет оракла, не могу проверить, но у меня такое было.
стояли оба оракловых клиента, причем для pl/sql developer-а нужен был х32,
а для linked server-а х64, тк мой сервер был х64.
так можно настроить, чтоб каждая программа свой пользовала.
вроде SQL Server использует тот, к-ый РАНьШЕ находится в переменной среды PATH
19 авг 14, 11:55    [16461304]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
Glory
Member

Откуда:
Сообщений: 104760
o-o
вроде SQL Server использует тот, к-ый РАНьШЕ находится в переменной среды PATH

Вы считаете, что информация о провайдерах берется из PATH ???
19 авг 14, 12:00    [16461368]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
o-o
Guest
Glory,

слушайте, у меня он НЕ ХОТЕЛ с ораклом дружить,
пока не стал использоваться оракловый клиент х64,
и вот он использовался именно если ЕГО оставить в PATH.
я понятия не имею, как что там организовано, когда а что-то понимаю, то не пишу "вроде",
а ссылку на документацию привожу.
у меня заработало после указания в пути к оракловому клинету х64,
а поможет это ТС или нет, не знаю.
сейчас оракл не могу поставить, может дома вечером. отпишусь.

я вообще не понимаю, кто там провайдер, кто клиент.
но пишу именно про ораклового клиента, вот тот самый путь: C:\ORA\product\12.1.0\client_2
их у меня было два.
19 авг 14, 12:44    [16461752]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
Glory
Member

Откуда:
Сообщений: 104760
o-o
слушайте, у меня он НЕ ХОТЕЛ с ораклом дружить,
пока не стал использоваться оракловый клиент х64,
и вот он использовался именно если ЕГО оставить в PATH.

Он - это кто ?

o-o
я вообще не понимаю, кто там провайдер, кто клиент.

Вот именно.
19 авг 14, 12:47    [16461783]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
o-o
Guest
он = SQL Server.
щас назло откопаю оракл и поставлю.
где не понимаю, я честно признаюсь.
но зачем бы мне врать, что вот так у меня работало???
кстати, если не заработает, я все равно отпишусь
19 авг 14, 12:58    [16461849]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
STsarionov
Member

Откуда:
Сообщений: 105
была такая проблема, помогла установка другой версии оракл клиента. Причем лучше ставить не выборочно, что считаете нужным, а именно полная установка всего что он предлагает. Иногда по 5-6 раз приходилось ставить/сносить разные версии клиента на сервер перед тем как заработает. От чего зависит работоспособность не получилось понять. Но для каждого сервера была найдена своя версия клиента которая на нем работает:)
19 авг 14, 16:26    [16463582]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
o-o
Guest
прошу прощения за принесенную чушь, было помутнение мозгов,
исправляюсь :)
то, что записано в PATH, влияет на то, какой будет запущен SQLPLUS,
при условии, что на компе оба клиента стоят, х32 и х64 :)
и вот если первым идет путь от клиента х32, то SQLPLUS рыпается:
ERROR:
ORA-12560: TNS:protocol adapter error
надо, чтоб запускался тот, к-ый в х64 лежит

провайдер OraOLEDB.Oracle, это, кажись, просто DLL из состава ораклового клиента.
а MSDAORA совсем не в оракловом клиенте лежит, а в %CommonProgramFiles(x86)%\System\Ole DB\msdaora.dll

-----
можем сравнить реестры или содержимое папочек, чтоб понять, почему у вас не работает.
у меня такие же команды по созданию linked server-а, в @provider можно хоть что писать, ему фиолетово,
причем все параметры для sp_addlinkedserver одинаковые на обоих серверах, меняется только провайдер, у х32 это MSDAORA
-----
такой момент:
когда ставишь клиента, предлагается какой-то "минимальный"(175 Мб) и "админский" (под гигабайт)
меня жаба задавила гигабайтный ставить, нафига мне все тулзы.
и что?
он же в "минимальном" виде как минимум не создает подпапки network -> admin, куда надо класть tnsnames.ora, a че за клиент, в к-ом не лежит его tnsnames?
ну ладно папки могу руками создать, туда tnsnames положить, но может он и в реестре чего-то не дописывает, а я еще буду угадывать, чего он не дописал???
в общем, жабу пришлось принести в жертву, а как только был поставлен ПОЛНЫЙ клиент,
у меня все заработалo

т.е. я плюсую к STsarionov,
надо "админского" клиента ставить, а утилиты можно потом снести, инсталлятор дает их по одному выбрать для uninstall.
зато все, что надо, создаст и пропишет.
подозреваю, он у вас просто не находит, где лежит этот OraOLEDB.dll,
т.к. кое-кто это в реестре не прописал
21 авг 14, 02:22    [16471531]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
o-o
он же в "минимальном" виде как минимум не создает подпапки network -> admin, куда надо класть tnsnames.ora, a че за клиент, в к-ом не лежит его tnsnames?
А вот это как раз элементарно...
"Необходимо и достаточно" прописать переменную окружения TNS_ADMIN, куда прописывается путь к tnsnames.ora
21 авг 14, 10:17    [16472151]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
o-o
Guest
sphinx_mv,

это было всего лишь наблюдение "походу заодним", а вовсе не проблема :)
лучше скажите, где именно в реестре прописывается путь к OraOLEDBхх.dll, считываемый SQL Server-ом.
ТС сразу проверит наличие сего пути в реестре, ну и что действительно dll там лежит
21 авг 14, 10:48    [16472388]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
o-o
Guest
вот тут на эту же тему:
Cannot create an instance of OLE DB provider ‘OraOLEDB.Oracle’ for linked server
но самое интересное, что у меня в реестре на том же месте в провайдерах вообще нет OraOLEDB.Oracle,
а если просто по OraOLEDB.Oracle искать, то много где он есть, но только не в Providers.
да и путь к нему никак не указан.
а если искать на путь, где лежит dll, то попадают оракловые ветки,
там он болтается под OLEDB.
но если я там меняю путь, чтоб он его больше не нашел, все равно он находит и ошибку я не получаю
21 авг 14, 11:16    [16472653]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
o-o
sphinx_mv,

это было всего лишь наблюдение "походу заодним", а вовсе не проблема :)
лучше скажите, где именно в реестре прописывается путь к OraOLEDBхх.dll, считываемый SQL Server-ом.
ТС сразу проверит наличие сего пути в реестре, ну и что действительно dll там лежит
Вообще-то, очень не факт, что для другой версии клиента будет тот же самый, но у меня в реестре это лежит по HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3F63C36E-51A3-11D2-BB7D-00C04FA30080}\InprocServer32

А вообще... Полезно MSDN пользоваться... Registry Entries
21 авг 14, 11:35    [16472789]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
o-o
вот тут на эту же тему:
Cannot create an instance of OLE DB provider ‘OraOLEDB.Oracle’ for linked server
но самое интересное, что у меня в реестре на том же месте в провайдерах вообще нет OraOLEDB.Oracle,
а если просто по OraOLEDB.Oracle искать, то много где он есть, но только не в Providers.
да и путь к нему никак не указан.
а если искать на путь, где лежит dll, то попадают оракловые ветки,
там он болтается под OLEDB.
но если я там меняю путь, чтоб он его больше не нашел, все равно он находит и ошибку я не получаю
regsvr32
21 авг 14, 11:41    [16472865]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
o-o
Guest
sphinx_mv,

чего бы это мне регистрировать, когда у меня и так все работает
+ sp_enum_oledb_providers и так мне выдает всех нужных провайдеров?
21 авг 14, 12:13    [16473193]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
o-o
sphinx_mv,

чего бы это мне регистрировать, когда у меня и так все работает
Не только регистрировать, но и удалять регистрацию. И это относилось к
o-o
но если я там меняю путь, чтоб он его больше не нашел, все равно он находит
Уж чем менять в реестре путь с непредсказуемым результатом, лучше c соотвествующими COM-объектами разобраться.
o-o
+ sp_enum_oledb_providers и так мне выдает всех нужных провайдеров?
Кстати, поле "Parse Name" в выдаче этой процедуры возвращает CLSID провайдера...
21 авг 14, 12:40    [16473434]     Ответить | Цитировать Сообщить модератору
 Re: LINK сервер Oracle  [new]
o-o
Guest
sphinx_mv
это относилось к
o-o
но если я там меняю путь, чтоб он его больше не нашел, все равно он находит
Уж чем менять в реестре путь с непредсказуемым результатом, лучше c соотвествующими COM-объектами разобраться.


во блин, ожидалось предсказуемо: это была попытка проверить, оттуда ли путь черпается.
ибо если оттуда, а его изменить, то работать перестанет.
типа указать ТС, где проверить, прописалось ли.
вы вот сейчас стараетесь холивар развести с миллионом цитирований или просто забыли, чего ТС-то хотел?

sphinx_mv
Кстати, поле "Parse Name" в выдаче этой процедуры возвращает CLSID провайдера...


да ну
трудно не заметить, да
очкарики, как ни странно, тоже читать умеют
классно мне тут придумали, что "о-о" это очкарик, а че, мне нравится :)
отвалю-ка я отсюда, у меня и так работает, а то щас раздуют бубль гум побольше: август/скучно
а за Registry Entries спасибо
21 авг 14, 12:58    [16473577]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Microsoft SQL Server Ответить