Jak nastavit a odstraňování problémů s propojený server k databázi Oracle v systému SQL Server

Překlady článku Překlady článku
ID článku: 280106 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento podrobný článek popisuje jak nastavit propojený server z počítače, který je spuštěn Microsoft SQL Server k databázi Oracle a také poskytuje základní kroky řešení potíží pro běžné chyby může dojít při nastavování propojený server Oracle.

Kroků nastavte propojeného serveru Oracle

  1. V počítači je spuštěn SQL Server, kde nastavit propojený server musíte nainstalovat klientský software Oracle.
  2. Nainstalujte požadovaný ovladač v počítači je spuštěn SQL Server. Společnost Microsoft podporuje pouze zprostředkovatele Microsoft OLE DB pro Oracle a ovladač Microsoft ODBC pro Oracle. Pokud používáte připojit Oracle výrobců zprostředkovatel nebo ovladač jiného výrobce, musí pro problémy, které mohou nastat pomocí zprostředkovatel nebo ovladač obraťte příslušného dodavatele.
  3. Pokud pomocí zprostředkovatele Microsoft OLE DB pro Oracle a ovladač Microsoft ODBC for Oracle, zvažte následující skutečnosti:
    • Zprostředkovatel OLE DB a ovladače ODBC, které jsou zahrnuty s Microsoft Data Access Components (MDAC) vyžadují SQL * NET 2.3. x nebo vyšší verze. Je třeba nainstalovat databázi Oracle 7.3. klientský software x nebo vyšší verze v klientském počítači. Klientský počítač je počítač je spuštěn SQL Server.
    • Ujistěte se, že mají součásti MDAC 2.5 nebo novější verze nainstalován v počítači je spuštěn SQL Server. S MDAC 2.1 nebo s dřívější verze nelze připojit k databázím Oracle 8 použít. x nebo vyšší verze.
    • Povolení součásti MDAC 2.5 nebo novější verze, práce s Oracle musí klientský software registru změněn v klientském počítači v následující tabulce je spuštěn SQL Server znázorněné.
                 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. Restartujte počítač je spuštěn SQL Server po nainstalovat klientský software Oracle.
  5. On the computer that is running SQL Server, set up a linked server by using the following script.
    -- 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
Poznámka: Použít ovladač Microsoft ODBC for Oracle, můžete použít @ datasrc parametr zadejte název DSN. DSN - méně připojení řetězec zprostředkovatele dodaná prostřednictvím @ provstr parametr. S Microsoft OLE DB Provider for Oracle, použít alias serveru Oracle, který je nakonfigurován v souboru TNSNames.ora@ datasrc parametr. Další informace naleznete v tématu "sp_addlinkedserver" SQL Server Books Online.

Běžné chybové zprávy a postup jejich řešení

Důležité: Tento oddíl, metoda nebo úkol obsahuje kroky, které sdělit, jak upravit registr. Po nesprávné úpravě registru však mohou nastat závažné problémy. Postupujte proto pečlivě podle uvedených kroků. Pro zvýšení bezpečnosti registr zálohujte jestě před jeho úpravami. Potom můžete v případě potíží registr obnovit. Další informace o zálohování a obnovení registru naleznete následujícím článku znalostní v databáze Microsoft Knowledge Base:
322756Zálohování a obnovení registru v systému Windows


Získání rozšířených informací o chybě, dojít při spuštění distribuované dotazu můžete použít některou z následujících dvou metod.
  • Metoda 1
    V aplikaci Query Analyzer spustit následující kód zapnout příznak trasování 7300.
    DBCC Traceon(7300)
  • Metoda 2
    Sběr událostí "OLEDB chyby", která je umístěna v kategorii událostí "Chyby a varování" v SQL Profiler. Chyba formát zprávy je následující:
    Interface::Method se nezdařila s kódem chyby šestnáctkově.
    Vyhledat kód šestnáctkově chyby v souboru oledberr.h, která je dodávána s MDAC Software Development Kit (SDK).
Následuje seznam deset běžné chybové zprávy, může dojít spolu s informace o odstraňování potíží s chybovou zprávou.

Poznámka používáte SQL Server 2005 tyto chybové zprávy může být mírně odlišné. Chyba ID tyto chybové zprávy jsou však stejná jako je SQL Server 2000. Můžete je tedy identifikovat podle ID chyba.

