摘要:一个SQLSERVER数据库会处于很多种状态,例如 ONLINE 、OFFLINE,RESTORING 、RECOVERING 、RECOVERY_PENDING 、SUSPECT、EMERGENCY 。通过本文,让您更好的掌握SQLSERVER数据库的主要状态。
一个SQLSERVER数据库会处于很多种状态,例如 ONLINE 、OFFLINE,RESTORING 、RECOVERING 、RECOVERY_PENDING 、SUSPECT、EMERGENCY 。
只有在ONLINE的状态下,数据库才能被正常访问。
可以利用下面的语句来查看它的状态
select name,state_desc from sys.databases
1.ONLINE
只有在ONLINE的状态下,数据库才能被正常访问
2.OFFLINE
我们可以在Microsoft SQL Server Management中看到该数据库,但该数据库名称旁边有"脱机"的字样,说明该数据库现在虽然存在于数据库引擎实例中,但是不可以执行任何有效的数据操作,比如新增,修改,删除等,这就是脱机状态。(这个时候,你就可以直接拷贝源文件了,也就会说最原始的备份方法)
但是:
无法覆盖文件 ‘F:\TEST\SHOP.MDF‘。数据库 ‘SHOP‘ 正在使用该文件。
你依然无法....
3.RESTORING
由于SQLSERVER LAZY WRITE和CHECKPOINT的作用,硬盘上存在一些未提交的数据,如果数据库在这种时候被关闭,下次SQLSERVER重新打开数据库的时候,为了维护数据库的一致性,SQLSERVER一律回滚,以保证数据库事务的一致性(undo/rollback),对于那些已经提交的事务,暂时存在内存中,未写入到磁盘中的,一律redo,在undo和redo的过程叫做数据库恢复。只有经过恢复的数据库,才能保证是一个“一致的”数据库,才能被安全地访问。
4.RECOVERY_PENDING
如果数据库在做恢复的时候不能正常打开所有的数据库文件,数据库会进入RECOVERY PENDING状态。在这个状态下管理员有两种选择,
a.要不用ALTER ONLINE命令使SQLSERVER做一次上线,
b.要不就只能放弃当前数据库,还原备份。
5.SUSPECT
我们可以在Microsoft SQL Server Management中看到该数据库,但该数据库名称旁边有"可疑"的字样,这说明至少主文件组可疑或可能已损坏。
6.EMERGENCY
数据库标记为 READ_ONLY,已禁用日志记录,并且仅限 sysadmin 固定服务器角色的成员进行访问。EMERGENCY 主要用于故障排除。 例如,可以将由于损坏了日志文件而标记为可疑的数据库设置为 EMERGENCY 状态。 这样,系统管理员便可对数据库进行只读访问。 只有 sysadmin 固定服务器角色的成员才可以将数据库设置为 EMERGENCY 状态。
本文由职坐标整理发布,学习更多的SQL Server知识,请关注职坐标SQL Server频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号