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.
Bağlantılı sunucu ayarlanmış bir SQL Server çalıştıran bilgisayarda, Oracle istemci yazılımı yüklemeniz gerekir.
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.
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"
Oracle istemci yazılımı yüklendikten sonra SQL Server çalıştıran bilgisayarı yeniden başlatın.
On the computer that is running SQL Server, set up a linked server by using the following script.
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:
322756
(http://support.microsoft.com/kb/322756/
)
Windows'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:
259959
(http://support.microsoft.com/kb/259959/
)
Bağ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:
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:
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
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:
240340
(http://support.microsoft.com/kb/240340/
)
Oracle 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:
243027
(http://support.microsoft.com/kb/243027/
)
Dü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:
251238
(http://support.microsoft.com/kb/251238/
)
Dağı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.
Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
244661
(http://support.microsoft.com/kb/244661/
)
Microsoft Oracle ODBC sürücüsü ve OLE DB Sağlayıcısı'nın sınırlamaları
259959
(http://support.microsoft.com/kb/259959/
)
Bağ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
239719
(http://support.microsoft.com/kb/239719/
)
Oracle için Microsoft ODBC sürücüsü/OLE DB Sağlayıcısı'nın desteklenebilirlik w.r.t Oracle 8.x
193893
(http://support.microsoft.com/kb/193893/
)
Oracle ile Microsoft Hareket Sunucusu ve COM + bileşenleri kullanma hakkında bilgi
191168
(http://support.microsoft.com/kb/191168/
)
Hata 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:
218590
(http://support.microsoft.com/kb/218590/
)
DB2 için Microsoft OLE DB sağlayıcısı için veri kaynakları'nı yapılandırma
216428
(http://support.microsoft.com/kb/216428/
)
Yapılandırma Microsoft ODBC sürücüsü DB2
Ö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
(http://support.microsoft.com/kb/280106/en-us/
)
Bu makaleyi kullanabilmek için kişisel olarak ne kadar çaba harcadınız?
Çok az
Az
Ne Az, Ne Fazla
Fazla
Çok fazla
Bu bilgiyi geliştirmek için ne yapabiliriz?
Gizliliğinizi korumak için, irtibat bilgilerinizi görüşlerinize eklemeyin.
Teşekkür ederiz! Görüşleriniz, destek içeriğimizi geliştirmek amacıyla kullanılacaktır. Daha fazla yardım seçeneği için lütfen, Yardım ve Destek Ana Sayfası’nı ziyaret edin.