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

简介

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

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

http://www.cnblogs.com/CareySon/p/3509030.html [转]

时间: 2024-10-17 14:56:24

如何附加被分离的质疑数据库? [转]的相关文章

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

BAT代码: @echo off Title DataBase Color 0A :caozuo echo. echo ═══════════════════════════════════════ echo [数据库操作]: echo 1.删除数据库 echo 2.还原数据库 echo 3.操作3 echo 4.操作4 echo 5.操作5 set /p n=输入操作号: if "%n%"=="" cls&goto :caozuo if "%n%

4.3 附加和分离数据库

4.3 附加和分离数据库 4.3.1 分离数据库 4.3.2 附加数据库 USE [master] GO CREATE DATABASE [SQLDB01] ON ( FILENAME = N'C:\MSSQL\Data\SQLDB01.mdf' ), ( FILENAME = N'C:\MSSQL\Data\SQLDB01_log.ldf' ), ( FILENAME = N'C:\MSSQL\Data\FG2012_data.ndf' ), ( FILENAME = N'C:\MSSQL\D

附加没有日志文件的数据库方法

原文:附加没有日志文件的数据库方法 今天客户那边执行SQL报错,经查看是客户服务器数据库磁盘已被全部用完,日志文件达到500GB的程度,后来由于我的错误操作导致日志文件(.ldf)被删除,后来附加.mdf文件老是说没有日志文件附加不成功,后来经过一番折腾终于解决了,下面分享一下! 阅读目录 操作步骤 回到顶部 操作步骤   1.新建同名的数据库文件   2.暂停SQLSetver服务   3.将原先的mdf文件,覆盖新建的数据库,删除新数据库的ldf文件   4.重新启动SQLSetver服务

Mysql读写分离与主从数据库设置方案

Mysql读写分离与主从数据库设置方案 亿仁网 18-10-0711:31 Mysql无非四个功能:增,删,改,读.而将增删改和读分离操作.这样有利于提高系统性能.下面是非常直观的操作: 1.配置: 两台服务器同配置的mysql如mysql5.7 PS:如果条件有限,一台也可以,只需要安装两个mysql服务(不同端口如3306,3307),只是这就有点违背效率初衷了 2.代码: 1.一般直接在代码层将mysql操作类的读写如update,insert与select * from进行路由分离.使之

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

备份和恢复的概念: 备份和恢复组件是SQL Server的重要组成部分.备份就是指对SQL Server数据库及其他相关信息进行拷贝,数据库备份记录了在进行备份这一操作时数据库中所有数据的状态,如果数据库因以外而损坏,这些备份文件将在数据库恢复时被用来恢复数据库.恢复就是把遭受破坏.丢失的数据或出现错误的数据库恢复到原来的正常状态,这一状态就是有备份决定的.分离数据库: 在SQL Server运行时,在Windows中不能直接复制到SQL Server数据库文件,如果想复制SQL Server数

SQLlite数据库中的附加和分离

在SQLlite数据库中往往一个数据文件就是一个schema,但是在平时的业务或者是一些条件中可能是不同的内容存放在不同的schema中,即不同的数据文件,有的场景下需要数据关联时就可以使用SQLlite的数据附加来建立一个临时的链接.如下,在使用my_test的schema时需要关联查询一个为my_test2的schema就可以使用附加: [[email protected] data]# sqlite3 my_test.db #在SQLlite数据库中缺省database名为main SQL

AutoScaling 弹性伸缩附加与分离RDS实例

阿里云弹性伸缩服务(AutoScaling)推出新功能:AttachDBInstances和DetachDBInstances.新功能使得您可以自由的对伸缩组附加和移除Rds实例. 本文将为您介绍如何将 Rds 实例附加到和分离出伸缩组. RDSRDS是阿里云提供的一种稳定可靠的在线数据库服务,支持MySQL.SQL Server.PostgreSQL 和 PPAS引擎,并且提供了容灾.备份.恢复.监控.迁移等方面的全套解决方案,彻底解决数据库运维的烦恼.RDS 与 弹性伸缩相结合时,通过将伸缩

Sql Server 附加没有日志文件的数据库(.mdf)文件方法

附加数据库,附加的时候会提醒找不到log文件 针对以上现象有两个写法的语句能解决: 写法一: USE MASTER; EXEC sp_detach_db @dbname = 'TestDB'; EXEC sp_attach_single_file_db @dbname = 'TestDB', @physname = 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008\MSSQL\DATA\TestDB.mdf' 写法二: CREAT

读写分离与主从数据库

主从数据库:主要是数据上的读写分离: 数据库的读写分离的好处?1. 将读操作和写操作分离到不同的数据库上,避免主服务器出现性能瓶颈:2. 主服务器进行写操作时,不影响查询应用服务器的查询性能,降低阻塞,提高并发:3. 数据拥有多个容灾副本,提高数据安全性,同时当主服务器故障时,可立即切换到其他服务器,提高系统可用性: 读写分离的基本原理就是让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELETE)操作,而从数据库处理SELECT查询操作.数据库复制被用来把事务性操作导致的变更