Kurma ve SQL Server'da Oracle veritabanına bağlı bir sunucu ile ilgili sorunları giderme hakkında

Makale çevirileri Makale çevirileri
Makale numarası: 280106 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu adım adım makalede, bir Oracle veritabanına çalışan Microsoft SQL Server ve Oracle bağlantılı bir sunucuya kurarken karşılaşabileceğiniz sık karşılaşılan hatalar için temel sorun giderme adımlarını sağlar bir bilgisayardan bağlantılı bir sunucu nasıl açıklar.

Oracle için bağlantılı bir sunucu ayarlamak için adımlar

  1. Bağlantılı sunucu ayarlanmış bir SQL Server çalıştıran bilgisayarda, Oracle istemci yazılımı yüklemeniz gerekir.
  2. Istediğiniz sürücüyü, SQL Server çalıştıran bilgisayara yükleyin. Microsoft yalnızca Microsoft OLE DB sağlayıcısı Oracle ve Microsoft ODBC sürücüsü için Oracle için destekler. Oracle için bağlanmak için bir üçüncü taraf sağlayıcıyı veya üçüncü taraf sürücü kullanıyorsanız, sağlayıcıyı veya sürücü kullanarak karşılaşabileceğiniz sorunları için ilgili satıcı başvurmalısınız.
  3. Oracle için Oracle ve Microsoft ODBC sürücüsü için Microsoft OLE DB sağlayıcı kullanıyorsanız, aşağıdakileri göz önünde bulundurun:
    • OLE DB sağlayıcısı hem de Microsoft Data Access Components (MDAC) ile birlikte gelen ODBC sürücüsü SQL gerektiren * NET 2.3. x veya sonraki bir sürümü. Oracle 7.3 yüklemelisiniz. x istemci yazılımı veya sonraki bir sürümünü, istemci bilgisayarda. SQL Server çalıştıran bilgisayar istemci bilgisayardır.
    • MDAC 2.5 veya sonraki bir sürümünü, SQL Server'ın çalıştığı bilgisayarda yüklü olduğundan emin olun. MDAC 2.1 veya daha önceki bir sürümünü, Oracle 8'i kullanan veritabanları için bağlanamıyor. x veya sonraki bir sürümü.
    • MDAC 2.5 veya sonraki sürümleri, Oracle ile çalışmak üzere etkinleştirmek için istemci yazılımı, kayıt defterinde gereken istemci bilgisayarda SQL Server çalıştırılan belirtildiği gibi aşağıdaki tabloda değiştirilmesi.
                 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. Oracle istemci yazılımı yüklendikten sonra SQL Server çalıştıran bilgisayarı yeniden başlatın.
  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
Not Oracle için Microsoft ODBC sürücüsü kullanıyorsanız, @ datasrc kullanabileceğiniz parametresini kullanarak bir DSN adı belirtin. Sağlayıcı dizesi DSN - daha az, bağlantı @ provstr sağlanır parametresi. Microsoft OLE DB sağlayıcısı ile Oracle için @ datasrc TNSNames.Ora dosyasında yapılandırılmış Oracle sunucu diğer adını kullanın parametresi. Daha fazla bilgi için SQL Server Books Online'da "sp_addlinkedserver" konusuna bakın.

Yayg?n hata iletileri ve bunları ilgili sorunları giderme hakkında

Önemli Bu bölüm, yöntem veya görev kayıt defterini nasıl söyleyin adımları içerir. Ancak kayıt defterini hatalı olarak değiştirirseniz önemli sorunlar oluşabilir. Bu nedenle, bu adımları dikkatlice uyguladığınızdan emin olun. Ek koruma için, kayıt defterini değiştirmeden önce yedeklemeyi unutmayın. Bir sorun oluşursa kayıt defterini daha sonra geri yükleyebilirsiniz. Kayıt defterini yedekleme ve geri yükleme hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
322756Windows'da kayıt defterini yedekleme ve geri yükleme


