Anda sedang offline saat ini, menunggu internet Anda untuk menyambung kembali

Cara mengatur dan memecahkan masalah terkait server database Oracle di SQL Server

PENTING: Artikel ini diterjemahkan oleh perangkat lunak penerjemahan mesin Microsoft, dan mungkin telah diedit oleh Masyarakat Microsoft melalui teknologi CTF dan bukan oleh seorang penerjemah profesional. Microsoft menawarkan baik artikel yang diterjemahkan oleh manusia maupun artikel hasil editan terjemahan oleh mesin/komunitas, sehingga Anda dapat mengakses semua artikel di Sentra Pengetahuan yang kami miliki dalam berbagai bahasa. Namun artikel hasil editan mesin atau bahkan komunitas tidak selalu sempurna. Artikel ini dapat mengandung kesalahan dalam hal kosa kata, sintaksis atau tatabahasa, sangat mirip dengan penutur asing yang membuat kekeliruan ketika berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab atas ketidakakuratan, kesalahan atau kerugian apa pun akibat dari kekeliruan dalam penerjemahan isi atau penggunaannya oleh pelanggan kami. Microsoft juga akan senantiasa memperbarui perangkat lunak penerjemahan mesin dan alat untuk menyempurnakan Editan Hasil Penerjemahan Mesin.

Klik disini untuk melihat versi Inggris dari artikel ini: 280106
Ringkasan
Artikel ini selangkah demi selangkah menjelaskan cara mengkonfigurasi server tertaut dari komputer yang menjalankan Microsoft SQL Server database Oracle dan juga menyediakan langkah pemecahan masalah dasar untuk kesalahan umum yang mungkin Anda alami ketika Anda mengatur server tertaut ke Oracle.

Langkah-langkah untuk mengkonfigurasi server tertaut ke Oracle

  1. Anda harus menginstal peranti penangkap lunak klien Oracle pada thecomputer yang menjalankan SQL Server di mana server tertaut diatur.
  2. Menginstal pengandar yang diinginkan pada komputer yang menjalankan SQL Server.Microsoft hanya mendukung penyedia DB MicrosoftOLE Oracle dan Microsoft Driver ODBC untuk Oracle. Jika Anda menggunakan penyedia pihak ketiga atau toconnect pengandar pihak ketiga untuk Oracle, Anda harus menghubungi vendor masing-masing untuk setiap masalah yang mungkin Anda alami dengan menggunakan penyedia atau pengandar.
  3. Jika Anda menggunakan penyedia DB MicrosoftOLE Oracle dan Microsoft Driver ODBC untuk Oracle, pertimbangkan berikut ini:
    • Penyedia OLE DB dan driver ODBC yang disertakan dengan Microsoft Data Access Components (MDAC) memerlukan SQL * Net 2.3.x, atau versi yang lebih baru. Anda harus menginstal Oracle 7.3.peranti penangkap lunak klien x , atau versi yang lebih baru, pada komputer klien. komputer klien adalah komputer yang menjalankan SQL Server.
    • Pastikan bahwa Anda memiliki MDAC 2.5, atau versi yang lebih baru, yang diinstal di komputer yang menjalankan SQL Server. Dengan MDAC 2.1 atau versi yang lebih lawas, Anda tidak dapat menyambung ke pangkalan data yang menggunakan Oracle 8.x atau versi yang lebih baru.
    • Untuk mengaktifkan MDAC 2.5, atau versi yang lebih baru, untuk bekerja dengan peranti penangkap lunak klien Oracle, registri harus diubah pada komputer klien yang menjalankan SQL Server seperti yang ditunjukkan pada Daftar Tabel berikut.
                 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. Mulai ulang komputer yang menjalankan SQL Server setelah Anda menginstal peranti penangkap lunak klien theOracle.
  5. Di komputer yang menjalankan SQL Server, menyiapkan server tertaut menggunakan skrip thefollowing.
    -- 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_linkedserversEXEC sp_helpserverselect * from sysservers
Catatan Jika Anda menggunakan Microsoft ODBC Driver untuk Oracle, Anda dapat menggunakan @datasrc parameter untuk menentukan nama DSN. Untuk sambungan DSN-kurang, string penyedia disediakan melalui @provstr parameter. Dengan Microsoft OLE DB penyedia untuk Oracle, gunakan Oracle server alias yang dikonfigurasi dalam file TNSNames.Ora untuk @datasrc parameter. Untuk informasi selengkapnya, lihat topik "sp_addlinkedserver" di buku daring SQL Server.

