Як настроїти та усунення проблем: зв'язані сервер бази даних Oracle в SQL Server

Переклади статей Переклади статей
Номер статті: 280106 - Показ продуктів, яких стосується ця стаття.
Розгорнути все | Згорнути все

На цій сторінці

Підсумки

У цій статті описується, як налаштувати на зв'язаний сервер з комп'ютера, на якому запущено Microsoft SQL Server для бази даних Oracle а також надає основні кроки виправлення неполадок поширених помилок, які можуть виникати під ви встановити пов'язаний сервер для Oracle.

Настроїти пов'язаний сервер для Oracle

  1. Потрібно інсталювати Підтримка програмного забезпечення Oracle клієнта на на комп’ютер-зразок, який працює SQL Server, де пов'язаний сервер настроєно.
  2. Інсталювати драйвер, потрібно, щоб на комп'ютері, на якому запущено SQL Server. Підтримується лише Microsoft база даних OLE постачальника для Oracle і Microsoft ODBC драйвер для Oracle. У разі сценарій виконання стороннього постачальника або драйвери сторонніх виробників, щоб підключитися до Oracle, потрібно звернутися відповідним постачальником для будь-яких проблем, які можуть виникнути за допомогою їх службу або драйвер.
  3. Якщо ви використовуєте Microsoft Постачальника база даних OLE послуг для Oracle і Microsoft драйвер ODBC для Oracle, зважте на таке:
    • Як постачальника база даних OLE, так і драйвера ODBC, які постачаються з Microsoft даних компоненти Access (MDAC) вимагають SQL * Net 2.3.xабо пізнішої версії. Oracle 7.3, потрібно інсталювати.x -клієнт Підтримка програмного забезпечення, або пізнішої версії, на клієнтський комп’ютер-зразок. На клієнтському комп'ютері є комп’ютер-зразок, який працює SQL Server.
    • Переконайтеся, що у вас є MDAC 2.5 або пізнішої версії, інстальовано на комп'ютері, який працює SQL Server. MDAC 2.1 або ранішої версії вам не вдається підключитися до баз даних, які використовують Oracle 8.x або пізнішої версії.
    • Щоб увімкнути MDAC 2.5, або пізніших версій, працювати з Oracle клієнтське Підтримка програмного забезпечення, реєстру, має бути змінена на клієнтському комп'ютері, який працює SQL Server як зазначено в таблиці нижче.
                 Microsoft Windows NT,
      Oracle     Microsoft Windows 95,
      Client     Windows 98, and Windows 98 SE    Microsoft Windows 2000 
      --------------------------------------------------------------------------
      
      7.x        [HKEY_LOCAL_MACHINE\SOFTWARE     [HKEY_LOCAL_MACHINE\SOFTWARE  
                 \Microsoft\TransactionServer     Microsoft\MSDTC\MTxOCI]
                 \Local Computer\My Computer]     "OracleXaLib"="xa73.dll"
                 "OracleXaLib"="xa73.dll"         "OracleSqlLib"="SQLLib18.dll"
                 "OracleSqlLib"="SQLLib18.dll"    "OracleOciLib"="ociw32.dll"
                 "OracleOciLib"="ociw32.dll"   
      
      8.0        [HKEY_LOCAL_MACHINE\SOFTWARE     [HKEY_LOCAL_MACHINE\SOFTWARE
                 \Microsoft\Transaction Server    \Microsoft\MSDTC\MTxOCI]
                 \Local Computer\My Computer]     "OracleXaLib"="xa80.dll"
                 "OracleXaLib"="xa80.dll"         "OracleSqlLib"="sqllib80.dll" 
                 "OracleSqlLib"="sqllib80.dll"    "OracleOciLib"="oci.dll"
                 "OracleOciLib"="oci.dll" 
      
      8.1        [HKEY_LOCAL_MACHINE\SOFTWARE     [HKEY_LOCAL_MACHINE\SOFTWARE
                 \Microsoft\Transaction Server    \Microsoft\MSDTC\MTxOCI]
                 \Local Computer\My Computer]     "OracleXaLib"="oraclient8.dll" 
                 "OracleXaLib"="oraclient8.dll"   "OracleSqlLib"="orasql8.dll"  
                 "OracleSqlLib"="orasql8.dll"     "OracleOciLib"="oci.dll"
                 "OracleOciLib"="oci.dll"
  4. Перезавантажте комп’ютер-зразок, який працює SQL Server, після установки в Oracle клієнтське Підтримка програмного забезпечення.
  5. На комп'ютері, який працює SQL Server, встановити пов'язаний сервер за допомогою на наступний сценарій.
    -- Adding linked server (from SQL Server Books Online):
    /* sp_addlinkedserver [@server =] 'server' 
        [, [@srvproduct =] 'product_name']
        [, [@provider =] 'provider_name'] 
        [, [@datasrc =] 'data_source'] 
        [, [@location =] 'location'] [, [@provstr =] 'provider_string'] 
        [, [@catalog =] 'catalog']
    */ 
    
    EXEC sp_addlinkedserver   'Ora817Link',  'Oracle',  'MSDAORA',  'oracle817'
    
    -- Adding linked server login:
    /* sp_addlinkedsrvlogin [@rmtsrvname =] 'rmtsrvname'
        [,[@useself =] 'useself']
        [,[@locallogin =] 'locallogin']
        [,[@rmtuser =] 'rmtuser']
        [,[@rmtpassword =] 'rmtpassword']
    */ 
    
    EXEC sp_addlinkedsrvlogin 'Ora817Link', 'FALSE',NULL, 'scott', 'tiger'
    
    -- Help on the linked server:
    EXEC sp_linkedservers
    EXEC sp_helpserver
    select * from sysservers