Bir dağıtık sorgu çalıştırdığınızda karşılaşabileceğiniz bir hata ile ilgili genişletilmiş bilgileri almak için aşağıdaki iki yöntemden birini kullanabilirsiniz.
  • Yöntem 1
    Query Analyzer'da üzerinde 7300 izleme bayrağı'nı açmak için şu kodu çalıştırın.
    DBCC Traceon(7300)
  • Yöntem 2
    SQL Profiler "Hataları ve Uyarıları" olay kategorisinde bulunan "OLEDB hataları" Olay yakalayın. Hata iletisi biçimi şudur:
    Interface::Method onaltılık hata koduyla başarısız oldu.
    Onaltılık hata kodu MDAC Software Development Kit'e (SDK) ile gelen Oledberr.h dosyasına bakabilirsiniz.
Hata iletisinde nasıl sorun giderileceği hakkında bilgi ile birlikte oluşabilecek on yayg?n hata iletileri listesi aşağıdadır.

Not , SQL Server 2005 kullanıyorsanız, bu hata iletileri biraz farklı olabilir. Ancak, bu hata iletilerini hata kimliklerinin SQL Server 2000'de bunları olarak aynı. Bu nedenle, bunları kimlikleri hata tanımlayabilirsiniz.

Not Performansla ilgili sorunlar için SQL Server Books Online için "Dağıtılmış sorgu en iyileştirme" konusunu arayın.
  • <a1>Ileti</a1> 1
    Hata 7399: OLE DB Sağlayıcı '% ls' bir hata bildirdi. % ls
    Izleme bayrağı 7300 veya genişletilmiş OLEDB hata bilgilerini almak için "OLEDB hataları" Olay yakalamak için SQL Profiler aracının kullanımı'nı açın.
  • Iletinin 2a
    "ORA-12154: TNS: hizmet çözülemedi adı"
    Iletinin 2b
    "Oracle(TM) istemcisi ve ağ bileşenleri bulunamadı. Bu bileşenler Oracle Corporation tarafından sağlanır ve Oracle sürüm 7.3.3 parçası (veya daha büyük) istemci yazılımı yükleme "
    Oracle Bağlantısı sorunlarını giderme hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
    259959Bağlantı sorunları bir ODBC sürücüsüne ve OLE DB Sağlayıcısı'nı kullanarak bir Oracle Sunucusu için hata ayıklama için teknikleri
  • Ileti 3
    Hata 7302: OLE DB Sağlayıcısı 'MSDAORA' örneği oluşturulamadı
    MSDAORA.dll dosyası doğru şekilde kayıtlı olduğundan emin olun. (MSDAORA.dll Oracle dosyası için Microsoft OLE DB sağlayıcısı dosyadır.) Oracle için Microsoft OLE DB Provider kaydetmek için Regsvr32.exe'yi kullanın. Kayıt başarısız olursa, Microsoft Data Access Components (MDAC) yeniden yükleyin. MDAC hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
    http://msdn.microsoft.com/data/Default.aspx
    Not Üçüncü taraf bir Oracle Sağlayıcısı'nı kullanın ve Oracle sağlayıcınız bir SQL Server işleminin dışında çalıştırılamıyor, işlem içi çalışmak üzere etkinleştirmek sağlayıcı seçeneklerini değiştirerek. Sağlayıcı seçeneklerini değiştirmek için aşağıdaki yöntemlerden birini kullanın.
    • Yöntem 1
      Aşağıdaki kayıt defteri anahtarını bulun. Daha sonra AllowInProcess (DWORD)</a0> girdisinin değerini 1 olarak değiştirin. Bu kayıt defteri anahtarı karşılık gelen bir sağlayıcı adı altında bulunur:
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\ProviderName
    • Yöntem 2
      Yeni bir bağlı sunucu eklediğinizde, doğrudan yoluyla SQL Server Enterprise Manager InProcess izin ver seçeneğini ayarlayın. Sağlayıcı, Seçenekler ' i tıklatın ve sonra InProcess izin ver onay kutusunu seçmek için tıklatın.
  • Ileti 4
    Hata 7303: OLE DB Sağlayıcısı 'MSDAORA' veri kaynağı nesnesi başlatılamadı. [OLE/DB sağlayıcı iletisini verdi: ORA-01017: Geçersiz kullanıcı adı veya parola, oturum açma engellendi] OLE DB hata izleme [OLE/DB Provider 'MSDAORA' IDBInitialize::Initialize 0x80040e4d döndürdü].
    Bu hata iletisi, bağlı sunucu doğru oturum açma eşleme olup olmadığını gösterir. Oturum açma bilgilerini doğru olarak sp_helplinkedsrvlogin saklı yordamını yeniden çalıştırabilirsiniz. Ayrıca, sunucunun yapılandırma parametrelerini doğru belirttiğinizden emin olun.
  • Ileti 5
    Hata 7306: OLE DB Sağlayıcısı'ndan 'MSDAORA' tablo '% ls' açılamadı. Belirtilen tablo yok. [OLE/DB sağlayıcı iletisini verdi: Tablo mevcut değil.][OLE/DB sağlayıcı iletisini verdi: ORA-00942: Tablo veya Görünüm yok] OLE DB hata izleme [OLE/DB Provider 'MSDAORA' IOpenRowset::OpenRowset 0x80040e37 döndürdü: Belirtilen tablo yok.].
    7312 Hata: Geçersiz kullanımı şema ve/veya kataloğu için OLE DB Sağlayıcısı '% ls'. Bir four-part adı sağlanmadı, ancak bu sağlayıcı için bir katalog ve/veya şema kullanmak için gerekli arabirimleri göstermiyor.
    7313 Hata: Geçersiz şema veya katalog Sağlayıcı '% ls' için belirtildi.
    7314 Err: OLE DB Sağlayıcı '% ls' tablo '% ls' içermiyor
    Bu hata iletileri alırsanız, bir tablo Oracle şemada eksik olabilir veya bu tabloya izinlere sahip olmayabilirsiniz. Şema adı büyük kullanarak yazdığınızı olduğunu doğrulayın. Tablo ve sütunlar alfabetik durumda olması gereken Oracle tablolarındaki belirtildiği gibi.

    Oracle tarafında, tablo veya çift tırnak işaretleri olmadan oluşturulan sütun büyük harf olarak depolanır. Tablo veya sütunu, çift tırnak işareti içine alınır, tablo veya sütunu olarak depolanır.

    Şu çağrı, tablo Oracle şemada olup olmadığını gösterir. Bu çağrı da tam bir tablo adı. gösterir
    sp_tables_ex  @table_server=Ora817Link, @table_schema='your_schema_name'
    7306 Hata iletisi hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
    240340Oracle ile SQL dağıtılmış sorguyu "tablosu açılamadı" hata neden olur.
  • <a1>Ileti</a1> 6
    Hata 7413: temsilci seçme kullanılabilir olmadığı için Windows NT kimliği doğrulanmış bir oturum yapmayacak.
    Ileti 18456, Düzey 14, State 1, Line 1 oturum açma kullanıcısı için başarısız oldu ' \ '.
    Aşağıdaki bilgiler, SQL Server Books Online şöyledir:
    Bu hata iletisi, bir dağıtık sorgu için bir açık oturum eşleme olmadan bir Microsoft Windows kimlik doğrulaması oturum açma girişimi gösterir. Hangi güvenlik temsilci desteklenmeyen bir işletim sistemi ortamında Windows NT oturum açma gereksinimini bir uzak oturum açma ve parola sp_addlinkedsrvlogin kullanılarak oluşturulan açık bir eşleme kimlik doğrulaması.
  • <a1>Ileti</a1> 7
    Hata 7354: OLE DB Sağlayıcısı 'sağlanan MSDAORA' Geçersiz metadata için <a1>sütun</a1> '% ls'. Veri türü desteklenmiyor.
    Bu hata iletisini alırsanız, aşağıdaki Microsoft Knowledge Base makalesinde anlatılan hata yaşıyor olabilirsiniz:
    243027Düzeltme: Oracle sayısal sütununda <a1>hata</a1> 7354 neden olur.
  • <a1>Ileti</a1> 8
    7356 Hata: Meta OLE DB Sağlayıcısı 'sağlanan MSDAORA' tutarsız veriler bir sütun için. Meta veri bilgi yürütme zaman değiştirildi.
    Bilgisayarınızı bağlantılı sunucu sorgusu, bir Oracle görünümü kullanıyorsa, aşağıdaki Microsoft Knowledge Base makalesinde anlatılan sorun yaşıyor olabilirsiniz:
    251238Dağıtılmış sorgular MSDAORA 7356 hata döndürür.
  • <a1>Ileti</a1> 9
    7391 Hata: OLE DB Sağlayıcısı 'MSDAORA' dağıtılmış hareketleri desteklemek için işlem gerçekleştirilemedi. OLE DB hata izleme [OLE/DB Provider 'MSDAORA' ITransactionJoin::JoinTransaction 0x8004d01b döndürdü.]
    OCI sürümleri bu makalenin önceki bölümlerinde açıklanan düzgün kaydettirilmiş olduğunu doğrulayın.

    Not Kayıt defteri girdilerinin tümü doğruysa, MtxOCI.dll dosyası yüklenir. MtxOCI.dll dosya yüklü değil, Oracle için Microsoft OLE DB Provider'ı kullanarak veya Oracle için Microsoft ODBC Driver'ı kullanarak Oracle karşı dağıtılmış işlemleri gerçekleştiremiyor. Bir üçüncü taraf sağlayıcı kullanıyorsanız ve hata 7391 aldığınız, kullandığınız OLE DB sağlayıcısı için dağıtılmış hareketleri desteklediğini doğrulayın. OLE DB sağlayıcısı, dağıtılmış hareketleri destekler, Microsoft Dağıtılmış işlem Düzenleyicisi (MSDTC) çalıştığını doğrulayın.
  • <a1>Ileti</a1> 10
    Hata 7392: OLE DB Sağlayıcısı 'MSDAORA' için bir işlem başlatılamadı. OLE DB hata izleme [OLE/DB Provider 'MSDAORA' ITransactionLocal::StartTransaction 0x8004d013 döndürdü: ISOLEVEL 4096 =].
    Aşağıdaki bilgiler, SQL Server Books Online şöyledir:
    Bu oturum için yalnızca bir işlem etkin olabilir, çünkü OLE DB sağlayıcısı 7392 hata döndürdü. Bu hata, bir veri değişikliği bildirimi karşı bir OLE DB Sağlayıcısı bağlantı açık veya örtülü bir işlem içinde olduğunda ve OLE DB sağlayıcısı iç içe geçmiş işlem desteği denenir olduğunu gösterir. Belirli hata koşullara göre hareketin devam ederken veri değişikliği bildirimi etkilerini sonlandırmak böylece, SQL Server bu desteği gerektirir.
    SET XACT_ABORT AÇıK ise, SQL Server OLE DB Sağlayıcısı Destek iç içe geçmiş işlem gerektirmez. Bu nedenle, örtülü veya açık bir hareket içinde uzaktan tablolara yönelik veri değişikliği deyimleri çalıştırmadan önce SET XACT_ABORT ON yürütün. Kullandığınız OLE DB sağlayıcısı iç içe geçmiş işlem desteği durumunda, bunu yapın.