Pesan kesalahan umum dan bagaimana cara mengatasi masalah tersebut

Penting Bagian, metode, atau tugas ini berisi langkah-langkah yang memberitahu Anda bagaimana memodifikasi registri. Namun, masalah serius dapat terjadi apabila Anda salah mengubah registri. Oleh karena itu, pastikan Anda mengikuti langkah-langkah ini dengan seksama. Untuk perlindungan tambahan, buat cadangan registri sebelum mengubahnya. Kemudian, Anda dapat memulihkan registri apabila terjadi masalah. Untuk informasi selengkapnya tentang cara membuat cadangan dan memulihkan registri, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
322756 Cara membuat cadangan dan memulihkan registri di Windows


Anda dapat menggunakan salah satu dari dua metode berikut untuk mendapatkan diperpanjang informasi tentang kesalahan yang Anda alami ketika Anda mengeksekusi kueri terdistribusi.
  • Metode 1
    Dalam Query Analyzer, jalankan kode berikut untuk mengaktifkan bendera pelacakan 7300.
    DBCC Traceon(7300)
  • Metode 2
    Merekam peristiwa "OLEDB galat" yang terletak di kategori peristiwa "Galat andWarnings" di SQL Profiler. Format pesan galat adalah thefollowing:
    Interface::method gagal dengan kode galat hex.
    Anda dapat Telisik hex-galat kode pada berkas Oledberr.h yang isincluded dengan kit pengembangan peranti penangkap lunak MDAC (SDK).
Berikut ini adalah daftar sepuluh pesan galat yang mungkin terjadi, serta informasi tentang cara memecahkan masalah pesan galat.

Catatan Jika Anda menggunakan SQL Server 2005, pesan galat ini mungkin sedikit berbeda. Namun, id pesan galat ini galat sama mereka di SQL Server 2000. Oleh karena itu, Anda dapat mengidentifikasi mereka dengan galat id.

