--调用系统存储过程
xp_readerrorlog
--用系统存储过程查看错误日志
xp_ReadErrorLog 0, 1, 'Failed', 'login'
--此处指定recovery 可使数据库立马可用 当然这样做的前提是你做了完全备份和事务日志备份
--仅做了此还原,数据库会处于还原状态而不可用
restore database database_name from disk='备份文件路径' with replace,norecovery
--事务日志还原
restore database database_name from disk='日志备份文件路径' with recovery,stopat=[指定还原的时间点]
-- 数据库状态时 restoring 如果想让数据库 在线
restore database dbname with recovery
--查看一下,这些会话正在执行的语句
dbcc inputbuffer(54)
————————————————
版权声明:本文为CSDN博主「runningbar」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013597888/article/details/42815405

因为数据库正在使用,所以无法获得对数据库的独占访问权。
解决方案
问题一描述:SQL Server数据库备份还原后,在数据库名称后会出现“受限制访问”字样
问题二描述:在对SQL Server数据库进行还原时,提示:System.Data.SqlClient.SqlError:因为数据库正在使用,所以无法获得对数据库的独占访问权。(Microsoft.SqlServer.Smo)。出现此问题的原因是在还原数据库时,有其他用户正在使用数据库。还原数据库要求数据库工作在单用户模式。通常就是DBA在操作时,不允许其他用户连接数据库。
问题一解决办法:
右键点击数据库 -> 属性 -> 选项 -> 状态 -> 限制访问 -> 选择Multiple -> 确定。
问题二解决办法:
方法一(最方便):右键点击数据库 -> 属性 -> 选项 -> 状态 -> 限制访问 -> 选择Single-> 确定。然后还原。
方法二(最直接):断开数据库连接
方法三(最暴力):注销/重启数据库服务器
方法四(最麻烦):写代码修改数据库相关属性,虽然麻烦,有的时候还是要用到,那就用到的时候再研究。
方法五(终级解决方案):
关键SQL语句:
ALTER DATABASE [datebase] SET OFFLINE WITH ROLLBACK IMMEDIATE
用完之后再
ALTER database [ datebase] set online