如何附加被分离的质疑数据库?

 

简介

有些时间,由于日志损坏等原因,导致了数据库质疑。如果此时你分离了数据库,那你会发现你无法再附加上数据库,那后果还是很严重的。因此本文提供了一种方式,可以使得当数据库质疑并且分离出了实例,依然可以用一种HACK的方法进行附加。

具体步骤

目前有一个数据库AttchSuspectDatabase,中只有一张表Test,其中只有一列INT列,目前其中数据是1,2。我们将该数据库搞为质疑,如图1所示。

图1.数据库质疑

此时,我们分离数据库后。尝试附加,显示失败,如图2所示。

图2.数据库已经无法附加

即使我们使用重建日志等方法,发现依然无法附加,如图3所示。

图3.尝试重建日志方法附加,依然无效

那由于质疑是日志导致的问题,我们直接删了日志附加数据库呢?

图4.删除日志附加,依然无效

此时,我们通过一种Hack的方法来附加数据库。首先,我们创建同名数据库,然后将该数据库下线,代码如下所示:

ALTER DATABASE [AttchSuspectDatabase] SET OFFLINE;
GO

将原有数据库MDF文件替换新创建的傀儡数据库的MDF文件,此时,数据库附加成功,但状态仍然是质疑,如图5所示。

图5.Hack方法附加数据库成功

此时,我们就可以通过正常的手段修复数据库了。如图6所示

至此,通过一些小技巧来附加质疑的数据库就完成了。

 
 

附加被分离DB的更多相关文章

  1. SQL 数据库 学习 005 学习必备的一些操作 --- 如何新建数据库 如何附加和分离数据库(如何备份还原数据库) 如何删除数据库

    我的电脑系统: Windows 10 64位 使用的SQL Server软件: SQL Server 2014 Express 如果我们要学习这个数据库,我们需要学习什么知识.比如:如何新建一个数据库 ...

  2. bat 操作数据库(附加,分离,删除,还原)

    BAT代码: @echo off Title DataBase Color 0A :caozuo echo. echo ═══════════════════════════════════════ ...

  3. SQLite-创建、附加、分离数据库

    创建数据库 - $> sqlite3 DatabaseName.db 附加数据库 - sqlite> ATTACH DATABASE 'DatabaseName.db' AS 'Alias ...

  4. sqlite 附加和分离数据库

    附加数据库 ATTACH DATABASE 'testDB.db' as 'TEST'; 分离数据库 DETACH DATABASE 'Test';

  5. 【SQLite】教程05-SQLite创建数据库、附加、分离数据库

    创建数据库 .quit命令 退出sqlite 提示符 .quit .dump 命令 使用 SQLite .dump 点命令来导出完整的数据库在一个文本文件中,如下所示: sqlite3 Test.db ...

  6. 附加、分离数据库和备份、还原数据库的区别(转载于中雪的BLOG)

    备份和恢复的概念: 备份和恢复组件是SQL Server的重要组成部分.备份就是指对SQL Server数据库及其他相关信息进行拷贝,数据库备份记录了在进行备份这一操作时数据库中所有数据的状态,如果数 ...

  7. SQL 语句 使用附加和分离

    use mastergo declare @flg int --返回0表示成功 否则表示失败declare @msg varchar(50) --显示成功或失败的消息declare @dbname v ...

  8. 【SqlServer】利用sql语句附加,分离数据库-----转载

    利用sqlserver内置的存储过程sp_attach_db和sp_detach_db附加 exec sp_attach_db @dbname=N'数据库名',@filename1=N'.mdf的文件 ...

  9. sqlserver 分离和附加

    1.何为数据库分离和附加 数据库分离: 分离数据库就是将某个数据库(如student_Mis)从SQL Server数据库列表中删除,使其不再被SQL Server管理和使用,但该数据库的文件(.MD ...

随机推荐

  1. Git常用命令(转)

    目前开发的新项目使用的版本控制工具基本用的都是Git,老项目用的还是Svn,网上Git资源也很多,多而杂.我整理了一份关于Git的学习资料,希望能帮助到正在学习Git的同学. 一. Git 命令初识 ...

  2. 采购申请 POCIRM-001:ORA-01403: 无论数据未找到

    今天就让同事帮忙看问题.当请求生成采购订单,在销售模块错误提交销售订单 查看请求日志 +-------------------------------------------------------- ...

  3. bigdata_ambari修改hiveserver_metastore链接库(从0.14 升级到1.2.1 )

    第一步:[db升级 ,先看第二步] cd到 hive的 metastore  upgrade目录 cd /usr/hdp/2.5.0.0-1245/hive/scripts/metastore/upg ...

  4. NYoj The partial sum problem(简单深搜+优化)

    题目链接:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=927 代码: #include <stdio.h> #include & ...

  5. Controller与Action

    Controller与Action 我们知道在MVC5和之前的版本,两个框架的生命周期是不一样的,在新版MVC6中,MVC Controller/Web API Controller已经合二为一了,本 ...

  6. javascript中字符串常用方法总结

    字符串是javascript编程中不可或缺的元素,掌握字符串常用的方法也是我们学习过程中的必经之路,下面我们总结一些最常用的的字符串方法. string.charAt(postion) charAt方 ...

  7. Swift中文教程(三)--流程控制

    原文:Swift中文教程(三)--流程控制 Swift用if和switch编写条件控制语句,用for-in,for,while和do-while编写循环.条件控制语句和循环语句中,小括号是可选的,但花 ...

  8. 深入理解C指针之四:指针和数组

    原文:深入理解C指针之四:指针和数组 数组是C内建的基本数据结构,数组表示法和指针表示法紧密关联.一种常见的错误认识是数组和指针完全可以互换,尽管数组名字有时可以当做指针来用,但数组的名字不是指针.数 ...

  9. ASP.NET 5 :读写数据库连接字符串

    ASP.NET 5 :读写数据库连接字符串 1.概述 ASP.NET 5模板项目配置文件采用了JSON格式,你依然可以采用以前的xml格式.C#对web.config或app.config读写及加密有 ...

  10. C语言编写Windows服务程序

    原文:C语言编写Windows服务程序 #include <Windows.h> #include <stdio.h> #define SLEEP_TIME 5000 // 间 ...