Примітка Якщо використовується драйвер ODBC Microsoft для Oracle, ви можете Використовуйте параметр @ datasrc , щоб указати ім'я DSN. Для DSN менш з'єднання в постачальник послуг оренди застосунків рядок поставляється через @ provstr параметр. Постачальника Microsoft база даних OLE для Oracle, використовувати в Oracle сервер псевдонім, який налаштовано для параметра @ datasrc , файл TNSNames.Ora . Докладніше перегляньте статтю "sp_addlinkedserver" Тема в SQL Server Books Online.

Типові протокол IMAP про помилку та способи їх виправлення

Важливі Цей розділ, спосіб або завдання містять кроки, які говорять вам, як змінити реєстр. Однак, серйозні проблеми можуть виникнути, якщо неправильна зміна реєстру. Тому переконайтеся, що ви виконаєте наступні інтерактивні елементи ретельно. Для додаткового захисту архівувати реєстру перед внесенням. Потім ви можете відновити реєстр у разі виникнення проблеми. Щоб отримати додаткові відомості про архівувати та відновлення реєстру клацніть номер статті в базі знань Microsoft Knowledge Base:
322756 Як створити архівувати та відновити реєстр у Windows


Можна використовувати будь-який з двох нижченаведених способів отримати розширені відомості про помилку, що ви відчуваєте, коли ви виконаєте на Розподілена запит на змінення.
  • Спосіб 1
    У Query Analyzer запустіть наступний код, щоб увімкнути прапора трасування 7300.
    DBCC Traceon(7300)
  • Спосіб 2
    Захоплення "OLEDB помилки" подія, яка знаходиться в на "помилки і Попередження"Категорія події в SQL Profiler. Формат протокол IMAP про помилку на наступні:
    Interface::Method не вдалося hex помилку з кодом.
    Можна шукати код hex помилки у файлі Oledberr.h, що є включено з MDAC Kit розробки програмного забезпечення (SDK).
Нижче наводиться список з десяти типові протокол IMAP про помилку, які можуть виникнути, разом з інформацією про Виправлення неполадок із протокол IMAP про помилку.

Примітка Якщо використовується SQL Server 2005, ці протокол IMAP про помилки можуть бути трохи інший. Однак, помилка ідентифікатори цих повідомлень про помилки такі ж, як їх у SQL Server 2000. Таким чином, можна визначити їх за помилка ідентифікатори.