Catatan Untuk masalah terkait kinerja, Cari SQL Server BooksOnline topik "Mengoptimalkan didistribusikan permintaan".
  • Pesan 1
    Galat 7399: Penyedia OLE DB ' % ls'reported galat. %ls
    Mengaktifkan bendera pelacakan 7300 atau menggunakan SQL Profiler untuk merekam peristiwa "Galat OLEDB" untuk mendapatkan informasi galat OLEDB diperpanjang.
  • 2a pesan
    "ORA-12154: TNS: bisa tidak resolveservice nama"
    2b pesan
    "Oracle(tm) klien dan networkingcomponents tidak ditemukan. Komponen tersebut diberikan oleh Oracle Corporationand bagian dari versi Oracle 7.3.3 (atau lebih) klien softwareinstallation "
    Untuk informasi selengkapnya tentang cara menyelesaikan masalah konektivitas Oracle, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
    259959 Teknik debug masalah konektivitas ke Oracle server menggunakan pengandar ODBC dan penyedia OLE DB
  • Pesan 3
    Galat 7302: Tidak dapat membuat aninstance penyedia OLE DB 'MSDAORA'
    Pastikan bahwa berkas MSDAORA.dll terdaftar dengan benar. (Berkas MSDAORA.dll adalah penyedia Microsoft OLE DB untuk Oracle berkas). Menggunakan RegSvr32.exe untuk mendaftarkan Microsoft OLE DB penyedia untuk Oracle. Jika registrasi gagal, instal ulang Microsoft Data Access Components (MDAC). Untuk informasi selengkapnya tentang MDAC, kunjungi situs web Microsoft Developer Network (MSDN) berikut:Catatan Jika Anda menggunakan penyedia Oracle pihak ketiga, dan penyedia Oracle tidak dapat dijalankan di luar proses SQL Server, memungkinkan untuk berjalan dalam proses dengan changingthe penyedia opsi. Untuk mengubah opsi penyedia, gunakan salah satu metode berikut.
    • Metode 1
      Temukan bukti kunci registri berikut ini. Kemudian, Ubah nilai entri AllowInProcess (DWORD) ke 1. bukti kunci registri ini adalah locatedunder nama penyedia terkait:
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\ProviderName
    • Metode 2
      Menetapkan opsi Memungkinkan InProcess langsung melalui SQL Server Enterprise Manager saat youadd baru terkait server. Klik Opsi penyedia, dan kemudian klik untuk memilih kotak centang yang Memungkinkan InProcess .
  • Pesan 4
    Galat 7303: Bisa tidak initializedata sumber objek penyedia OLE DB 'MSDAORA'. [Returnedmessage penyedia OLE DB: ORA-01017: nama pengguna/sandi tidak valid; log masuk ditolak] OLE DB galat jejak [penyedia OLE DB 'MSDAORA' IDBInitialize::Initialize kembali 0x80040e4d].
    Pesan kesalahan ini menunjukkan bahwa server tertaut tidak memiliki login benar pemetaan. Anda dapat menjalankan prosedur sp_helplinkedsrvlogin disimpan untuk menetapkan informasi login dengan benar. Selain itu, pastikan bahwa Anda telah menetapkan parameter yang benar untuk konfigurasi linkedserver.
  • Pesan 5
    Galat 7306: Tidak dapat membuka Daftar Tabel '%ls' dari penyedia OLE DB 'MSDAORA'. Daftar Tabel yang ditetapkan tidak ada.[Penyedia OLE DB kembali pesan: Daftar Tabel tidak ada.][OLE DB providerreturned pesan: ORA-00942: Daftar Tabel atau tampilan tidak ada] OLE DB galat jejak [penyedia OLE DB 'MSDAORA' IOpenRowset::OpenRowset kembali 0x80040e37: Daftar Tabel Thespecified tidak ada.].
    Galat 7312:Invalid penggunaan skema dan/atau Katalog untuk penyedia OLE DB '%ls'. Empat-partname diberikan, tetapi penyedia memaparkan diperlukan antarmuka touse Katalog dan/atau skema.
    Galat 7313:Invalid skema atau Katalog yang ditetapkan untuk penyedia '%ls'.
    ERR 7314: Penyedia OLE DB '%ls' tidak berisi Daftar Tabel '%ls'
    Jika Anda menerima pesan galat ini, Daftar Tabel mungkin hilang di skema Oracle atau Anda mungkin tidak memiliki izin pada Daftar Tabel tersebut. Verifikasi bahwa nama skema yang telah diketik menggunakan huruf besar. Kasus abjad Daftar Tabel dan kolom harus seperti yang ditentukan dalam Daftar Tabel sistem Oracle.

    Di sebelah Oracle, Daftar Tabel atau kolom yang dibuat tanpa tanda kutip ganda disimpan dalam huruf besar. Jika Daftar Tabel atau kolom yang disertakan dalam tanda kutip ganda, Daftar Tabel atau kolom yang disimpan sebagai.

    Panggilan berikut ini menunjukkan jika Daftar Tabel yang ada di Oracle skema. Panggilan ini juga menampilkan nama Daftar Tabel yang tepat.
    sp_tables_ex  @table_server=Ora817Link, @table_schema='your_schema_name'
    Untuk informasi selengkapnya tentang pesan galat 7306, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
    240340 Permintaan terdistribusi SQL dengan Oracle menyebabkan galat "Tidak dapat membuka tabel"
  • Pesan 6
    Galat 7413: Tidak dapat melakukan aWindows NT diotentikasi login karena delegasi tidak tersedia.
    MSG 18456, 14 tingkat, negara bagian 1, baris 1 Loginfailed untuk pengguna ' \'.
    Informasi berikut ini dari buku daring SQL Server:
    Pesan kesalahan ini menunjukkan bahwa permintaan terdistribusi sedang berusaha untuk Microsoft Windows diotentikasi login tanpa eksplisit login pemetaan. Di lingkungan sistem operasi keamanan yang delegasi tidak didukung, Windows NT diotentikasi perlu login pemetaan eksplisit jauh login dan sandi yang dibuat menggunakan sp_addlinkedsrvlogin.
  • Pesan 7
    Galat 7354: OLE DB provider'MSDAORA' disediakan tidak sah metadata untuk kolom '%ls'. Jenis data adalah notsupported.
    Jika Anda menerima pesan galat ini, Anda mungkin mengalami bug yang dijelaskan di artikel Pangkalan Pengetahuan Microsoft berikut ini:
    243027 MEMPERBAIKI: Numerik kolom di Oracle menyebabkan kesalahan 7354
  • Pesan 8
    Galat 7356: OLE DB provider'MSDAORA' disediakan metadata kolom yang tidak konsisten. Metadata waschanged informasi pada waktu eksekusi.
    Jika pertanyaan terkait server Anda menggunakan tampilan Oracle, Anda mungkin mengalami masalah yang dijelaskan di artikel Pangkalan Pengetahuan Microsoft berikut ini:
    251238 Permintaan terdistribusi gulung balik galat 7356 dengan MSDAORA
  • Pesan 9
    Galat 7391: Operasi yang dapat dijalankan karena penyedia OLE DB 'MSDAORA' tidak mendukung distributedtransactions notbe. OLE DB galat jejak [penyedia OLE DB 'MSDAORA' ITransactionJoin::JoinTransaction kembali 0x8004d01b]
    Verifikasi bahwa versi theOCI terdaftar dengan benar seperti yang dijelaskan di artikel ini.

    Catatan Jika entri registri semua benar, MtxOCI.dll berkas isloaded. Jika berkas MtxOCI.dll tidak dimuat, Anda tidak dapat melakukan distributedtransactions terhadap Oracle dengan menggunakan Microsoft OLE DB penyedia untuk Oracle orby menggunakan Microsoft ODBC Driver untuk Oracle. Jika Anda menggunakan penyedia pihak ketiga dan youreceive 7391 galat, verifikasi bahwa penyedia OLE DB bahwa Anda menggunakan supportsdistributed transaksi. Jika penyedia OLE DB mendukung distributedtransactions, verifikasi bahwa Microsoft didistribusikan transaksi Coordinator(MSDTC) berjalan.
  • Pesan 10
    Galat 7392: Tidak dapat memulai atransaction penyedia OLE DB 'MSDAORA'. OLE DB galat jejak [OLE DB Provider'MSDAORA' ITransactionLocal::StartTransaction kembali 0x8004d013:ISOLEVEL = 4096].
    Informasi berikut ini dari buku daring SQL Server:
    Penyedia OLE DB kembali galat 7392 karena hanya satu transaksi dapat aktif untuk sesi ini. Galat ini menunjukkan bahwa pernyataan modifikasi data yang dilakukan terhadap penyedia OLE DB ketika sambungan dalam transaksi eksplisit atau implisit, dan penyedia OLE DB tidak mendukung bersarang transaksi. SQL Server memerlukan dukungan sehingga pada kondisi galat tertentu, hal itu dapat menghentikan efek pernyataan modifikasi data sementara melanjutkan transaksi.
    Jika menetapkan XACT_ABORT ON, SQL Server tidak memerlukan dukungan nestedtransaction dari penyedia OLE DB. Oleh karena itu, jalankan SET XACT_ABORT ONbefore Anda menjalankan pernyataan modifikasi data terhadap Daftar Tabel jauh animplicit atau transaksi eksplisit. Melakukannya jika penyedia OLE DB bahwa Anda menggunakan sehingga dukungan bersarang transaksi.