Referanslar

Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
244661Microsoft Oracle ODBC sürücüsü ve OLE DB Sağlayıcısı'nın sınırlamaları
259959Bağlantı sorunları bir ODBC sürücüsüne ve OLE DB Sağlayıcısı'nı kullanarak bir Oracle Sunucusu için hata ayıklama için teknikleri
239719Oracle için Microsoft ODBC sürücüsü/OLE DB Sağlayıcısı'nın desteklenebilirlik w.r.t Oracle 8.x
193893Oracle ile Microsoft Hareket Sunucusu ve COM + bileşenleri kullanma hakkında bilgi
191168Hata nesnenin işlem çağırma üzerinde listeleme başarısız oldu "-2147168246 (8004d00a)"
Bağlantılı bir sunucu DB2 ile birlikte kullanma hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
218590DB2 için Microsoft OLE DB sağlayıcısı için veri kaynakları'nı yapılandırma
216428Yapılandırma Microsoft ODBC sürücüsü DB2

Özellikler

Makale numarası: 280106 - Last Review: 23 Aralık 2005 Cuma - Gözden geçirme: 7.7
Bu makaledeki bilginin uygulandığı durum:
  • 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 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Workgroup
Anahtar Kelimeler: 
kbmt kbhowtomaster KB280106 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:280106

Geri Bildirim Ver

 

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