Примітка Для проблем продуктивності пошук книги SQL Server Онлайн за темою "Оптимізація розподілені запити".
  • протокол IMAP 1
    Помилка 7399: Постачальника база даних OLE "% ls" повідомив про помилку. % ls
    Увімкніть прапора трасування 7300 або сценарій виконання SQL Profiler для захоплення "OLEDB помилки" випадку, щоб отримати додаткові відомості про помилку OLEDB.
  • протокол IMAP 2a
    "ORA-12154: TNS: не вдалося вирішити ім'я служби"
    протокол IMAP 2b
    "Oracle(tm) клієнта та мереж компоненти не знайдено. Ці компоненти поставляються Корпорація Oracle і є частиною Oracle Версія 7.3.3 (або більше) клієнтське Підтримка програмного забезпечення установки"
    Щоб отримати додаткові відомості про вирішення питань Oracle підключення клацніть номер статті в базі знань Microsoft Knowledge Base:
    259959Методи для налагодження питань підключення до сервера Oracle, використовуючи драйвер ODBC та постачальника база даних OLE
  • Повідомлення 3
    Помилка 7302: Не вдалося створити на екземпляр постачальника OLE DB 'MSDAORA'
    Переконайтеся, що зареєстрована MSDAORA.dll файл. (Файл MSDAORA.dll є постачальника Microsoft OLE DB для Oracle файлу). Використовувати RegSvr32.exe, щоб зареєструвати постачальника Microsoft OLE DB для Oracle. Якщо не вдалося виконати реєстрацію, переустановіть компонентів доступу до даних Microsoft (MDAC). Щоб отримати додаткові відомості про MDAC відвідайте веб-сайт корпорації Майкрософт розробників (MSDN):
    http://MSDN.Microsoft.com/Data/default.aspx
    Примітка Якщо ви використовувати стороннього постачальника Oracle, Oracle постачальник не може працювати за межами процес SQL Server, дозволити його запуск в процесі шляхом зміни постачальник параметрів. Зміна параметрів постачальника, використовуйте один з наступних методів.
    • Спосіб 1
      Знайдіть такий розділ реєстру. Потім змініть значення AllowInProcess (DWORD) запис до 1. Цей розділ реєстру знаходиться у розділі відповідне ім'я постачальника:
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\ProviderName
    • Спосіб 2
      Встановити параметр Дозволити InProcess безпосередньо через SQL Server Enterprise Manager коли ви Додати новий пов'язаний сервер. Натисніть кнопку Параметри провайдераі встановіть прапорець поруч із пунктом Дозволити InProcess .
  • Повідомлення 4
    Помилка 7303: Не вдалося ініціалізувати джерела даних об'єкта постачальника OLE DB 'MSDAORA'. [Постачальника OLE/DB повернувся повідомлення: ORA-01017: неприпустиме ім'я користувача і пароль; Вхід заборонено] OLE DB помилка трасування [0X80040e4d повернувся постачальника OLE/DB IDBInitialize::Initialize 'MSDAORA'].
    Це повідомлення про помилку вказує на те, що пов'язаний сервер має правильний Логін відображення. Ви можете здійснювати sp_helplinkedsrvlogin Збережена процедура правильно встановити Логін інформації. Крім того, Переконайтеся, що вказано правильні параметри для пов'язаних Конфігурація сервера.
  • Повідомлення 5
    Помилка 7306: Не вдалося відкрити таблицю ' % ls "від постачальника OLE DB 'MSDAORA'. Не існує вказаної таблиці. [Постачальника OLE/DB повернуто повідомлення: таблиці не існує.][Постачальника OLE/DB повернуто повідомлення: ORA-00942: таблиці або подання не існує] OLE DB помилка трасування [Постачальника OLE/DB 'MSDAORA' IOpenRowset::OpenRowset повернувся 0x80040e37: на Указаний таблиці не існує.].
    Помилка 7312: Неприпустиме використання схеми та/або каталог для постачальника OLE DB "% ls". У чотирьох частинах надано ім'я, але постачальник не піддавати необхідну інтерфейси використовувати каталог та/або схеми.
    Помилка 7313: Неприпустимий схеми або каталог, вказаного для служби "% ls".
    ERR 7314: Постачальника OLE DB "% ls" не містить таблиці "% ls"
    Якщо ви отримали такі повідомлення про помилки, таблиці, можуть бути відсутні в Oracle схеми, або ви не маєте дозволів на цю таблицю. Переконайтеся, що ім'я схеми введені за допомогою великих літер. Алфавітному справа таблиці і стовпців має бути як зазначено в системних таблиць Oracle.

    На стороні Oracle таблиці або стовпця, який створюється без подвійні лапки зберігається у верхньому регістрі. Якщо таблиці або стовпця взяте в лапки, таблиці або стовпця зберігається як є.

    Наступний виклик показує, якщо таблиця існує Oracle схеми. Цей заклик також показує ім'я точне таблиці.
    sp_tables_ex  @table_server=Ora817Link, @table_schema='your_schema_name'
    Щоб отримати додаткові відомості про повідомлення про помилку 7306 клацніть номер статті в базі знань Microsoft Knowledge Base:
    240340Розподілена запит SQL з Oracle викликає помилку "Не вдалося відкрити таблицю"
  • Повідомлення 6
    Помилка 7413: Не вдалося виконати на Windows NT перевірку автентичності Логін, оскільки делегація недоступний.
    Msg 18456, рівня 14, держава 1, рядок 1 Логін Помилка для користувача ' \'.
    Такі дані є з SQL Server Books Online:
    Це повідомлення про помилку вказує на те, що розподілених запиту є робляться спроби для Microsoft Windows Автентифіковані увійти без зіставлення явні Логін. У середовищі операційної системи, в якій безпека делегації не підтримується Windows NT автентифікованим логіни необхідності явні зіставлення для віддалених Логін та пароль, створені за допомогою sp_addlinkedsrvlogin.
  • Повідомлення 7
    Помилка 7354: Постачальника OLE DB 'MSDAORA' поставляється неприпустимий метаданих для стовпця "% ls". Тип даних не є підтримується.
    Якщо з'являється це повідомлення про помилку, виникли помилки, описаної в такій статті бази знань Microsoft Knowledge Base:
    243027 FIX: Числовому стовпці Oracle викликає помилку 7354
  • Повідомлення 8
    Помилка 7356: Постачальника OLE DB 'MSDAORA' поставляється несумісні метаданих для стовпця. Метадані був змінити час виконання.
    Якщо ваш запит пов'язаний сервер використовує Oracle-подання, виникли проблеми, описаної в такій статті бази знань Microsoft Knowledge Base:
    251238 Розподілена запитів повертати помилку 7356 з MSDAORA
  • Повідомлення 9
    Помилка 7391: Операція не може позаяк постачальника OLE DB, 'MSDAORA' не підтримує розподілених угоди. Трасування помилок OLE DB [постачальника OLE/DB 'MSDAORA' ITransactionJoin::JoinTransaction повернувся 0x8004d01b]
    Переконайтеся, що на OCI версій зареєстрований належним чином, як описано вище в цій статті.

    Примітка Якщо всі записи реєстру виправити, MtxOCI.dll, файл завантажено. Якщо MtxOCI.dll файл не завантажується, не можна виконувати розподілених операцій по Oracle за допомогою постачальника Microsoft OLE DB для Oracle або за допомогою Microsoft драйвер ODBC для Oracle. У разі використання стороннього постачальника і ви отримувати помилку 7391, перевірте, чи підтримує постачальника OLE DB, який використовується розподілених транзакцій. Якщо постачальника OLE DB підтримує розподілених угоди, переконайтеся, що на координатором розподілених транзакцій Біг (MSDTC).
  • Повідомлення 10
    Помилка 7392: Не вдалося запустити на угода для постачальника OLE DB 'MSDAORA'. Трасування помилок OLE DB [постачальника OLE/DB 'MSDAORA' ITransactionLocal::StartTransaction повернувся 0x8004d013: ISOLEVEL = 4096].
    Такі дані є з SQL Server Books Online:
    Постачальника OLE DB повернув помилку 7392, тому що тільки один транзакції може бути активним для цього сеансу. Ця помилка свідчить про те, що заява модифікації даних є робляться спроби проти постачальника OLE DB, коли підключення в явного або неявного транзакції, і постачальника OLE DB не підтримує вкладені угоди. SQL Server вимагає цю підтримку, так що, на певних умовах помилка, його можна припинити ефекти даних модифікації заяву, продовжуючи при цьому транзакції.
    Якщо ВСТАНОВИТИ XACT_ABORT ON, SQL Server не вимагає вкладені підтримку транзакції від постачальника OLE DB. Таким чином, виконати ВСТАНОВИТИ на XACT_ABORT Перш ніж виконувати дані модифікації заяви стосовно віддаленого таблиць у на чіткою та зрозумілою транзакції. Це зробити, у випадку, якщо постачальника OLE DB, які використовують робить не підтримує вкладені угоди.

