一服务器上的数据库全部被置于紧急模式(emergency),在错误日志里面能看到大量下面的错误
failed to create appdomain "yoursqldba.dbo[runtime].79". exception has been thrown by the target of an invocation.
failed to create appdomain "yoursqldba.dbo[runtime].76". exception has been thrown by the target of an invocation.
....................................................................
在error log里面,我们可以看到甚至包括yoursqldba这个库也被设置为单用户模式、紧急模式。如下截图所示,这个发生在凌晨yoursqldba_fullbackups_and_maintenance作业启动做备份、维护的时候。
由 microsoft 在 2011/12/6 於 22:24 公佈
errors like:
msg 6517, level 16, state 1, line 3
appdomain "mds.dbo [runtime] .20" could not create.
exception has been thrown by the target of an invocation.
come
directly from .net/clr itself. it's usually about some inconsistency
with the clr/.net itself. it means the clr installation is corrupted
(unlikely), or, more likely, a .net patch was recently installed and the
machine is pending a reboot.
let us know if reboot doesn't fix the problem.
about the upgrade failure from upgrade step 677 to 678: this issue is fixed in denali rc1.
翻译过来就是:这个错误通常是.net/clr 它本身导致的,通常是由于clr/.net它本身的一些不一致性导致(inconsistency),这意味着clr安装损坏了(这个不太可能),大部分是由于最近安装了.net 补丁,服务器没有重新启动导致。
继
续查找更早的日志,其实发现9号就有这个“failed to create appdomain
"yoursqldba.dbo[runtime].xx". exception has been thrown by the target of
an invocation"这个错误出现,告警邮件也有收到,只是忙于处理其它事情,没有留意。
检查系统日志(windows nt system log),发现确实存在microsoft .net framework 自动更新的记录。如下所示
另外在”控制面板“->"程序”->"程序和功能“->"已安装更新"里面可以看到
解决方法很简单,需要重启数据库服务器来解决这个问题。