• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 只有mdf文件的数据库附加失败的修复方法分享(置疑、只读)

只有mdf文件的数据库附加失败的修复方法分享(置疑、只读)

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了mdf,附加失败等相关知识,希望本文的分享对您有所帮助

有时候因为某些原因数据库只有mdf文件了,需要附加数据库,会出现一些问题,大家可以参考下面的方法试试

只有mdf文件的数据库附加失败的修复
附加时报如下错误:
服务器: 消息 1813,级别 16,状态 2,行 1
未能打开新数据库 'test'。CREATE DATABASE 将终止。
设备激活错误。物理文件名 "d:\data\test_log.LDF' 可能有误。
步骤:
A、用“企业管理器”新建一个同名的数据。可以修改默认路径,为表述方便,我使用D:\data\,数据文件名test.mdf,日志文件名test_log.ldf
B、停止SQL服务
C、删除test_log.ldf文件,将新建的test.mdf文件用旧的test.mdf文件替换。
D、启动SQL服务。进入企业管理器后发现test数据显示为“置疑”,此后保证无人连接上此数据库,并不做任何操作。
E、设置test数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。我在实际操作的时候没有使用命令,命令方式大家可以自己测试 ^_^
代码如下:
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go

F、设置test数据库为紧急修复模式。在查询分析器中执行如下语句:update sysdatabases set status=-32768 where dbid=DB_ID('test')
复制代码执行后在企业管理器中刷新后会发现ttdb数据库显示为“只读\置疑\脱机\紧急模式”。可以看到数据库里面的表,但是仅仅有系统表。
G、重建数据库日志文件。在查询分析器中执行如下语句:
代码如下:
dbcc rebuild_log('test','d:\Data\test_log.ldf')

执行之前必须退出企业管理器,并且没有人连接些数据库。否则会报如下错误:
服务器: 消息 5030,级别 16,状态 1,行 1
未能排它地锁定数据库以执行该操作。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
正常的消息:
警告: 数据库 'test' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。可以访问数据库里面的用户表了。
H、验证数据库一致性(可省略,不过我忠实地执行了^_^),查询分析器中执行:
代码如下:
dbcc checkdb('test')

报出了每个表的执行情况后,最后报:
CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'test' 中)。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
I、设置数据库为正常状态。执行语句:
代码如下:
sp_dboption 'test','dbo use only','false'

走到这一步,如果没有报错,已经可以长长舒一口气了,去喝口水吧。:P
J、最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。怎么做当然不用再多说啦。也可以执行语句:
代码如下:
sp_configure 'allow updates',0
go
reconfigure with override
go
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • SQLServer2005 没有日志文件(*.ldf) 只有数据文件(*.mdf) 恢复数
  • 只有mdf文件的数据库附加失败的修复方法分享(置疑、只读)
  • 恢复.mdf 数据库步骤
  • sqlserver只有MDF文件恢复数据库的方法
  • mssql server .ldf和.mdf的文件附加数据库的sql语句
  • MDF文件在SQL Server中的恢复技术

相关文章

  • 2018-12-05win2003 安装2个mysql实例做主从同步服务配置
  • 2018-12-05linux mysql 找回密码
  • 2018-12-05mysql分区功能详解及实例代码分析
  • 2018-12-05Oracle 管道 解决Exp/Imp大量数据处理问题
  • 2018-12-05mysql数据类型详细介绍
  • 2018-12-05mongoDB 多重数组查询的实例介绍
  • 2017-05-11浅析MySQL replace into 的用法
  • 2017-05-11总结MySQL建表、查询优化的一些实用小技巧
  • 2017-05-11mysql与mysqli的区别与用法说明
  • 2018-12-05SQL Server 复制需要有实际的服务器名称才能连接到服务器

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • mysql(10061)报错临时解决办法
    • oracle 如何关闭打开归档日志
    • 详细介绍mysql 协议的FieldList命令包及解析
    • 存储过程中创建表时 ORA-01031: insufficient privileges的解决
    • MySQL性能优化之max_connections配置参数浅析
    • 将备份数据还原到数据库的步骤
    • mysql中使用通配符进行过滤教程
    • 关于mysql_list_dbs()函数的10篇文章推荐
    • Oracle错误ORA-01950对表空间“system”无权限解决
    • Windows下修改mysql的data文件夹存放位置的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有