Посилання

Щоб отримати додаткові відомості клацніть номер статті в базі знань Microsoft Knowledge Base:
244661Обмеження драйвер Microsoft Oracle ODBC і постачальника OLE DB
259959 Методи для налагодження питань підключення до Oracle сервера, використовуючи драйвер ODBC та OLE Постачальник дБ
239719 Supportability постачальника Microsoft ODBC драйвер/OLE DB для Oracle w.r.t Oracle параметрам
193893 Інформація про використання Oracle з сервера Microsoft транзакцій і COM+ компоненти
191168 Помилка "-2147168246 (8004d00a)" не зміг заручитися на заклик об'єкта транзакції
Щоб отримати додаткові відомості про те, як використовувати пов'язаний сервер разом з DB2, клацніть номер статті в базі знань Microsoft Knowledge Base:
218590Настройка джерел даних для на Постачальника Microsoft OLE DB для DB2
216428 Налаштування Драйвер Microsoft ODBC для DB2

Властивості

Номер статті: 280106 - Востаннє переглянуто: 12 липня 2012 р. - Редакція: 2.0
Застосовується до:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Workgroup
Ключові слова: 
kbsqlsetup kbhowtomaster kbmt KB280106 KbMtuk
Машинний переклад
УВАГА! Цю статтю переклала програма машинного перекладу Microsoft, а не людина. Корпорація Microsoft пропонує вам як машинні переклади, так і переклади фахівців, щоб Ви мали доступ до всіх статей бази знань рідною мовою. Проте стаття, яку переклав комп’ютер, не завжди бездоганна. Вона може містити лексичні, синтаксичні або граматичні помилки. Так само помиляється іноземець, спілкуючись вашою рідною мовою. Корпорація Microsoft не несе відповідальність за жодні неточності, помилки або шкоду, завдану неправильним перекладом змісту або його використанням з боку користувачів. Крім того, корпорація Microsoft часто оновлює програму машинного перекладу.
Клацніть тут, щоб переглянути цю статтю англійською мовою: 280106

Надіслати відгук

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com