SQL2000数据库被误重写了,怎样恢复到之前MDF和日志文件都完好没有破坏,在线等...

SQL2000数据库被误重写了,怎样恢复到之前MDF和日志文件都完好没有破坏,在线等...,第1张

前提条件

-- 将 数据的恢复模式(Recovery mode)设置为  “完整(Full)”

-- 此 *** 作可以在  SQL Server Management Studio 中, 选择数据库, 鼠标右键, 属性后,在 选项 标签中进行设置。

USE [master]

GO

ALTER DATABASE [test] SET RECOVERY FULL WITH NO_WAIT

GO

-- 完整备份数据库

backup database test to disk='e:\test_20130704dat'

GO

已为数据库 'test',文件 'Test' (位于文件 1 上)处理了 376 页。

已为数据库 'test',文件 'Test_log' (位于文件 1 上)处理了 3 页。

BACKUP DATABASE 成功处理了 379 页,花费 1151 秒(2571 MB/秒)。

 测试数据 

USE [test]

GO

-- 创建测试表

CREATE TABLE test_br_table (

  ID   int,

  VAL  VARCHAR(10),

  PRIMARY KEY(ID)

);

GO

INSERT INTO test_br_table  VALUES (1, 'TEST1');

INSERT INTO test_br_table  VALUES (2, 'TEST2');

INSERT INTO test_br_table  VALUES (3, 'TEST3');

GO

SELECT GETDATE()

GO

-----------------------

2013-07-04 16:44:12393

(1 行受影响)

-- 假设误 *** 作, 删除所有的数据了

DELETE FROM test_br_table

GO

(3 行受影响)

 恢复  

USE [master]

GO

-- 步骤1 备份当前数据库的事务日志:

BACKUP LOG [Test] TO disk= N'e:\test_log' WITH NORECOVERY

GO

已为数据库 'Test',文件 'Test_log' (位于文件 1 上)处理了 9 页。

BACKUP LOG 成功处理了 9 页,花费 0046 秒(1486 MB/秒)。

-- 步骤2 恢复一个误删除之前的完全备份:

RESTORE DATABASE [Test] FROM DISK = N'e:\test_20130704dat' WITH NORECOVERY,  REPLACE

GO

已为数据库 'Test',文件 'Test' (位于文件 1 上)处理了 376 页。

已为数据库 'Test',文件 'Test_log' (位于文件 1 上)处理了 3 页。

RESTORE DATABASE 成功处理了 379 页,花费 0828 秒(3574 MB/秒)。

-- 步骤3 将数据库恢复至误删除之前的时间点:

RESTORE LOG [Test] FROM  DISK = N'e:\test_log' WITH  STOPAT = N'2013-07-04 16:44:12393' , RECOVERY

GO

已为数据库 'Test',文件 'Test' (位于文件 1 上)处理了 0 页。

已为数据库 'Test',文件 'Test_log' (位于文件 1 上)处理了 9 页。

RESTORE LOG 成功处理了 9 页,花费 0013 秒(5258 MB/秒)。

 核对数据 

use [Test]

GO

SELECT  FROM test_br_table

GO

ID          VAL

----------- ----------

          1 TEST1

          2 TEST2

          3 TEST3

(3 行受影响)

上面为 SQL Server  2008 下面 *** 作的记录,  SQL 2000 下面, 不知道行不行了

很简单一个数据库最重要的就是这两个文件你可以有两种方法1

直接覆盖

新建一个数据库

把两个文件覆盖到对应数据库的文件上2

用还原的方法,

其原理是和1一样的

选择设备后

在强制还原下

要在事务日记里选择你新建的数据库文件的路径

一般只有一个数据库时不用选择系统会自动找到。

