数据库为什么不能还原

数据库为什么不能还原,第1张

路径错误,还原的时候修改一下路径

*** 作方法如下(参照第7步修改路径):

1--右键"数据库"

2--所有任务

3--还原数据库

4--"还原为数据库库"中输入还原后的数据库名

5--还原选择"从设备"--选择设备--添加--添加你的备份文件--确定,回到数据库还原的界面

6--备份号--选择内容--选择你要恢复那次备份的内容

7--选项--将"移至物理文件名"中的物理文件名修改为你的数据文件要存放的文件名

8--如果要还原的数据库已经存在,选择"在现有数据库上qz还原"-

9--确定

楼主可以试试下面的方法:

一、右击系统数据库master,新建查询

执行以下SQL代码:

RESTORE DATABASE xxx

FROM DISK = 'E:\DB\xxx.bak' --bak文件路径

with replace,

MOVE 'xxx' TO 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\xxx.mdf', --mdf文件路径

MOVE 'xxx_log' TO 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\xxx.ldf' --ldf文件路径

注释:xxx是你需要还原的数据库名称,xxx.bak是你需要还原的备份文件。

二、上面方法执行成功后,只有部分的表结构已经还原,而且表中没有数据,这时就可以用系统默认的方法再用xxx.bak文件还原一次数据库就大功告成了,必须要选中覆盖还原哦。

也可以试试还原另外一个数据库 名字不同(如果上面方法不成功的话)

/*--

出现这种情况,说明你备份的时候指定了两个备份文件

这样,sql在做备份的时候,把数据库的内容分拆写到这两个备份文件中

所以恢复的时候也必须指定这两个备份文件才能恢复

因为一个备份文件中包含数据库中的一部分内容

--*/

/*--备份/恢复测试

SQL恢复时。提示媒体有2个家族成员。现在只提供了1个。数据备份不能恢复

--*/

--下面是对这个问题的测试

--1.创建测试的数据库

create database test

go

--2.备份数据库(注意,我指定了两个备份文件)

backup database test to disk='c:\a1.bak',disk='c:\a2.bak' with init

go

--3.删除测试的数据库

drop database test

go

--4.恢复数据库(第一次,我只提供一个备份文件)

restore database test from disk='c:\a1.bak'

go

--5.查询是否恢复了

select * from master..sysdatabases where name='test'

go

--上面的恢复会出错,也看不到恢复的数据库.

--6.下面是正确的恢复方法

restore database test from disk='c:\a1.bak',disk='c:\a2.bak'

go

--7.查询是否恢复了

select * from master..sysdatabases where name='test'

go

--8.删除测试数据库

drop database test

/*--下面是测试结果

--1.创建数据库的提示信息:

CREATE DATABASE 进程正在磁盘 'test' 上分配 0.88 MB 的空间。

CREATE DATABASE 进程正在磁盘 'test_log' 上分配 0.49 MB 的空间。

已处理 112 页,这些页属于数据库 'test' 的文件 'test'(位于文件 1 上)。

已处理 1 页,这些页属于数据库 'test' 的文件 'test_log'(位于文件 1 上)。

--2.备份数据库的提示信息

BACKUP DATABASE *** 作成功地处理了 113 页,花费了 0.180 秒(5.108 MB/秒)。

--3.删除数据库的提示信息

正在删除数据库文件 'd:\Program Files\Microsoft SQL Server\MSSQL\data\test_log.LDF'。

正在删除数据库文件 'd:\Program Files\Microsoft SQL Server\MSSQL\data\test.mdf'。

--4.不正确恢复的提示信息

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

数据库 'test' 的媒体集有 2 个家族成员,但只提供了 1 个。必须提供所有的成员。

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

RESTORE DATABASE *** 作异常终止。

--5.查询是否恢复了的结果

name dbid sid mode status status2 crdate reserved category cmptlevel filename version

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

(所影响的行数为 0 行)

--6.正确恢复的提示信息

已处理 112 页,这些页属于数据库 'test' 的文件 'test'(位于文件 1 上)。

已处理 1 页,这些页属于数据库 'test' 的文件 'test_log'(位于文件 1 上)。

RESTORE DATABASE *** 作成功地处理了 113 页,花费了 0.186 秒(4.943 MB/秒)。

--7.查询是否恢复了的结果

name dbid sid mode status status2 crdate reserved category cmptlevel filename version

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

test 11 0x01050000000000051500000007E53B2B54190E2943170A32F4010000 0 16 1090519040 2003-12-31 16:35:03.673 1900-01-01 00:00:00.000 0 80 d:\Program Files\Microsoft SQL Server\MSSQL\data\test.mdf 539

(所影响的行数为 1 行)

--8.删除数据库的提示信息

正在删除数据库文件 'd:\Program Files\Microsoft SQL Server\MSSQL\data\test_log.LDF'。

正在删除数据库文件 'd:\Program Files\Microsoft SQL Server\MSSQL\data\test.mdf'。

--*/


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存