Oracle リンク サーバー クエリを実行すると、SQL Server サービスがクラッシュする
この記事は、Oracle リンク サーバー クエリを実行するときに発生する可能性がある問題を解決するのに役立ちます。
元の製品バージョン: SQL Server
元の KB 番号: 2295405
現象
次のような状況で問題が発生します。
- windows Server を実行しているコンピューターにSQL Serverをインストールします。
- Oracle データベースのリンク サーバーを作成します。
- OraOLEDB プロバイダー (OLEDB Provider for Oracle) を使用して、リンク サーバー クエリを実行します。
このシナリオでは、SQL Server サービスがクラッシュし、クエリの結果は返されません。 さらに、次の問題が発生する場合があります。
Windows システム イベント ログに次のエラー メッセージが表示されます。
SQL Server (MSSQLSERVER) サービスが予期せず終了しました。 この 1 回が完了しました。
SQL Server プロセスのミニダンプ ファイルがヒープ破損で生成され、次のような例外メッセージが表示されます。
minidump.mdmp では、ntdll!Microsoft Corporation からの C:\Windows\System32\ntdll.dll の RtlReportCriticalFailure+62 が、スレッド 235 で不明な例外 (0xc0000374) を引き起こしました
または、エラーログで別の例外が発生する場合があります。
SqlDumpExceptionHandler: プロセス 74 で生成された致命的な例外 c0000005 EXCEPTION_ACCESS_VIOLATION。 SQL Serverはこのプロセスを終了しています。ミニダンプ ファイルのスタックには、 Sqlserver.exe プロセス内のサード パーティ製モジュールが含まれています。 たとえば、ミニダンプ ファイルには、Oracle モジュールに次の情報が含まれています。
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
サードパーティの情報に関する免責事項
この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。
原因
この問題は、Oracle リンク サーバーへのクエリに特殊文字 --
が存在するため発生します。 これらの文字は、コメント 記号を示すために使用されます。
サード パーティのリンク サーバー プロバイダーがプロセス内SQL Server読み込まれ、そのプロセスに属していないヒープ メモリが誤って変更されるため、SQL Server プロセスがクラッシュします。 プロセス内の ヒープ関数 が不安定な場合、データ破損からの保護のために、プロセスは OS によって自動的にシャットダウンされます。 サード パーティのリンク サーバー プロバイダーが [プロセスの許可] オプションと共に有効になっている場合、サード パーティのリンク サーバーで説明されている問題が発生すると、SQL Server プロセスがクラッシュします。
回避策
場合によっては、次のいずれかの方法で問題が解決されます。
- コメント 記号を削除します。
- コメント記号を に
/* */
置き換えます。
解決方法
情報と最新の修正プログラムについては、サード パーティのプロバイダーにお問い合わせください。 最新の OLEDB プロバイダー バージョンについては、「 64 ビット Oracle Data Access Components (ODAC) ダウンロード」を参照してください。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示