设为首页 收藏本站
查看: 623|回复: 0

[经验分享] SQL Server 2008 维护计划执行失败一例

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-5 06:01:41 | 显示全部楼层 |阅读模式
  前几天碰到一个问题, SQL Server 2008 SP2 上的一个检查数据库完整性的维护计划失败了, 这个维护计划没有过任何的修改.
先查看一下执行这个维护计划的job的历史, 有类似以下的报错:
Executing query "DECLARE @Guid UNIQUEIDENTIFIER      EXECUTE msdb..sp...".: 100% complete
End Progress  DTExec: The package execution returned DTSER_FAILURE (1).
Started:  10:14:30 AM  Finished : 10:14:31 AM  Elapsed:  1.185 seconds.  
The package execution failed.  The step failed.
  
从这个报错里看不出什么东西. 只知道这个job是10:14:30 AM 这个时候开始的, 执行了1.185秒就报错了.
然后再查看一下维护计划的历史, 只有如下的一条报错:
Alter failed for Server 'server_name\\instance_name'

看起来有点莫名, 从维护计划生成的语句来看, 也就是dbcc checkdb之类, 为什么会有alter server的操作?

再查看一下errorlog, 发现在维护计划报错的那一时刻, 有如下一条报错:
Configuration option 'user options' changed from 0 to 0. Run the RECONFIGURE statement to install.
看不出个所以然,  还是打开profiler看一下吧. 于是用profiler抓到了以下的语句:
EXEC sys.sp_configure N'user options', 0 RECONFIGURE
go
EXECUTE msdb..sp_maintplan_update_log '3E94A9A2-B4DD-4BA8-88E0-065DD7F1E90C'
,'Check Database Integrity Task (server_name)','Check Database integrity on Local server connection'
,'Databases: All databases','Include indexes','','server_name','0'
,'2012-01-17T10:40:41','2012-01-17T10:40:42',0,'Alter failed for Server ''server_name''. ',''
go
看来执行过sys.sp_configure之后, 就报错了, 干脆直接执行一下
EXEC sys.sp_configure N'user options', 0 RECONFIGURE
果不其然, 报错了:
Configuration option 'user options' changed from 0 to 0. Run the RECONFIGURE statement to install.
Msg 5808, Level 16, State 1, Line 1
Ad hoc update to system catalogs is not supported.
从报错信息看, 想起了sp_configure中有一个allow updates的选项, 是不是和这个有关系, 查看一下
exec sys.sp_configure 'allow updates'
go
返回的结果:
name  minimum maximum config_value run_value
allow updates  0                1 1  1
看来问题就是在这里.
在SQL Server 2005及以后, 就不允许直接更新系统表了, 所以即便这个allow updates的设置是1, 并且在设置的时候没有报错, 但是要执行reconfigure使更改生效, 还是会报错.
而执行维护计划的过程中,就执行了reconfigure, 所以导致维护计划的执行报错.
那么解决的办法很简单, 执行个a以下语句把allow updates 改成0就可以了.
exec sp_configure 'allow updates', 0
同理, 如果执行了以下语句修改recovery internal, 再执行维护计划也是会报错.
EXEC sp_configure 'Recovery interval', 61
go

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-83192-1-1.html 上篇帖子: SQL Server 拼接字符串 [SQL Server] 下篇帖子: sql server 语句 循环 、游标、临时表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表