巡检发现一个SQL SERVER Express 2005数据库备份时出现下面错误:
Database 'xxxx' is being recovered. Waiting until recovery is finished.
出 现这个错误有点让人纳闷,有很多情况可能出现这个错误,例如,系统出现异常重启,或数据库服务被人为突然重启,数据库服务启动后,数据库正在恢复中,此时 备份就会出现这种错误提示,但是检查错误日志发现没有任何异常错误信息,检查数据库还原记录,也没有发现该数据库在备份时间段有还原的记录,最终发现是该 数据库的一个“自动关闭”属性设置为了True
关于数据库的“自动关闭”属性,以前也碰到过一个关于这个属性引起的错误案例 Error: 9001, Severity: 21, State: 5 The log for database 'xxxx' is not available 。看来这个“自动关闭”属性设置为Ture还真是麻烦多多。
后面查了一下MSDN文档,发现SQL Server 2000或SQL Server Express版本的数据库的AUTO_CLOSE选项默为Ture,而这个数据库恰好为SQL Server Express 2005.
选项 |
说明 |
默认值 |
AUTO_CLOSE |
当设置为 ON 时,数据库将在最后一个用户退出后完全关闭,它占用的资源也将释放。当用户尝试再次使用该数据库时,该数据库将自动重新打开。 当设置为 OFF 时,最后一个用户退出后数据库仍保持打开。 |
无论使用什么操作系统,当使用 SQL Server 2000 Desktop Engine 或 SQL Server Express 时,对于所有数据库均为 True,而使用所有其他版本时,对于所有数据库均为False |