sql2005备份数据库怎么恢复

sql2005备份数据库怎么恢复,第1张

数据库数据恢复步骤

1、通过日志恢复SQLSERVER2005数据(也可通过LogExplorer工具查找进行恢复数据)

(A)通过日志和时间点来恢复数据的前提条件:数据库的故障恢复改为非简单模式,去掉自动关闭和自动收缩两个选项,如果是简单模式:类似下面的语句 *** 作数据就不会记录到日志中:selectintotfrom[表名]采用LogExplorer工具可以在线 *** 作,通过恢复日志(指定时间点恢复)来恢复数据,必须停止数据库或者再另一个数据库恢复(前提是必须有一个完全备份和日志备份)

这时为保证数据的完整要将数据库的恢复模式改成“完整

11、这时对数据库事务日志做备份(注意,如果没做个数据库完整备份,是不能做事务日志备份的)

这时新建一个数据库zp(将以前的数据库改名),恢复数据库

这时我们看到,有两个还原的数据库备份,因为我对zp数据库备份了两次,两次的备份的数据文件都一样。这里我们选择最近时间的备份默认在数据库的设置如下:是追加到备份集里,所以会有两个备份。

同时,在”选项“里设置”不回滚“事务,

注意:通过事务日志还原数据库,必须选择"不回滚"事务

确定后:出现下面情况:

这时发现,数据库一直是”正在还原“,这时还原数据库事务日志,

12、“常规”里选择时间,(刚删除的时间)

13、“选项”里将恢复状态设置为”回滚未提交“事务

确定后,查询数据库,发现数据回来了

2、无日志的数据恢复

21新建一个同名的数据库

22再停掉sqlserver(注意不要分离数据库)

23用原数据库的数据文件覆盖掉这个新建的数据库

24再重启sqlserver

25此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)

26完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用

数据库的脚本创建一个新的数据库,并将数据导进去就行了

USEMASTER

SP_CONFIGURE'ALLOWUPDATES',1RECONFIGUREWITHOVERRIDE

UPDATESYSDATABASESSETSTATUS=32768WHERENAME='数据库名'

sp_dboption'数据库名','singleuser','true'

DBCCCHECKDB('数据库名')

updatesysdatabasessetstatus=28wherename='数据库名'

sp_configure'allowupdates',0reconfigurewithoverride

sp_dboption'数据库名','singleuser','false'

前提条件

-- 将 数据库的恢复模式(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 下面, 不知道行不行了

如果之前没有完全备份的话,我不知道怎么去恢复。

如果之前有完全备份的话,现在立刻备份日志文件。

backup

log

数据库名

to

disk

='备份路径+备份名'

然后还原最近一次的完全备份(删除表之前的完全备份)加上norecovery选项

restore

database

数据库名

from

disk='完全备份路径+备份名'

with

norecovery,replace

之后还原刚才备份的日志文件,加上stopat选项,假设表是在18:01分删除的,就恢复到之前的几分钟

restore

log

数据库名

from

disk='日志文件备份路径+备份名'

with

stopat='2008-3-28

17:30'

1、要进行还原数据库 *** 作我们先需要有一个数据库,这里直接打开SQL Server Management Studio,然后打开实例,在左侧按照下图中红色箭头指示右键点击数据库,然后点击 新建数据库,如下图:

2、在新建数据库的对话框中 修改数据库名称,然后其他都保持默认即可,然后点击确定即可,如下图:

3、然后就可以在SQL Server Management Studio的左侧看到新建的数据库了,如下图:

4、然后开始还原 *** 作,右键点击新建的数据库,然后依次点击 任务->还原->数据库如下图:

5、在d出的还原数据库对话框中,选择 源设备,然后选择右面的两个点,如下图:

6、然后就会d出 指定备份 的对话框,然后点击添加,如下图:

7、然后这里添加备份的数据库备份文件,数据库备份文件后缀名为bak,如下图:

8、然后按照下图中红色箭头指示位置 勾选数据库备份,然后点击 选项,如下图:

9、然后进入还原数据库 的 选项 页,这里首先勾选一下 覆盖现有数据库,然后开始选择下面的 将数据库文件还原为,如下图:

10、然后选择和数据库备份文件在一个文件夹下的mdf 文件,如下图:

11、然后选择和数据库备份文件在一个文件夹下的dlf 文件,如下图:

12、只有bak文件,这两个文件不是备份出来的,这两个文件是小编直接创建的文本文档然后直接改后缀名得到的,选择好这两个文件之后直接点击确定,如下图

13、稍等片刻之后就会看到数据库还原 *** 作成功完成,如下图:

14、然后就可以回到之前创建的数据库中看到,所有的表格已经还原了,如下图:

如果备份的数据库有 个文件 分别是 LDF 和 MDF 打开企业管理器 在实例上右击 所有任务 附加数据库 然后选择那个 MDF文件 就可以了

或者在查询分析器中输入

sp_attach_db 数据库名称 路径\文件名 ldf 路径\文件名 MDF

SQL Server数据库备份有两种方式 一种是使用BACKUP DATABASE将数据库文件备份出去 另外一种就是直接拷贝数据库文件mdf和日志文件ldf的方式 下面将主要讨论一下后者的备份与恢复 本文假定您能熟练使用SQL Server Enterprise Manager(SQL Server企业管理器)和SQL Server Quwey Analyser(SQL Server查询分析器)

正常的备份 恢复方式

正常方式下 我们要备份一个数据库 首先要先将该数据库从运行的数据服务器中断开 或者停掉整个数据库服务器 然后复制文件

卸下数据库的命令 Sp_detach_db 数据库名

连接数据库的命令 Sp_attach_db或者sp_attach_single_file_db

s_attach_db [@dbname =] dbname [@filename =] filename_n [ ]

sp_attach_single_file_db [@dbname =] dbname [@physname =] physical_name

使用此方法可以正确恢复SQL Sever 和SQL Server 的数据库文件 要点是备份的时候一定要将mdf和ldf两个文件都备份下来 mdf文件是数据库数据文件 ldf是数据库日志文件

例子

假设数据库为test 其数据文件为test_data mdf 日志文件为test_log ldf 下面我们讨论一下如何备份 恢复该数据库

卸下数据库 sp_detach_db test

连接数据库 sp_attach_db test C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_data mdf C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log ldf

sp_attach_single_file_db test C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_data mdf

// 本文转自 C++Builder 研究 // ccrun /article aspi= &d=oxit

只有mdf文件的恢复技术

由于种种原因 我们如果当时仅仅备份了mdf文件 那么恢复起来就是一件很麻烦的事情了

如果您的mdf文件是当前数据库产生的 那么很侥幸 也许你使用sp_attach_db或者sp_attach_single_file_db可以恢复数据库 但是会出现类似下面的提示信息

设备激活错误 物理文件名 C:\Program Files\Microsoft SQL Server\MSSQL\data\test_Log LDF 可能有误

已创建名为 C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log LDF 的新日志文件

但是 如果您的数据库文件是从其他计算机上复制过来的 那么很不幸 也许上述办法就行不通了 你也许会得到类似下面的错误信息

服务器: 消息 级别 状态 行

未能打开新数据库 test CREATE DATABASE 将终止

设备激活错误 物理文件名 d:\test_log LDF 可能有误

lishixinzhi/Article/program/SQL/201311/16353

以上就是关于sql2005备份数据库怎么恢复全部的内容,包括:sql2005备份数据库怎么恢复、SQL2000数据库被误重写了,怎样恢复到之前MDF和日志文件都完好没有破坏,在线等...、SQL数据库表被误删除,如何恢复等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/sjk/9371916.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存