ID Artikel: 280106 - Kajian Terakhir: 23 September 2011 - Revisi: 2.0

Bagaimana untuk mengatur dan memecahkan masalah terkait server untuk database Oracle di SQL Server

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.

Pada Halaman ini

Perbesar semua | Perkecil semua

RINGKASAN

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

Langkah-langkah untuk mengkonfigurasi server terhubung ke Oracle

  1. Anda harus menginstal perangkat lunak klien Oracle di komputer yang menjalankan SQL Server di mana server terhubung diatur.
  2. Menginstal pengandar yang Anda inginkan pada komputer yang menjalankan SQL Server. Microsoft hanya mendukung Microsoft OLE penyedia DB Oracle dan Microsoft ODBC Driver untuk Oracle. Jika Anda menggunakan penyedia pihak ketiga 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.
  3. Jika Anda menggunakan Microsoft OLE penyedia DB untuk Oracle dan Microsoft Driver ODBC Oracle, pertimbangkan hal berikut:
    • Penyedia OLE DB dan ODBC pengandar 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.x perangkat lunak klien, atau versi yang lebih baru, pada klien komputer. Komputer klien adalah komputer yang menjalankan SQL Server.
    • Pastikan bahwa Anda memiliki MDAC 2.5, 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 MDAC 2.5, atau versi yang lebih baru, untuk bekerja dengan Oracle perangkat lunak klien, registri harus diubah pada komputer klien yang menjalankan SQL Server seperti yang ditunjukkan dalam 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 Perangkat lunak klien Oracle.
  5. Pada komputer yang menjalankan SQL Server, mendirikan sebuah server yang terhubung dengan menggunakan script 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 menggunakan @ datasrc parameter untuk menentukan nama DSN. Untuk koneksi DSN-kurang, penyedia string dipasok melalui @ provstr parameter. Dengan Microsoft OLE penyedia DB untuk Oracle, menggunakan Oracle alias server yang dikonfigurasi di TNSNames.Ora untuk file @ 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 memodifikasi registri. Namun, masalah yang serius dapat terjadi apabila Anda salah memodifikasi registri. Oleh karena itu, pastikan Anda mengikuti langkah-langkah tersebut dengan seksama. Untuk perlindungan tambahan, buat cadangan registri sebelum Anda memodifikasi. 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  (http://support.microsoft.com/kb/322756/ ) Cara membuat cadangan dan memulihkan registri di Windows


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

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

Catatan Untuk masalah yang berkaitan dengan kinerja, pencarian SQL Server buku Online untuk "Mengoptimalkan didistribusikan permintaan" topik.
  • Pesan 1
    Kesalahan 7399: Penyedia OLE DB '% ls' melaporkan kesalahan. % ls
    Hidupkan jejak bendera 7300 atau menggunakan SQL Profiler untuk menangkap peristiwa "OLEDB kesalahan" untuk mengambil informasi kesalahan OLEDB diperpanjang.
  • Pesan 2a
    "ORA-12154: TNS: tidak bisa menyelesaikan nama layanan"
    Pesan 2b
    "Oracle(tm) klien dan jaringan komponen tidak ditemukan. Komponen ini disediakan oleh Oracle Corporation dan bagian dari Oracle versi 7.3.3 (atau lebih) perangkat lunak klien Instalasi"
    Untuk informasi lebih lanjut tentang bagaimana memecahkan masalah konektivitas Oracle, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
    259959  (http://support.microsoft.com/kb/259959/ ) Teknik untuk debug masalah konektivitas menggunakan ODBC driver dan penyedia OLE DB server Oracle
  • Pesan 3
    Kesalahan 7302: Tidak dapat 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 penyedia DB untuk Oracle. Jika registrasi gagal, instal ulang Microsoft Data akses komponen (MDAC). Untuk informasi lebih lanjut tentang MDAC, kunjungi Web site Microsoft Developer Network (MSDN) berikut:
    http://MSDN.Microsoft.com/data/default.aspx (http://msdn.microsoft.com/data/Default.aspx)
    Catatan Jika Anda menggunakan pihak ketiga penyedia Oracle, dan penyedia Oracle tidak dapat berjalan di luar SQL Server proses, memungkinkannya untuk dijalankan dalam proses dengan mengubah pilihan selular. Untuk mengubah pilihan penyedia, gunakan salah satu metode berikut.
    • Metode 1
      Temukan kunci registri berikut ini. Kemudian, perubahan nilai AllowInProcess (DWORD) masuk ke 1. Kunci registri ini terletak di bawah nama penyedia yang bersangkutan:
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\ProviderName
    • Metode 2
      Menetapkan Memungkinkan InProcess pilihan langsung melalui SQL Server Enterprise Manager ketika Anda Tambahkan terkait server baru. Klik Penyedia pilihan, dan kemudian klik untuk memilih Memungkinkan InProcess kotak centang.
  • Pesan 4
    Kesalahan 7303: Tidak dapat menginisialisasi data sumber objek dari penyedia OLE DB 'MSDAORA'. [Penyedia OLE/DB kembali pesan: ORA-01017: tidak sah username/password; logon ditolak] OLE DB kesalahan jejak [Penyedia OLE/DB 'MSDAORA' IDBInitialize::Initialize kembali 0x80040e4d].
    Pesan kesalahan ini menunjukkan bahwa server terkait tidak memiliki login benar pemetaan. Anda dapat melaksanakan sp_helplinkedsrvlogin disimpan prosedur untuk mengatur informasi login dengan benar. Juga, memverifikasi bahwa Anda telah menetapkan parameter benar untuk terhubung konfigurasi server.
  • Pesan 5
    Kesalahan 7306: Tidak dapat membuka tabel ' % ls' dari penyedia OLE DB 'MSDAORA'. Meja tertentu tidak ada. [Penyedia OLE/DB kembali pesan: meja tidak ada.][Penyedia OLE/DB kembali pesan: ORA-00942: tabel atau view tidak ada] OLE DB kesalahan jejak [Penyedia OLE/DB 'MSDAORA' IOpenRowset::OpenRowset kembali 0x80040e37: meja tertentu tidak ada.].
    Kesalahan 7312: Penggunaan yang tidak sah skema dan/atau katalog untuk penyedia OLE DB '% ls'. Empat bagian nama diberikan, tetapi penyedia tidak mengekspos antarmuka yang diperlukan untuk menggunakan katalog dan/atau skema.
    Kesalahan 7313: Skema tidak sah atau katalog yang ditentukan untuk penyedia '% ls'.
    Err 7314: Penyedia OLE DB '% ls' tidak mengandung tabel '% ls'
    Jika Anda menerima pesan galat ini, tabel mungkin hilang dalam skema Oracle atau Anda mungkin tidak memiliki izin pada meja. Pastikan bahwa nama skema telah diketik dengan menggunakan huruf besar. Kasus abjad meja dan kolom harus ditentukan dalam tabel sistem Oracle.

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

    Panggilan berikut menunjukkan jika tabel yang ada dalam skema Oracle. Panggilan ini juga menunjukkan nama tabel yang tepat.
    sp_tables_ex  @table_server=Ora817Link, @table_schema='your_schema_name'
    Untuk informasi selengkapnya tentang pesan galat 7306, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
    240340  (http://support.microsoft.com/kb/240340/ ) Query SQL didistribusikan dengan Oracle menyebabkan kesalahan "Tidak dapat membuka tabel"
  • Pesan 6
    Kesalahan 7413: Tidak dapat menjalankan Windows NT dikonfirmasi login karena delegasi tidak tersedia.
    MSG 18456, tingkat 14, negara bagian 1, baris 1 Login gagal untuk pengguna ' \'.
    Informasi berikut ini dari SQL Server buku Online:
    Pesan kesalahan ini menunjukkan bahwa permintaan didistribusikan sedang mencoba untuk login Microsoft Windows dikonfirmasi tanpa eksplisit login pemetaan. Di lingkungan sistem operasi dalam keamanan yang delegasi tidak didukung, Windows NT dikonfirmasi login kebutuhan eksplisit pemetaan untuk remote login dan password yang dibuat menggunakan sp_addlinkedsrvlogin.
  • Pesan 7
    Kesalahan 7354: Penyedia OLE DB 'MSDAORA' yang disuplai tidak sah metadata untuk kolom '% ls'. Jenis data adalah tidak didukung.
    Jika Anda menerima pesan galat ini, Anda mungkin mengalami bug yang dijelaskan pada artikel Basis Pengetahuan Microsoft berikut:
    243027  (http://support.microsoft.com/kb/243027/ ) FIX: Numerik kolom dalam Oracle menyebabkan kesalahan 7354
  • Pesan 8
    Kesalahan 7356: Penyedia OLE DB 'MSDAORA' disediakan tidak konsisten metadata untuk kolom. Informasi metadata berubah pada saat pelaksanaan.
    Jika permintaan terkait server Anda menggunakan pandangan Oracle, Anda mungkin mengalami masalah yang dijelaskan pada artikel Basis Pengetahuan Microsoft berikut:
    251238  (http://support.microsoft.com/kb/251238/ ) Permintaan didistribusikan kembali kesalahan 7356 dengan MSDAORA
  • Pesan 9
    Kesalahan 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 Versi OCI 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 didistribusikan transaksi terhadap Oracle dengan menggunakan Microsoft OLE penyedia DB untuk Oracle atau dengan menggunakan Microsoft ODBC Driver untuk Oracle. Jika Anda menggunakan penyedia pihak ketiga dan Anda menerima kesalahan 7391, memverifikasi bahwa penyedia OLE DB yang Anda gunakan mendukung transaksi terdistribusi. Jika penyedia OLE DB mendukung didistribusikan transaksi, memverifikasi bahwa Microsoft didistribusikan transaksi Koordinator (MSDTC) berjalan.
  • Pesan 10
    Kesalahan 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 adalah sedang berusaha melawan penyedia OLE DB ketika koneksi secara eksplisit atau implisit transaksi, dan penyedia OLE DB tidak mendukung bersarang transaksi. SQL Server memerlukan dukungan ini sehingga, pada kondisi kesalahan tertentu, itu dapat menghentikan efek modifikasi data pernyataan sambil terus dengan transaksi.
    Jika SET XACT_ABORT ON, SQL Server tidak memerlukan bersarang dukungan dari penyedia OLE DB. Oleh karena itu, melaksanakan SET XACT_ABORT ON sebelum Anda mengeksekusi pernyataan modifikasi data terhadap jauh tabel di implisit atau eksplisit transaksi. Melakukan hal ini jika penyedia OLE DB yang Anda gunakan Apakah tidak mendukung bersarang transaksi.

REFERENSI

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

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 MesinPenerjemahan 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  (http://support.microsoft.com/kb/280106/en-us/ )