Poznámka: Problémy související s výkonem hledat SQL Server Books Online téma "Optimalizace Distributed dotazy".
  • Zpráva 1
    Chyba 7399: Zprostředkovatele OLE DB % ls oznámila chybu. % ls
    Zapnout příznak trasování 7300 nebo použití SQL Profiler sběr událostí "OLEDB chyby" načíst rozšířené informace o chybě OLEDB.
  • Zpráva 2a
    "ORA-12154: TNS: služby nelze přeložit název"
    Zpráva 2b
    "Oracle(tm) součásti klienta a sítě nebyly nalezeny. Tyto součásti poskytnuté společností Oracle a jsou součástí Oracle verze 7.3.3 (nebo vyšší) instalace softwaru klienta "
    Další informace o tom, jak vyřešit problémy s připojením Oracle klepnutím na následující číslo článku databáze Microsoft Knowledge Base:
    259959Techniky ladění problémy s připojením k serveru Oracle pomocí ovladače ODBC a zprostředkovatele OLE DB
  • Zpráva 3
    Chyba 7302: Nelze vytvořit instanci zprostředkovatele OLE DB 'MSDAORA
    Zkontrolujte, zda je správně zaregistrován soubor MSDAORA.dll. (Souboru MSDAORA.dll je zprostředkovatel Microsoft OLE DB pro Oracle soubor.) Nástroj RegSvr32.exe použít k registraci zprostředkovatele Microsoft OLE DB pro Oracle. Pokud se nezdaří registrace přeinstalovat Data Access Components (MDAC). Další informace o MDAC na webu Microsoft Developer Network (MSDN):
    http://msdn.microsoft.com/data/Default.aspx
    Poznámka: Použití zprostředkovatele Oracle výrobců a zprostředkovatele Oracle nelze spustit mimo proces serveru SQL, povolit jeho spuštění v procesu změnou možností zprostředkovatele. Chcete-li změnit možnosti zprostředkovatele, použijte jednu z následujících metod.
    • Metoda 1
      Vyhledejte následující klíč registru. Změňte hodnotu položky AllowInProcess (DWORD) na 1. Tento klíč registru je umístěn pod odpovídající název zprostředkovatele:
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\ProviderName
    • Metoda 2
      Při přidání nového propojeného serveru nastavit možnost Povolit InProcess přímo prostřednictvím SQL Server Enterprise Manager. Klepněte na příkaz Možnosti zprostředkovatele a potom klepnutím zaškrtněte políčko Povolit InProcess.
  • Zpráva 4
    Chyba 7303: Nelze inicializovat objekt zdroje dat zprostředkovatele OLE DB 'MSDAORA. [Zprostředkovatel OLE/DB vrátil zprávu: ORA-01017: Neplatné uživatelské jméno a heslo; přihlašovací odepřen] Trasování chyby OLE DB [IDBInitialize::Initialize 'MSDAORA zprostředkovatel OLE/DB vrátil 0x80040e4d].
    Tato chybová zpráva označuje propojený server nemá správné přihlašovací mapování. Můžete provést postup sp_helplinkedsrvlogin uložené přihlašovací informace správně nastaven. Ověřte také, jste zadali správné parametry konfigurace propojeného serveru.
  • Zpráva 5
    Chyba 7306: Nelze otevřít tabulku % ls ze zprostředkovatele OLE DB 'MSDAORA. Zadaná tabulka neexistuje. [Zprostředkovatel OLE/DB vrátil zprávu: tabulka neexistuje.][Zprostředkovatel OLE/DB vrátil zprávu: ORA-00942: tabulku nebo zobrazení neexistuje] Trasování chyby OLE DB [IOpenRowset::OpenRowset 'MSDAORA zprostředkovatel OLE/DB vrátil 0x80040e37: Zadaná tabulka neexistuje.].
    Chyba 7312: Neplatné použití schématu nebo katalogu pro zprostředkovatele OLE DB % ls. Zadaný název four-part, ale zprostředkovatel vystavit nezbytné rozhraní pomocí katalogu nebo schématu.
    Chyba 7313: Neplatné schéma nebo katalogu zadané pro zprostředkovatele % ls.
    Chybová 7314: Zprostředkovatele OLE DB % ls neobsahuje tabulku % ls
    Pokud se zobrazí tyto chybové zprávy, tabulky pravděpodobně chybí ve schématu Oracle nebo pravděpodobně nemáte oprávnění na této tabulce. Ověřte název schématu má byla zadána pomocí velkých písmen. Má být případ abecedním tabulky a sloupce jako zadaný v tabulkách systému Oracle.

    Na straně Oracle tabulku nebo sloupec, který je vytvořen bez uvozovek uložena velkými písmeny. Pokud tabulka nebo sloupec uzavřený v uvozovkách, je jako je uložen v tabulce nebo sloupci.

    Následující volání se zobrazí, pokud tabulka existuje ve schématu Oracle. Toto volání také ukazuje název tabulky přesný.
    sp_tables_ex  @table_server=Ora817Link, @table_schema='your_schema_name'
    Další informace o chybové zprávě 7306 klepnutím na následující číslo článku databáze Microsoft Knowledge Base:
    240340Distribuované dotazu SQL s Oracle způsobí chybu "Nelze otevřít tabulku"
  • Zpráva 6
    Chyba 7413: Není může provést WINDOWSNT ověřeného přihlášení, protože delegování není k dispozici.
    Msg 18456, Level 14 1 stav řádek 1 přihlášení se nezdařilo pro uživatele ' \ '.
    Následující informace je SQL Server Books Online:
    Tato chybová zpráva označuje, pro přihlášení Windows Microsoft ověřen bez mapování explicitní přihlášení je právě pokusu distribuovaných dotazu. V prostředí operačního systému v zabezpečení, které delegování není podporována WINDOWSNT ověřen nutné přihlášení explicitní mapování vzdáleného přihlášení a heslo vytvořené pomocí sp_addlinkedsrvlogin.
  • Zpráva 7
    Chyba 7354: OLE DB Zprostředkovatel 'MSDAORA' zadána neplatná metadata pro sloupec % ls. Typ dat není podporován.
    Pokud obdržíte chybovou zprávu, může docházet k chybě, která je popsána v následujícím článku znalostní báze Microsoft Knowledge Base:
    243027Oprava: Číselný sloupec v Oracle způsobí chybu 7354
  • Zpráva 8
    Chyba 7356: OLE DB Zprostředkovatel 'MSDAORA' dodaná nekonzistentní metadat pro sloupec. Byla změněna metadata informace v době provádění.
    Pokud dotaz propojený server používá zobrazení Oracle, může docházet k potížím, která je popsána v následujícím článku znalostní báze Microsoft Knowledge Base:
    251238Distribuované dotazy vrací chybu 7356 s MSDAORA
  • Zpráva 9
    Chyba 7391: Operace nemohla být provedena, protože zprostředkovatel OLE DB 'MSDAORA nepodporuje distribuované transakce. Trasování chyby OLE DB [zprostředkovatel OLE/DB 'MSDAORA ITransactionJoin::JoinTransaction vrácena 0x8004d01b]
    Ověřte, jak je popsáno dříve v tomto článku správně registrován verze OCI.

    Poznámka: Pokud jsou všechny správné položky registru, je načten soubor MtxOCI.dll. Není načten soubor MtxOCI.dll, nelze provádět distribuované transakce proti Oracle pomocí zprostředkovatele Microsoft OLE DB pro Oracle nebo pomocí ovladač Microsoft ODBC pro Oracle. Pokud pomocí zprostředkovatele výrobců a zobrazí se chyba 7391, ověřte, zda používáte zprostředkovatele OLE DB podporuje distribuované transakce. Jestliže zprostředkovatele OLE DB nepodporuje distribuované transakce, ověřte, zda je spuštěna Distributed Transaction Coordinator MSDTC (Microsoft).
  • Zpráva 10
    Chyba 7392: Nelze spustit transakci zprostředkovatele OLE DB 'MSDAORA. Trasování chyby OLE DB [zprostředkovatel OLE/DB vrátil 'MSDAORA ITransactionLocal::StartTransaction 0x8004d013: ISOLEVEL = 4096].
    Následující informace je SQL Server Books Online:
    Zprostředkovatel OLE DB vrátil chybu 7392, protože pouze jedna transakce může být aktivní pro tuto relaci. Tato chyba označuje, že změny výkazu dat je právě pokusu proti zprostředkovatele OLE DB při připojení je v transakci explicitní nebo implicitní a zprostředkovatele OLE DB nepodporuje vnořené transakce. SQL Server vyžaduje tato podpora tak, aby na splnění určitých podmínek chyba jej ukončit efekty výkazu změny dat při pokračováním transakce.
    Pokud SET XACT_ABORT je zapnuto, SQL Server nevyžaduje podporu vnořenou transakci z zprostředkovatele OLE DB. SET ON XACT_ABORT proto spustit před spustit příkazy změny data proti vzdáleného tabulek v implicitní nebo explicitní transakce. Proveďte v případě zprostředkovatele OLE DB, který používáte nepodporuje vnořené transakce.

Odkazy

Další informace naleznete v následujících článcích znalostní báze Microsoft Knowledge Base:
244661Omezení zprostředkovatele OLE DB a ovladač Microsoft Oracle ODBC
259959Techniky ladění problémy s připojením k serveru Oracle pomocí ovladače ODBC a zprostředkovatele OLE DB
239719Supportability ovladač/OLE DB Zprostředkovatel Microsoft ODBC pro Oracle w.r.t Oracle 8.x
193893Informace o použití Oracle s součásti serveru a COM +
191168Chyba zařazení volání transakce objektu se nezdařilo "-2147168246 (8004d00a)"
Další informace o použití propojený server spolu s DB2 klepnutím na následující čísla následujících článcích databáze Microsoft Knowledge Base:
218590Konfigurace zdroje dat pro zprostředkovatele Microsoft OLE DB DB2
216428Konfigurace Ovladače Microsoft ODBC DB2

Vlastnosti

ID článku: 280106 - Poslední aktualizace: 23. prosince 2005 - Revize: 7.7
Informace v tomto článku jsou určeny pro produkt:
  • 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 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Klíčová slova: 
kbmt kbhowtomaster KB280106 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:280106

Dejte nám zpětnou vazbu

 

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