SQL Server-tjänsten kraschar när du kör en oracle-länkad serverfråga
Den här artikeln hjälper dig att lösa ett problem som kan uppstå när du kör en Oracle-länkad serverfråga.
Ursprunglig produktversion: SQL Server
Ursprungligt KB-nummer: 2295405
Symptom
Tänk dig följande situation:
- Du installerar SQL Server på en dator som kör Windows Server.
- Du skapar en länkad server för en Oracle-databas.
- Du kör en länkad serverfråga med oraOLEDB-providern (OLEDB-providern för Oracle).
I det här scenariot kraschar SQL Server-tjänsten och inga resultat returneras för frågan. Dessutom kan du märka följande problem:
Du får följande felmeddelande i händelseloggen för Windows-systemet:
Tjänsten SQL Server (MSSQLSERVER) avslutades oväntat. Det har gjort detta 1 gång(ar).
En minidumpfil av SQL Server-processen genereras med heap-skada och du får ett undantagsmeddelande som liknar följande:
I minidump.mdmp monteringsinstruktionen på ntdll! RtlReportCriticalFailure+62 i C:\Windows\System32\ntdll.dll från Microsoft Corporation har orsakat ett okänt undantag (0xc0000374) på tråd 235
Eller ibland kan du också se ett annat undantag i felloggen:
SqlDumpExceptionHandler: Process 74-genererat allvarligt undantag c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server avslutar den här processen.Stacken för minidump-filen innehåller moduler från tredje part i Sqlserver.exe processen. Minidump-filen innehåller till exempel följande information i Oracle-modulerna:
OraOLEDButl11 OraOLEDBrst11 OraOLEDBrst10 Full Call Stack: ntdll!RtlReportCriticalFailure+62 ntdll!RtlpReportHeapFailure+26 ntdll!RtlpHeapHandleError+12 ntdll!RtlpLogHeapFailure+a4 ntdll!RtlFreeHeap+1aa8f ole32!CoTaskMemFree+36 OraOLEDButl11+1a5f 0x403d6b00 0x00000001 0x4d200e30 0x00000024 0x403d7ab8 OraOLEDBrst11+12843 0x403b8c00 0x403c95f0 0x403ca610 0x403ca610 0x403c95f0 OraOLEDBrst11+128b1 0x403d7ab8 0x403c95f0 0x4966a260 0x05cd21e0
Ansvarsfriskrivning för information från tredje part
De produkter från andra tillverkare som diskuteras i denna artikel tillverkas oberoende av Microsoft. Produkternas funktion eller tillförlitlighet kan därför inte garanteras.
Orsak
Det här problemet beror på att specialtecken --
finns i frågan till den Oracle-länkade servern. Dessa tecken används för att ange en kommentarssymbol.
Den SQL Server processen kraschar eftersom den länkade serverprovidern från tredje part läses in i SQL Server process och felaktigt ändrar heapminne som inte tillhör den. Om Heap Functions i en process är instabil, för skydd mot skadade data, stängs processen automatiskt av av operativsystemet. Om den länkade serverprovidern från tredje part är aktiverad tillsammans med alternativet Tillåt inprocess kraschar SQL Server processen när den länkade servern från tredje part upplever det beskrivna problemet.
Lösning
I vissa fall löser en av följande metoder problemet:
- Ta bort kommentarssymbolen.
- Ersätt kommentarssymbolen med
/* */
.
Åtgärd
Kontakta tredjepartsleverantören för information och de senaste korrigeringarna. Den senaste OLEDB-providerversionen finns i 64-bitars nedladdningar av Oracle Data Access Components (ODAC).
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för