Bagaimana untuk mengatur dan memecahkan masalah sebuah server yang terhubung ke database Oracle di SQL Server

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 280106 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

Ringkasan

Artikel ini selangkah demi selangkah menjelaskan cara mengatur terkait server dari komputer yang menjalankan Microsoft SQL Server database Oracle dan juga menyediakan langkah-langkah pemecahan masalah dasar untuk kesalahan umum yang mungkin Anda alami ketika Anda mengatur server yang terhubung ke Oracle.

Langkah-langkah untuk mendirikan sebuah server yang terhubung ke Oracle

  1. Anda harus menginstal peranti penangkap lunak Oracle klien pada komputer yang menjalankan SQL Server mana server terkait diatur.
  2. Menginstal pengandar yang Anda inginkan pada komputer yang menjalankan SQL Server. Microsoft hanya mendukung Microsoft OLE DB penyedia untuk Oracle dan Microsoft ODBC Driver untuk Oracle. Jika Anda menggunakan pihak ketiga penyedia atau pengandar pihak ketiga untuk terhubung ke Oracle, Anda harus menghubungi masing-masing vendor untuk setiap masalah yang mungkin Anda alami dengan menggunakan penyedia atau driver mereka.
  3. Jika Anda menggunakan Microsoft OLE DB penyedia untuk Oracle dan Microsoft ODBC Driver untuk Oracle, pertimbangkan hal berikut:
    • Penyedia OLE DB dan ODBC driver yang disertakan dengan Microsoft Data akses komponen (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 klien komputer. komputer klien adalah komputer yang menjalankan SQL Server.
    • Pastikan bahwa Anda memiliki 2,5 MDAC, atau versi yang lebih baru, diinstal pada komputer yang menjalankan SQL Server. Dengan MDAC 2.1, atau dengan versi sebelumnya, Anda tidak dapat terhubung ke database yang menggunakan Oracle 8.x atau versi yang lebih baru.
    • Untuk mengaktifkan 2,5 MDAC, atau versi yang lebih baru, untuk bekerja dengan Oracle peranti penangkap lunak klien, registri harus dimodifikasi pada komputer klien yang menjalankan SQL Server seperti yang ditunjukkan dalam 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. Restart komputer yang menjalankan SQL Server setelah Anda menginstal peranti penangkap lunak klien Oracle.
  5. Pada komputer yang menjalankan SQL Server, mendirikan sebuah server yang terkait dengan menggunakan skrip berikut.
    -- 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
Catatan Jika Anda menggunakan Microsoft ODBC Driver untuk Oracle, Anda dapat Gunakan @datasrc parameter untuk menentukan nama DSN. Untuk koneksi DSN-kurang, penyedia string disediakan melalui @provstr parameter. Dengan Microsoft OLE DB penyedia untuk Oracle, menggunakan Oracle server alias yang dikonfigurasi dalam file TNSNames.Ora untuk @datasrc parameter. Untuk selengkapnya, lihat "sp_addlinkedserver" Topik dalam SQL Server buku Online.

Pesan kesalahan umum dan bagaimana untuk memecahkan masalah mereka

Penting Bagian ini, metode, atau tugas yang memuat langkah-langkah yang memberitahu Anda bagaimana untuk mengubah registri. Namun, masalah serius mungkin muncul saat Anda salah memodifikasi registri. Oleh karena itu, pastikan bahwa Anda mengikuti langkah-langkah ini dengan hati-hati. Untuk perlindungan tambahan, buat cadangan registri sebelum Anda memodifikasinya. Kemudian, Anda dapat memulihkan registri apabila ada masalah. Untuk informasi lebih lanjut tentang cara membuat cadangan dan memulihkan registri, klik nomor artikel berikut ini untuk melihat artikel di dalam Pangkalan Pengetahuan Microsoft:
322756 Cara membuat cadangan dan memulihkan registri pada Windows


Anda dapat menggunakan salah satu dari dua metode berikut untuk mengambil Extended informasi tentang setiap kesalahan yang Anda alami saat Anda menjalankan didistribusikan kueri.
  • Metode 1
    Dalam Query Analyzer, jalankan kode berikut untuk mengaktifkan jejak bendera 7300.
    DBCC Traceon(7300)
  • Metode 2
    Menangkap peristiwa "Galat OLEDB" yang terletak di "kesalahan dan Kategori acara peringatan"dalam SQL Profiler. Format pesan kesalahan berikut:
    Interface::method gagal dengan kode hex-kesalahan.
    Anda dapat melihat kode hex-kesalahan dalam file Oledberr.h yang termasuk dengan MDAC Software Development Kit (SDK).
Berikut adalah daftar sepuluh pesan kesalahan umum yang mungkin terjadi, bersama dengan informasi tentang cara memecahkan masalah pesan galat.

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

Catatan Untuk isu-isu yang berkaitan dengan kinerja, Cari SQL Server buku Online untuk topik "Mengoptimalkan didistribusikan permintaan".
  • Pesan 1
    Galat 7399: Penyedia OLE DB '% ls' melaporkan suatu galat. % ls
    Mengaktifkan jejak bendera 7300 atau menggunakan SQL Profiler untuk menangkap acara "Galat OLEDB" untuk mengambil informasi kesalahan OLEDB diperpanjang.
  • 2A pesan
    "ORA-12154: TNS: tidak bisa menyelesaikan nama layanan"
    2B pesan
    "Oracle(tm) klien dan jaringan komponen tak ditemukan. Komponen ini disediakan oleh Oracle Corporation dan bagian dari Oracle versi 7.3.3 (atau lebih besar) peranti penangkap lunak klien instalasi"
    Untuk informasi lebih lanjut tentang bagaimana memecahkan masalah konektivitas Oracle, klik nomor artikel berikut ini untuk melihat artikel di dalam Pangkalan Pengetahuan Microsoft:
    259959Teknik untuk debug masalah konektivitas ke Oracle server menggunakan ODBC driver dan penyedia OLE DB
  • Pesan 3
    Galat 7302: Tak bisa membuat contoh dari penyedia OLE DB 'MSDAORA'
    Pastikan bahwa berkas MSDAORA.dll terdaftar dengan benar. (MSDAORA.dll file adalah Microsoft OLE DB penyedia untuk Oracle file.) Gunakan RegSvr32.exe untuk mendaftar Microsoft OLE DB penyedia untuk Oracle. Jika registrasi gagal, instal ulang Microsoft Data akses komponen (MDAC). Untuk informasi lebih lanjut tentang MDAC, kunjungi Website Microsoft Developer Network (MSDN) berikut:
    http://msdn.Microsoft.com/data/default.aspx
    Catatan Jika Anda menggunakan pihak ketiga penyedia Oracle, dan penyedia Oracle tidak dapat berjalan di luar proses SQL Server, memungkinkannya untuk dijalankan dalam proses dengan mengubah pilihan penyedia. Untuk mengubah pilihan penyedia, gunakan salah satu metode berikut.
    • Metode 1
      Cari bukti kunci registri berikut. Kemudian, Ubah nilai entri AllowInProcess (DWORD) ke 1. bukti kunci registri ini terletak di bawah nama penyedia yang bersangkutan:
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\ProviderName
    • Metode 2
      Menyetel opsi Memungkinkan InProcess langsung melalui SQL Server Enterprise Manager ketika Anda Tambahkan terkait server baru. Klik Pilihan penyedia, dan kemudian klik untuk memilih kotak centang yang Memungkinkan InProcess .
  • Pesan 4
    Galat 7303: Tak bisa menginisialisasi data sumber objek penyedia OLE DB 'MSDAORA'. [Penyedia OLE DB kembali pesan: ORA-01017: tidak valid username/password; log-masuk ditolak] OLE DB kesalahan jejak [Penyedia OLE DB 'MSDAORA' IDBInitialize::Initialize kembali 0x80040e4d].
    Pesan kesalahan ini menunjukkan bahwa terkait server tidak memiliki login benar pemetaan. Anda dapat mengeksekusi sp_helplinkedsrvlogin disimpan prosedur untuk mengatur informasi login dengan benar. Juga, memverifikasi bahwa Anda telah menetapkan parameter yang benar untuk terhubung konfigurasi server.
  • Pesan 5
    Galat 7306: Tidak dapat membuka Daftar Tabel ' % ls' dari penyedia OLE DB 'MSDAORA'. Daftar Tabel yang ditentukan tak ada. [Penyedia OLE DB kembali pesan: tabel atak tidak ada.][Penyedia OLE DB kembali pesan: ORA-00942: Daftar Tabel atau view tidak ada] OLE DB kesalahan jejak [Penyedia OLE DB 'MSDAORA' IOpenRowset::OpenRowset kembali 0x80040e37: Daftar Tabel yang ditentukan tak ada.].
    Galat 7312: Penggunaan yang tidak sah skema dan/atau katalog untuk penyedia OLE DB '% ls'. Empat bagian nama ini diberikan, tetapi penyedia tidak mengekspos antarmuka yang diperlukan untuk menggunakan katalog dan/atau skema.
    Galat 7313: Skema tidak valid atau katalog yang ditentukan untuk penyedia '% ls'.
    ERR 7314: Penyedia OLE DB '% ls' tidak berisi Daftar Tabel '% ls'
    Jika Anda menerima pesan galat ini, Daftar Tabel mungkin hilang dalam skema Oracle atau Anda mungkin tidak memiliki izin pada tabel atak. Pastikan bahwa nama skema yang telah diketik dengan menggunakan huruf besar. Kasus abjad Daftar Tabel dan kolom harus sebagaimana ditentukan dalam Daftar Tabel sistem Oracle.

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

    Panggilan berikut menunjukkan jika Daftar Tabel yang ada dalam skema Oracle. Panggilan ini juga menunjukkan 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 dalam Pangkalan Pengetahuan Microsoft:
    240340Query SQL didistribusikan dengan Oracle menyebabkan galat "Tidak dapat membuka tabel"
  • Pesan 6
    Galat 7413: Tidak dapat menjalankan Windows NT dikonfirmasi login karena delegasi tidak tersedia.
    MSG 18456, Level 14, negara bagian 1, baris 1 Login gagal untuk pengguna ' \'.
    Informasi berikut ini dari SQL Server buku Online:
    Pesan kesalahan ini menunjukkan bahwa didistribusikan query sedang mencoba untuk login Microsoft Windows dikonfirmasi tanpa eksplisit login pemetaan. sistem operasi dalam lingkungan di mana keamanan delegasi tidak didukung, Windows NT dikonfirmasi perlu login pemetaan eksplisit untuk remote login dan password yang dibuat menggunakan sp_addlinkedsrvlogin.
  • Pesan 7
    Kesalahan 7354: Penyedia OLE DB 'MSDAORA' yang disediakan tak-sahih metadata untuk kolom '% ls'. Jenis data adalah tidak didukung.
    Jika Anda menerima pesan galat ini, Anda mungkin mengalami bug yang dijelaskan pada artikel Pangkalan Pengetahuan Microsoft berikut:
    243027 FIX: Numerik kolom dalam Oracle menyebabkan kesalahan 7354
  • Pesan 8
    Galat 7356: Penyedia OLE DB 'MSDAORA' disediakan tidak konsisten metadata untuk kolom. Informasi metadata berubah pada waktu eksekusi.
    Jika query terkait server Anda menggunakan pandangan Oracle, Anda mungkin mengalami masalah yang dijelaskan pada artikel Pangkalan Pengetahuan Microsoft berikut:
    251238 Pertanyaan didistribusikan kembali kesalahan 7356 dengan MSDAORA
  • Pesan 9
    Galat 7391: Operasi tidak bisa dilakukan karena penyedia OLE DB 'MSDAORA' tidak mendukung didistribusikan transaksi. OLE DB kesalahan jejak [penyedia OLE DB 'MSDAORA' ITransactionJoin::JoinTransaction kembali 0x8004d01b]
    Memverifikasi bahwa OCI versi terdaftar dengan benar seperti dijelaskan sebelumnya dalam artikel ini.

    Catatan Jika entri registri semua benar, MtxOCI.dll file dimuat. Jika berkas MtxOCI.dll tidak dimuat, Anda tidak dapat melakukan terdistribusi transaksi terhadap Oracle dengan menggunakan Microsoft OLE DB penyedia untuk Oracle atau dengan menggunakan Microsoft ODBC Driver untuk Oracle. Jika Anda menggunakan penyedia pihak ketiga dan Anda menerima galat 7391, verifikasikan bahwa penyedia OLE DB yang Anda gunakan mendukung transaksi yang didistribusikan. Jika penyedia OLE DB mendukung didistribusikan transaksi, memverifikasi bahwa Microsoft didistribusikan transaksi Koordinator (MSDTC) sedang berjalan.
  • Pesan 10
    Galat 7392: Tidak dapat mulai menjalankan transaksi untuk penyedia OLE DB 'MSDAORA'. OLE DB kesalahan jejak [penyedia OLE DB 'MSDAORA' ITransactionLocal::StartTransaction kembali 0x8004d013: ISOLEVEL = 4096].
    Informasi berikut ini dari SQL Server buku Online:
    Penyedia OLE DB kembali kesalahan 7392 karena hanya satu transaksi dapat aktif untuk sesi ini. Kesalahan ini menunjukkan bahwa modifikasi data pernyataan yang mencoba melawan penyedia OLE DB ketika sambungan dalam sebuah transaksi yang eksplisit atau tersirat, dan penyedia OLE DB tidak mendukung transaksi yang bersarang. SQL Server memerlukan dukungan ini sehingga, pada kondisi kesalahan tertentu, itu dapat mengakhiri efek modifikasi data pernyataan sambil terus dengan transaksi.
    Jika SET XACT_ABORT ON, SQL Server tidak memerlukan bersarang transaksi dukungan dari penyedia OLE DB. Oleh karena itu, mengeksekusi SET XACT_ABORT ON sebelum Anda mengeksekusi pernyataan modifikasi data terhadap jauh Daftar Tabel dalam implisit atau eksplisit transaksi. Melakukan hal ini dalam kasus penyedia OLE DB yang Anda gunakan Apakah mendukung transaksi yang bersarang.

Referensi

Untuk informasi lebih lanjut, klik nomor artikel berikut ini untuk melihat artikel di dalam Pangkalan Pengetahuan Microsoft:
244661Keterbatasan Microsoft Oracle ODBC driver dan penyedia OLE DB
259959 Teknik untuk men-debug masalah konektivitas ke Oracle server menggunakan ODBC driver dan OLE Penyedia DB
239719 Supportability Microsoft ODBC driver/OLE DB perantara untuk Oracle w.r.t Oracle 8.x
193893 Informasi tentang menggunakan Oracle dengan Microsoft transaksi Server dan COM + komponen
191168 Galat "-2147168246 (8004d00a)" gagal untuk mendaftarkan diri pada objek panggilan transaksi
Untuk selengkapnya tentang cara menggunakan server terkait bersama-sama dengan DB2, klik nomor artikel berikut ini untuk melihat artikel di dalam Pangkalan Pengetahuan Microsoft:
218590Mengkonfigurasi data sumber untuk Microsoft OLE DB penyedia untuk DB2
216428 Mengkonfigurasi Microsoft ODBC driver untuk DB2

Properti

ID Artikel: 280106 - Kajian Terakhir: 16 Januari 2013 - Revisi: 4.0
Berlaku bagi:
  • 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
Kata kunci: 
kbsqlsetup kbhowtomaster kbmt KB280106 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini: 280106

Berikan Masukan

 

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