MDFScan数据库碎片文件扫描恢复软件用来恢复那些被认为无法恢复的MDF数据库文件,当FAT32删除或者格式化文件或者NTFS分区 里面删除文件后文件长度变成0字节,一般的数据恢复技术手段就无法完成的找回原来数据库文件的碎片数据,恢复的文件往往无法附加到数据库中。因为MDF数据库文件一般都比较大,在磁盘中往往被存放到不连续的逻辑簇中,就形成了文件碎片,当删除或者格式化后,这些分散在磁盘中的碎片数据很难恢复,这是一项公认为高难度的数据,一般的专业数据恢复人员都只能放弃这种文件。MDFScan软件的出现提供了一种理想的解决方案,我们的数据恢复软件对这个分区或者镜像文件进行扫描,压缩后的磁盘数据存入一个扩展名为mdfmf格式的文件, 将文件发给我们工程师进行重组分析,把各个碎片数据进行海量计算重组恢复,修复好数据库后便可直接附加到MS SQL企业管理器中。

数据库"置疑"了应该是文件损坏了,例如你把数据库分离后,用记事本打开他会看到很多乱码,强行改动里边的那些乱码,保存后附加数据库,由于里边格式乱了,数据库就"置疑"了。

你首先要进入“单用户模式”,让你可以重新 *** 作数据库,然后用SELECT 命令可以看出什么表出错了(上帝保佑你只是某个表出错了),如果只是某个表出错,而又只是数据错误,不是结构错误,还可以通过运行带WHERE子句的SQL看看数据是到哪里出错,把,错误点以后的数据都删除掉,那至少数据库还可以用。

如果你的数据不是真的都那么要紧的话,用还原功能是最方便可行的办法。当然备份档之后的数据是没有了。

给你一个我日常维护数据库的方法吧。

SQL Server 2000数据库LDF损坏,只有mdf的恢复方法。

SQL Server 2000数据库文件遭到破坏的现象经常出现,数据库出错是否可以修复呢?答案是可以的,本日志以一个sql server 2000数据库,数据库日志文件ldf损坏了,mdf正常,数据库附加失败的修复方法总结一下,数据库数据恢复在很多时候比较复杂,当数据库存在大量错误的时候,使用DBCC修复也是不可以的,需要拆解数据库来抢救重要的数据,下面是较为常见的一种SQL Server 2000数据库修复方式:

1) 先及时把原来的数据库文件(如testmdf)备份到其他地方。

2) 停掉服务器。

3) 删除这个testmdf。

4) 重新建立一个test同名数据库。

5) 删除这个新建立的test数据库的testldf文件,并用开始备份好testmdf文件覆盖这个新建立的testmdf文件。

6) 启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何 *** 作。

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

7) 设置test为紧急修复模式

update sysdatabases set status=-32768 where dbid=DB_ID('test')

此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表

8) 下面执行真正的恢复 *** 作,重建数据库日志文件

dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_logldf')

执行过程中,如果遇到下列提示信息:

服务器: 消息 5030,级别 16,状态 1,行 1

未能排它地锁定数据库以执行该 *** 作。

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

说明您的其他程序正在使用该数据库,如果刚才您在 *** 作中使用SQL Server Enterprise Manager打开了test库的系统表,那么退出SQL Server Enterprise Manager就可以了。

正确执行完成的提示应该类似于:

警告: 数据库 'test' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。

9) 验证数据库一致性

dbcc checkdb('test')

10设置数据库为正常状态

sp_dboption 'test','dbo use only','false'

如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。

11)最后一步,我们要将步骤6中设置的“允许对系统目录直接修改”一项恢复;

以上就是关于SQL2000数据库被误重写了,怎样恢复到之前MDF和日志文件都完好没有破坏,在线等...全部的内容,包括:SQL2000数据库被误重写了,怎样恢复到之前MDF和日志文件都完好没有破坏,在线等...、整个SQL被删了,我把数据库文件.mdf和.log文件恢复回来了,但不知道如何恢、MDFScan数据库碎片文件扫描恢复软件 V1.1怎么用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10626483.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存