Referensi
Untuk informasi selengkapnya, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
244661 Batasan Microsoft Oracle ODBC driver dan penyedia OLE DB
259959 Teknik debug masalah konektivitas ke Oracle server menggunakan pengandar ODBC dan penyedia OLE DB
239719 Dukungan Microsoft ODBC driver/OLE DB penyedia untuk Oracle w.r.t Oracle 8.x
193893 Informasi tentang cara menggunakan Oracle dengan komponen Microsoft Transaction Server dan COM +
191168 Galat "-2147168246 (8004d00a)" gagal untuk meminta pada menelepon objek transaksi
Untuk informasi selengkapnya tentang cara menggunakan server yang terkait dengan DB2, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
218590 data sumber konfigurasi untuk penyedia Microsoft OLE DB untuk DB2
216428 Mengkonfigurasi driver Microsoft ODBC untuk DB2
terkait permintaan terdistribusi SQL Oracle DBCC jejak bendera

Peringatan: Artikel ini telah diterjemahkan secara otomatis

Properti

ID Artikel: 280106 - Tinjauan Terakhir: 12/22/2014 22:03:00 - Revisi: 5.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 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbsqlsetup kbhowtomaster kbmt KB280106 KbMtid
Tanggapan
xxx-4xxx-Rxxx-xxxxxxxxxxxx".replace(/x/g, function () { return Math.floor(Math.random() * 16).toString(16); })).replace("R", (8 | Math.floor(Math.random() * 3)).toString(16)); var m = document.createElement("meta"); m.content = guid; m.name = "ms.dqid"; document.getElementsByTagName("head")[0].appendChild(m);