SQLSERVER数据库置疑、可疑、脱机、单用户、紧急模式等的修复

数据库出现置疑、可疑、脱机、单用户、紧急模式主要是因为数据库的日志文件除了问题,2000和2008修复方式不一样,2008的修复脚本在2000中不适用,主要是不被2000识别。

假设数据库名为:eisdoc:

sqlserver2000数据库置疑的处理方式:

1.设置数据库允许直接操作系统表。

此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。

2.设置eisdoc为紧急修复模式

update sysdatabases set status=-32768 where dbid=DB_ID(‘eisdoc‘) 关闭打开企业管理器,此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表

3.重建数据库日志文件

dbcc rebuild_log(‘eisdoc‘,‘E:\Microsoft SQL Server\Data\eisdoc_log.ldf‘) 执行过程中,如果遇到下列提示信息: 服务器: 消息 5030,级别 16,状态 1,行 1 未能排它地锁定数据库以执行该操作。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Server Enterprise Manager打开了eisdoc库的系统表,那么退出SQL Server Enterprise Manager就可以了。(关闭企业管理器,如果别的机器从网络访问数据库,也把网络关闭) 正确执行完成的提示应该类似于: 警告: 数据库 ‘eisdoc‘ 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。

4.验证数据库一致性(可省略)

dbcc checkdb(‘iBusinessWork‘) 一般执行结果如下: CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 ‘eisdoc‘ 中)。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

5.设置数据库为正常状态

sp_dboption ‘eisdoc‘,‘dbo use only‘,‘false‘ 如果没有出错,那么现在就可以正常的使用恢复后的数据库啦。

6.关闭“允许对系统目录直接修改”一项。

因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面恢复。

sqlserver2008数据库可疑文件的修复方式:

1.设置数据库状态,脚本:EXEC sp_resetstatus ‘eisdoc‘

2.设置数据库为紧急模式,脚本:ALTER DATABASE eisdoc SET EMERGENCY

3.设置数据库为单用户模式(对数据库检查修复只能在单用户模式下),脚本:ALTER DATABASE eisdoc SET SINGLE_USER

4.检查并修复数据库,会提示你修复数据库可能丢失数据,正常应该不会丢失数据库数据,但是数据库日志的完整性将受到破坏,脚本:DBCC CheckDB (eisdoc, REPAIR_ALLOW_DATA_LOSS)

5.恢复数据库为多用户模式,脚本:ALTER DATABASE eisdoc SET MULTI_USER

-- 恢复数据库状态

ALTER DATABASE dbName SET ONLINE

以上五步即可修复sqlserver2008中的可疑文件

原文链接:http://blog.sina.com.cn/s/blog_61feb2110101e2ez.html

时间: 2024-08-25 19:45:58

SQLSERVER数据库置疑、可疑、脱机、单用户、紧急模式等的修复的相关文章

数据库一直显示为单用户,解决办法

USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @[email protected]+'; KILL '+RTRIM(SPID) FROM mastersysprocesses WHERE dbid=DB_ID('数据库名'); EXEC(@SQL); GO ALTER DATABASE 数据库名 SET MULTI_USER; 单用户模式为:SET SINGLE_USER

centos 单用户登陆模式操作

在centos中因为安装java而配置 jdk环境变量的原因,对/etc/profile文件进行了编辑 错误的环境变量配置导致在第一次修改profile文件并保存后,执行source /etc/profile 命令后进行测试 即:javac /java/ java -version   都可以得到正确的验证结果; 随机重启系统 在再一次到达登陆页面的时候出现了异常:选择登陆用户点击(正确的 是出现输入密码的窗口)后,又马上(时间可以忽略)返回选择用户窗口, 不能进行登陆,界面只有显示等待的钟表,

sqlserver数据库出现可疑错误修复方法

一.主数据库出现可疑修复方法: 第一种方法: 当数据库发生这种操作故障时,可以按如下操作步骤可处理此要领,打开数据库里的Sql查询编辑器窗口,运行以下的命令: ?修改数据库为紧急模式 ALTER DATABASE 数据库名 SET EMERGENCY ?使数据库变为单用户模式 ALTER DATABASE 数据库名 SET SINGLE_USER ?修正数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对 象不正确.当您指定“REPAIR_ALLOW_DATA_LOSS”作为

26期Linux20180531 单用户 救援模式 克隆虚拟机 linux机器相互登录

5月31日任务 1.13 单用户模式1.14 救援模式1.15 克隆虚拟机1.16 Linux机器相互登录 单用户模式 忘记root密码? 1. 单用户模式 2.救援模式 单用户模式首先需要重启linux (reboot, init 6, shutdown -r now 都可以重启) e-edit 然后按 ctrl x 就会进入紧急/安全模式 进去之后实际上还没有进入本来的系统,有点像是在BIOS里面,需要进入/sysroot,这里面才是系统真正的目录.这个时候需要用chroot 进入系统 之后

笔记 yum init 单用户 救援模式 cd ls

2.1 运行级别 yum runlevel 看级别 cat /etc/inittab 看各种级别都是啥 init 6 == reboot == shutdown -r now 重启最6 init 0 == shutdown -h now 关机归0 图形界面安装 yum grouplist 看支持安装啥(需要联网) LANG=en 改成英文看 yum groupinstall -y "Desktop"  (别装很慢) yum groupinstall -y "X Window

lesson - 2 yum /单用户/救援模式/Linux 启动

课程大纲:1.  yum使用yum 是一个在线安装软件包的工具,它可以帮我们解决软件包的依赖,这个日后会详细介绍.我们介绍了以下几个用法:yum list    这个命令可以列出所有安装过和未安装的软件包yum grouplist    这个命令可以列出所有安装过和未安装的套件yum groupinstall  -y  "Desktop"   ; yum groupinstall -y "X Window System"     我们使用这个命令安装了图形化桌面in

SQLSERVER 切换数据库为单用户和多用户模式

有时候数据库在占用时,想做一些操作,无法操作.可以尝试将数据库切换为单用户模式来操作.操作完之后再切换回多用户模式. 命令如下: alter database 数据库名 set Single_user  --单用户alter database 数据库名 set multi_user   --多用户 或者 sp_dboption 数据库名,"single user",true  --单用户 sp_dboption 数据库名,"single user",false  -

数据库置疑问题解决

资料一 1.停止数据库server,将数据库MDF文件和LDF文件复制备份一份2.启动数据库server,删除置疑的数据库3.仅用备份的数据库MDF文件附加数据库,sp_attach_db或者sp_attach_single_file_db能够附加数据库,出现相似以下的提示信息:设备激活错误.物理文件名称 'C:/Program Files/Microsoft SQL Server/MSSQL/data/myDb_Log.LDF' 可能有误.已创建名为 'C:/Program Files/Mic

linux单用户模式修改root密码和grub密码设定

linux管理员在接管新服务器的时候,有一个常见的问题就是root密码的重置.如root密码长时间不用,或者接管一个陌生的服务器,需要用到单用户模式来重置root的密码. 以下内容是虚拟机VMware11下的centos 6.6版本的介绍: 一.单用户模式修改root密码: 1. 开机显示3s内按任意键,进入选择模式,随便按一个键: 2. 根据提示,点字母e进入编辑模式. 3. 光标选中第二项,再点字母e. 4. 进入编辑模式,在最后面加空格,输入1 .s .S都可以,然后点击回车.再根据后续的