存储过程执行的时候要实现的是从SQL服务器里通过LinkServer更新Oracle表的数据。
存储过程一执行,看不到任何错误信息的情况下,SQLServer的服务就会出错然后自动停止了。
看OS的日志是ntdll.dll出错了。
现在来看很有可能是 SQL和Oracle的连接出现问题。
这个可能是什么原因引起的,或者从什么地方开始考虑?
16 个解决方案
#1
sqlserver报什么错呢?能引起服务停止的错误级别相当严重啊
#2
这个存储执行了很长时间没有执行完,然后强行关掉了。没有看出什么错误来。
#3
SQLServer的错误日志是否有记录?
#4
2013-04-06 09:45:49.32 spid53 Using 'xpstar.dll' version '2009.100.1600' to execute extended stored procedure 'xp_instance_regread'. This is an informational message only; no user action is required.
2013-04-06 09:48:57.75 spid55 Using 'dbghelp.dll' version '4.0.5'
2013-04-06 09:48:57.76 spid55 ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG\SQLDump0009.txt
2013-04-06 09:48:57.76 spid55 SqlDumpExceptionHandler: Process 55 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.
2013-04-06 09:48:57.76 spid55 * *******************************************************************************
2013-04-06 09:48:57.76 spid55 *
2013-04-06 09:48:57.76 spid55 * BEGIN STACK DUMP:
2013-04-06 09:48:57.76 spid55 * 04/06/13 09:48:57 spid 55
2013-04-06 09:48:57.76 spid55 *
2013-04-06 09:48:57.76 spid55 *
2013-04-06 09:48:57.76 spid55 * Exception Address = 00000000774F386A Module(ntdll+000000000005386A)
2013-04-06 09:48:57.76 spid55 * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION
2013-04-06 09:48:57.76 spid55 * Access Violation occurred reading address 0000000000000000
2013-04-06 09:48:57.76 spid55 * Input Buffer 510 bytes -
2013-04-06 09:48:57.76 spid55 * EXEC Up_AA @in_Slipno =
2013-04-06 09:48:57.76 spid55 * '1' ,@in_DemandID = 1 ,@in_S = '1' ,@In_Reqdat
2013-04-06 09:48:57.76 spid55 * eFrom = '2013/03/11',@In_ReqdateTo = '2013/03/11' ,@in_WID =
2013-04-06 09:48:57.76 spid55 * 117 ,@in_AutherID = '10047488' ,@in_MachineCD = '002007' ,@in_A
2013-04-06 09:48:57.76 spid55 * ppID = '130803' ,@in_NeedConfirmInfo = '1,4901001000012,2;2,490100100
2013-04-06 09:48:57.76 spid55 * 0289,3;3,4901001003570,4;4,4901001003594,5'
2013-04-06 09:48:57.76 spid55 *
2013-04-06 09:48:57.76 spid55 *
2013-04-06 09:48:57.76 spid55 * MODULE BASE END SIZE
2013-04-06 09:48:57.76 spid55 * sqlservr 00000000004D0000 00000000040E1FFF 03c12000
2013-04-06 09:48:57.76 spid55 * ntdll 00000000774A0000 0000000077648FFF 001a9000
2013-04-06 09:48:57.76 spid55 * kernel32 0000000076DC0000 0000000076EDEFFF 0011f000
・・・・・・・・・・・・
下面还有很长
2013-04-06 09:48:57.75 spid55 Using 'dbghelp.dll' version '4.0.5'
2013-04-06 09:48:57.76 spid55 ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG\SQLDump0009.txt
2013-04-06 09:48:57.76 spid55 SqlDumpExceptionHandler: Process 55 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.
2013-04-06 09:48:57.76 spid55 * *******************************************************************************
2013-04-06 09:48:57.76 spid55 *
2013-04-06 09:48:57.76 spid55 * BEGIN STACK DUMP:
2013-04-06 09:48:57.76 spid55 * 04/06/13 09:48:57 spid 55
2013-04-06 09:48:57.76 spid55 *
2013-04-06 09:48:57.76 spid55 *
2013-04-06 09:48:57.76 spid55 * Exception Address = 00000000774F386A Module(ntdll+000000000005386A)
2013-04-06 09:48:57.76 spid55 * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION
2013-04-06 09:48:57.76 spid55 * Access Violation occurred reading address 0000000000000000
2013-04-06 09:48:57.76 spid55 * Input Buffer 510 bytes -
2013-04-06 09:48:57.76 spid55 * EXEC Up_AA @in_Slipno =
2013-04-06 09:48:57.76 spid55 * '1' ,@in_DemandID = 1 ,@in_S = '1' ,@In_Reqdat
2013-04-06 09:48:57.76 spid55 * eFrom = '2013/03/11',@In_ReqdateTo = '2013/03/11' ,@in_WID =
2013-04-06 09:48:57.76 spid55 * 117 ,@in_AutherID = '10047488' ,@in_MachineCD = '002007' ,@in_A
2013-04-06 09:48:57.76 spid55 * ppID = '130803' ,@in_NeedConfirmInfo = '1,4901001000012,2;2,490100100
2013-04-06 09:48:57.76 spid55 * 0289,3;3,4901001003570,4;4,4901001003594,5'
2013-04-06 09:48:57.76 spid55 *
2013-04-06 09:48:57.76 spid55 *
2013-04-06 09:48:57.76 spid55 * MODULE BASE END SIZE
2013-04-06 09:48:57.76 spid55 * sqlservr 00000000004D0000 00000000040E1FFF 03c12000
2013-04-06 09:48:57.76 spid55 * ntdll 00000000774A0000 0000000077648FFF 001a9000
2013-04-06 09:48:57.76 spid55 * kernel32 0000000076DC0000 0000000076EDEFFF 0011f000
・・・・・・・・・・・・
下面还有很长
#5
EXEC那部分直接执行就停服务?
#6
是的 EXEC Up_AA 就是这个存储过程执行的时候
#7
查一下存储过程大表。估计大表把内存吃完了。这个错误楼主还没有贴完,前面的报错比较主要,还没有贴出来
#8
从下面两点(并且从MODULE的stackcall可以看出这个是SQL SERVER自身的BUG,如果是第三方程序的BUG,那第一个的MODULE的名字应该是第三方DLL的名字)可以看出,这应该是SQL SERVER一个BUG。
1,"SqlDumpExceptionHandler: Process 55 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process."
2,MODULE
sqlservr
对了,你运行一下SELECT @@version ,然后贴出结果来看看。
1,"SqlDumpExceptionHandler: Process 55 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process."
2,MODULE
sqlservr
对了,你运行一下SELECT @@version ,然后贴出结果来看看。
#9
前面? 前面的应该都是系统自带的了,我是在服务重新启动之后立刻执行的。
这些是前面的
2013-04-06 09:45:28.57 spid10s Starting up database 'tempdb'.
2013-04-06 09:45:28.75 spid13s The Service Broker protocol transport is disabled or not configured.
2013-04-06 09:45:28.75 spid13s The Database Mirroring protocol transport is disabled or not configured.
2013-04-06 09:45:28.83 spid13s Service Broker manager has started.
2013-04-06 09:45:28.85 spid6s Recovery is complete. This is an informational message only. No user action is required.
2013-04-06 09:45:49.31 spid53 Attempting to load library 'xpstar.dll' into memory. This is an informational message only. No user action is required.
2013-04-06 09:45:49.32 spid53 Using 'xpstar.dll' version '2009.100.1600' to execute extended stored procedure 'xp_instance_regread'. This is an informational message only; no user action is required.
2013-04-06 09:48:57.75 spid55 Using 'dbghelp.dll' version '4.0.5'
2013-04-06 09:48:57.76 spid55 ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG\SQLDump0009.txt
2013-04-06 09:48:57.76 spid55 SqlDumpExceptionHandler: Process 55 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.
2013-
这些是前面的
2013-04-06 09:45:28.57 spid10s Starting up database 'tempdb'.
2013-04-06 09:45:28.75 spid13s The Service Broker protocol transport is disabled or not configured.
2013-04-06 09:45:28.75 spid13s The Database Mirroring protocol transport is disabled or not configured.
2013-04-06 09:45:28.83 spid13s Service Broker manager has started.
2013-04-06 09:45:28.85 spid6s Recovery is complete. This is an informational message only. No user action is required.
2013-04-06 09:45:49.31 spid53 Attempting to load library 'xpstar.dll' into memory. This is an informational message only. No user action is required.
2013-04-06 09:45:49.32 spid53 Using 'xpstar.dll' version '2009.100.1600' to execute extended stored procedure 'xp_instance_regread'. This is an informational message only; no user action is required.
2013-04-06 09:48:57.75 spid55 Using 'dbghelp.dll' version '4.0.5'
2013-04-06 09:48:57.76 spid55 ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG\SQLDump0009.txt
2013-04-06 09:48:57.76 spid55 SqlDumpExceptionHandler: Process 55 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.
2013-
#10
另外,你是否可以share一下,你的DUMP文件?
有时间可以帮你DEBUG一下。
有时间可以帮你DEBUG一下。
#11
SELECT @@version
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) Jun 28 2012 08:36:30 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) Jun 28 2012 08:36:30 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
#12
我看了一下,问一下,你有没有在存储过程使用比如--那样的注释呀?
#13
如果是LINKED SERVER使用的Provider DLL,可以考虑将LINKED SERVER Provider Allow in process 设置为FALSE.
#14
dump error 最好直接联系微软
#15
怎么联系?
#16
这个设置是什么意思呢?
#1
sqlserver报什么错呢?能引起服务停止的错误级别相当严重啊
#2
这个存储执行了很长时间没有执行完,然后强行关掉了。没有看出什么错误来。
#3
SQLServer的错误日志是否有记录?
#4
2013-04-06 09:45:49.32 spid53 Using 'xpstar.dll' version '2009.100.1600' to execute extended stored procedure 'xp_instance_regread'. This is an informational message only; no user action is required.
2013-04-06 09:48:57.75 spid55 Using 'dbghelp.dll' version '4.0.5'
2013-04-06 09:48:57.76 spid55 ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG\SQLDump0009.txt
2013-04-06 09:48:57.76 spid55 SqlDumpExceptionHandler: Process 55 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.
2013-04-06 09:48:57.76 spid55 * *******************************************************************************
2013-04-06 09:48:57.76 spid55 *
2013-04-06 09:48:57.76 spid55 * BEGIN STACK DUMP:
2013-04-06 09:48:57.76 spid55 * 04/06/13 09:48:57 spid 55
2013-04-06 09:48:57.76 spid55 *
2013-04-06 09:48:57.76 spid55 *
2013-04-06 09:48:57.76 spid55 * Exception Address = 00000000774F386A Module(ntdll+000000000005386A)
2013-04-06 09:48:57.76 spid55 * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION
2013-04-06 09:48:57.76 spid55 * Access Violation occurred reading address 0000000000000000
2013-04-06 09:48:57.76 spid55 * Input Buffer 510 bytes -
2013-04-06 09:48:57.76 spid55 * EXEC Up_AA @in_Slipno =
2013-04-06 09:48:57.76 spid55 * '1' ,@in_DemandID = 1 ,@in_S = '1' ,@In_Reqdat
2013-04-06 09:48:57.76 spid55 * eFrom = '2013/03/11',@In_ReqdateTo = '2013/03/11' ,@in_WID =
2013-04-06 09:48:57.76 spid55 * 117 ,@in_AutherID = '10047488' ,@in_MachineCD = '002007' ,@in_A
2013-04-06 09:48:57.76 spid55 * ppID = '130803' ,@in_NeedConfirmInfo = '1,4901001000012,2;2,490100100
2013-04-06 09:48:57.76 spid55 * 0289,3;3,4901001003570,4;4,4901001003594,5'
2013-04-06 09:48:57.76 spid55 *
2013-04-06 09:48:57.76 spid55 *
2013-04-06 09:48:57.76 spid55 * MODULE BASE END SIZE
2013-04-06 09:48:57.76 spid55 * sqlservr 00000000004D0000 00000000040E1FFF 03c12000
2013-04-06 09:48:57.76 spid55 * ntdll 00000000774A0000 0000000077648FFF 001a9000
2013-04-06 09:48:57.76 spid55 * kernel32 0000000076DC0000 0000000076EDEFFF 0011f000
・・・・・・・・・・・・
下面还有很长
2013-04-06 09:48:57.75 spid55 Using 'dbghelp.dll' version '4.0.5'
2013-04-06 09:48:57.76 spid55 ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG\SQLDump0009.txt
2013-04-06 09:48:57.76 spid55 SqlDumpExceptionHandler: Process 55 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.
2013-04-06 09:48:57.76 spid55 * *******************************************************************************
2013-04-06 09:48:57.76 spid55 *
2013-04-06 09:48:57.76 spid55 * BEGIN STACK DUMP:
2013-04-06 09:48:57.76 spid55 * 04/06/13 09:48:57 spid 55
2013-04-06 09:48:57.76 spid55 *
2013-04-06 09:48:57.76 spid55 *
2013-04-06 09:48:57.76 spid55 * Exception Address = 00000000774F386A Module(ntdll+000000000005386A)
2013-04-06 09:48:57.76 spid55 * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION
2013-04-06 09:48:57.76 spid55 * Access Violation occurred reading address 0000000000000000
2013-04-06 09:48:57.76 spid55 * Input Buffer 510 bytes -
2013-04-06 09:48:57.76 spid55 * EXEC Up_AA @in_Slipno =
2013-04-06 09:48:57.76 spid55 * '1' ,@in_DemandID = 1 ,@in_S = '1' ,@In_Reqdat
2013-04-06 09:48:57.76 spid55 * eFrom = '2013/03/11',@In_ReqdateTo = '2013/03/11' ,@in_WID =
2013-04-06 09:48:57.76 spid55 * 117 ,@in_AutherID = '10047488' ,@in_MachineCD = '002007' ,@in_A
2013-04-06 09:48:57.76 spid55 * ppID = '130803' ,@in_NeedConfirmInfo = '1,4901001000012,2;2,490100100
2013-04-06 09:48:57.76 spid55 * 0289,3;3,4901001003570,4;4,4901001003594,5'
2013-04-06 09:48:57.76 spid55 *
2013-04-06 09:48:57.76 spid55 *
2013-04-06 09:48:57.76 spid55 * MODULE BASE END SIZE
2013-04-06 09:48:57.76 spid55 * sqlservr 00000000004D0000 00000000040E1FFF 03c12000
2013-04-06 09:48:57.76 spid55 * ntdll 00000000774A0000 0000000077648FFF 001a9000
2013-04-06 09:48:57.76 spid55 * kernel32 0000000076DC0000 0000000076EDEFFF 0011f000
・・・・・・・・・・・・
下面还有很长
#5
EXEC那部分直接执行就停服务?
#6
是的 EXEC Up_AA 就是这个存储过程执行的时候
#7
查一下存储过程大表。估计大表把内存吃完了。这个错误楼主还没有贴完,前面的报错比较主要,还没有贴出来
#8
从下面两点(并且从MODULE的stackcall可以看出这个是SQL SERVER自身的BUG,如果是第三方程序的BUG,那第一个的MODULE的名字应该是第三方DLL的名字)可以看出,这应该是SQL SERVER一个BUG。
1,"SqlDumpExceptionHandler: Process 55 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process."
2,MODULE
sqlservr
对了,你运行一下SELECT @@version ,然后贴出结果来看看。
1,"SqlDumpExceptionHandler: Process 55 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process."
2,MODULE
sqlservr
对了,你运行一下SELECT @@version ,然后贴出结果来看看。
#9
前面? 前面的应该都是系统自带的了,我是在服务重新启动之后立刻执行的。
这些是前面的
2013-04-06 09:45:28.57 spid10s Starting up database 'tempdb'.
2013-04-06 09:45:28.75 spid13s The Service Broker protocol transport is disabled or not configured.
2013-04-06 09:45:28.75 spid13s The Database Mirroring protocol transport is disabled or not configured.
2013-04-06 09:45:28.83 spid13s Service Broker manager has started.
2013-04-06 09:45:28.85 spid6s Recovery is complete. This is an informational message only. No user action is required.
2013-04-06 09:45:49.31 spid53 Attempting to load library 'xpstar.dll' into memory. This is an informational message only. No user action is required.
2013-04-06 09:45:49.32 spid53 Using 'xpstar.dll' version '2009.100.1600' to execute extended stored procedure 'xp_instance_regread'. This is an informational message only; no user action is required.
2013-04-06 09:48:57.75 spid55 Using 'dbghelp.dll' version '4.0.5'
2013-04-06 09:48:57.76 spid55 ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG\SQLDump0009.txt
2013-04-06 09:48:57.76 spid55 SqlDumpExceptionHandler: Process 55 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.
2013-
这些是前面的
2013-04-06 09:45:28.57 spid10s Starting up database 'tempdb'.
2013-04-06 09:45:28.75 spid13s The Service Broker protocol transport is disabled or not configured.
2013-04-06 09:45:28.75 spid13s The Database Mirroring protocol transport is disabled or not configured.
2013-04-06 09:45:28.83 spid13s Service Broker manager has started.
2013-04-06 09:45:28.85 spid6s Recovery is complete. This is an informational message only. No user action is required.
2013-04-06 09:45:49.31 spid53 Attempting to load library 'xpstar.dll' into memory. This is an informational message only. No user action is required.
2013-04-06 09:45:49.32 spid53 Using 'xpstar.dll' version '2009.100.1600' to execute extended stored procedure 'xp_instance_regread'. This is an informational message only; no user action is required.
2013-04-06 09:48:57.75 spid55 Using 'dbghelp.dll' version '4.0.5'
2013-04-06 09:48:57.76 spid55 ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG\SQLDump0009.txt
2013-04-06 09:48:57.76 spid55 SqlDumpExceptionHandler: Process 55 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.
2013-
#10
另外,你是否可以share一下,你的DUMP文件?
有时间可以帮你DEBUG一下。
有时间可以帮你DEBUG一下。
#11
SELECT @@version
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) Jun 28 2012 08:36:30 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) Jun 28 2012 08:36:30 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
#12
我看了一下,问一下,你有没有在存储过程使用比如--那样的注释呀?
#13
如果是LINKED SERVER使用的Provider DLL,可以考虑将LINKED SERVER Provider Allow in process 设置为FALSE.
#14
dump error 最好直接联系微软
#15
怎么联系?
#16
这个设置是什么意思呢?