1、123无日志文件,数据库可不可以被修复日志文件损坏,一般有哪些故障现象如果能修复,应如何修复讨论DBCC的使用使用database_namedatabase_name代表被检测的数据库实体代表被检测的数据库实体名;名;NOINDEXNOINDEX指非系统表的非聚族索引不检测;指非系统表的非聚族索引不检测;REPAIR_ALLOW_DATA_LOSS|REPAIR_FAST|REPAIR_ALLOW_DATA_LOSS|REPAIR_FAST|REPAIR_REBUILDREPAIR_REBUILD 指直接修复发现的错误,指直接修复发现的错误,其中其中REPAIR_ALLOW_DATA_LOSS
2、REPAIR_ALLOW_DATA_LOSS代表,若此代表,若此错误不能修复时,系统将直接删除相关数据错误不能修复时,系统将直接删除相关数据。带此三个参数的任一个时,数据库必须处。带此三个参数的任一个时,数据库必须处于单用户模式于单用户模式ALL_ERRORMSGSALL_ERRORMSGS代表将检测到的错误信息全代表将检测到的错误信息全部显示出来,否则,对于每张表最多只显示部显示出来,否则,对于每张表最多只显示200200条错误信息条错误信息NO_INFOMSGSNO_INFOMSGS代表隐藏所有代表隐藏所有的信息及占用空间的报告的信息及占用空间的报告方法一:命令设置:sp_dboption
3、 databasename,Nsingle,Ntrue 方法二:图形设置:如下图4declare databasename varchar(255)1235set databasename=要修复数据库名称sp_dboption databasename,Nsingle,Ntrue dbcc checkdb(databasename,REPAIR_ALLOW_DATA_LOSS)dbcc checkdb(databasename,REPAIR_REBUILD)6sp_dboption databasename,Nsingle,Nfalse4declare databasename varcha
4、r(255)1235set dbname=要修复数据表名称sp_dboption dbname,single user,true dbcc checktable(数据表名称,REPAIR_ALLOW_DATA_LOSS)dbcc checktable(数据表名称,REPAIR_REBUILD)6sp_dboption dbname,single user,true PUBS一、在一、在SQL Server Management StudioSQL Server Management Studio停止数据库服务,因为不停止数据停止数据库服务,因为不停止数据库的服务,将无法数据文件和日志文件进行拷
5、贝库的服务,将无法数据文件和日志文件进行拷贝 二、二、将需要恢复的数据库文件复制到另外的位置将需要恢复的数据库文件复制到另外的位置,重新启动数据库服务重新启动数据库服务,再在再在SQL Server Management Studio中删除要恢复的数据库中删除要恢复的数据库三、三、创建一个新的数据库创建一个新的数据库,命名为原来数据库的名字。命名为原来数据库的名字。四、四、停止数据库,用前面备份的停止数据库,用前面备份的.mdf文件覆盖新数据库的同名文件,重新文件覆盖新数据库的同名文件,重新启动数据库,并在启动数据库,并在SQL Server Management Studio的新建查询中输入如下的新建查询中输入如下内容。内容。alter database dbname set emergency 五、在新建查询中五、在新建查询中运行下面的命令修复数据库运行下面的命令修复数据库。