还原备份的数据库,出错!!!

伟大de虫子 2004-09-03 09:47:22

请看下面的错误信息:

http://test.zsonline.com/lsf$/sql_help.gif

真是祸不单行,以为备份了数据库应该就能还原了,结果不是那么回事。。
请会的帮帮我!!很惨啊,现在公司里催得要命。


...全文
174 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
feeling_68 2004-09-03
  • 打赏
  • 举报
回复
http://study.99net.net/study/database/mssql/1085625465.html
希望能对你有用:)
renliquan 2004-09-03
  • 打赏
  • 举报
回复
(邹建)的确是个即历害,又热心的人。

我支持你!

我来学习一下:
if exists (select * from master..sysdatabases where name='test')
Drop Database test
go

Create Database test
go

backup Database test to disk='c:\test1.bak',disk='c:\test2.bak'
go

Drop Database test
go

Restore Database test from disk='c:\test1.bak',disk='c:\test2.bak'
go

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

提示信息:
正在删除数据库文件 'd:\Program Files\Microsoft SQL Server\MSSQL\data\test_Log.LDF'。
正在删除数据库文件 'd:\Program Files\Microsoft SQL Server\MSSQL\data\test_Data.MDF'。
CREATE DATABASE 进程正在磁盘 'test' 上分配 0.75 MB 的空间。
CREATE DATABASE 进程正在磁盘 'test_log' 上分配 0.49 MB 的空间。
已处理 96 页,这些页属于数据库 'test' 的文件 'test'(位于文件 2 上)。
已处理 1 页,这些页属于数据库 'test' 的文件 'test_log'(位于文件 2 上)。
BACKUP DATABASE 操作成功地处理了 97 页,花费了 0.307 秒(2.568 MB/秒)。
正在删除数据库文件 'd:\Program Files\Microsoft SQL Server\MSSQL\data\test_log.LDF'。
正在删除数据库文件 'd:\Program Files\Microsoft SQL Server\MSSQL\data\test.mdf'。
已处理 104 页,这些页属于数据库 'test' 的文件 'test_Data'(位于文件 1 上)。
已处理 1 页,这些页属于数据库 'test' 的文件 'test_Log'(位于文件 1 上)。
RESTORE DATABASE 操作成功地处理了 105 页,花费了 0.094 秒(9.085 MB/秒)。

(所影响的行数为 1 行)
cqdj 2004-09-03
  • 打赏
  • 举报
回复
没有其他的办法,只有重新备份恢复,如果没有原库回一个文件的备份,将是一件比较遗憾的事
pbsql 2004-09-03
  • 打赏
  • 举报
回复
备份时若指定了两个备份文件,那么恢复时也必须指定这两个备份文件

备份时只指定一个备份文件就是了
zjcxc 元老 2004-09-03
  • 打赏
  • 举报
回复

出现这种情况,说明你备份的时候指定了两个备份文件
这样,sql在做备份的时候,把数据库的内容分拆写到这两个备份文件中
所以恢复的时候也必须指定这两个备份文件才能恢复
因为一个备份文件中包含数据库中的一部分内容
zjcxc 元老 2004-09-03
  • 打赏
  • 举报
回复
/*--备份/恢复测试

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'。
--*/
pbsql 2004-09-03
  • 打赏
  • 举报
回复
已经提示了要提供2个
网友NoName撰写的调试指南: 历尽千辛万苦,在这里许多朋友的帮助下,偶的www.sdvod.com影院的程序终于调试成功,为了方便其他想使用此程序的朋友,偶现提供安装调试方法 下载的www.sdvod.com程序自带sdyy.bak备份,好像有42M,一般朋友还原数据的时候,会出现错误,这时请将您的数据库文件建立在D:Program FilesMicrosoft SQL ServerMSSQLData 目录里,如果还是不行,请将数据库名字设为sdyy.mdf 日志名 sdyy.ldf 即可正常还原. 我看这备份中的电影几乎都不能使用了,如果您想重新建立新的数据库,请使用压缩包里面的sunbbsorg.sql 脚本,直接导入即可创建新的数据库. 方法一:不使用程序所带的sdyy.bak备份还原,使用自己新的数据库 你在MSsql数据库中新建一个数据库,随便起个名字,无论放到哪个目录都可以,然后,下使用压缩包里面的sunbbsorg.sql这个sql脚本文件,导入到你刚才新建的数据库中,然后打开这个数据库,在ADMIN表中建立管理员 ID项 不用填,自动建立 帐号项 填你登录后台管理用的用户名,英文字母(汉字我没有试,不知道可以否) 姓名项 填中文名 级别项 填 高级管理员 注册日期项填 2003-3-4 21:13:00 这个形式的日期 密码项 填你的密码就行了 这样就OK了,你可以从后台进入管理 方法二:使用程序所带的sdyy.bak还原数据 不用下载导入sql脚本 在mssql中建立数据库sdyy, 常规选项:名称sdyy 数据文件选项 文件名:sdyy.mdf 文件位置:D:Program FilesMicrosoft SQL ServerMSSQLDatasdyy.mdf 事务日志选项 文件名:sdyy.ldf 文件位置:D:Program FilesMicrosoft SQL ServerMSSQLDatasdyy.ldf 确定,然后,备份文件,随便备份到一个地方 接着,还原数据库, 常规选项 属性中更改备份文件位置,选定sdvod.com所带备份文件sdyy.bak还原即可 据我调试,程序所带备份sdyy.bak中的电影可能都不能用了,所以还是推荐你使用第一种方法,新建数据库. 阳光论坛(sunbbs.org)斑竹草原企鹅对以上指南的补充: 我调试完了,用第一种方法到是基本可以用,但因为数据库中清了,导致后台管理出错,而且首页中的影片分类并不是动态的,而是用了固定的内容,通过HOME_CLASS.js文件调用,但在后台管理中没有发现有能生成JS文件的代码,我想应该有个文件用FSO的方法来生成JS文件的,但这个程序没有!! 总之一句话,程序后台管理不完善!! 演示:http://www.fyfc.com/sdvod 后台管理:admin 后台密码:12345678 希望朋友们进去看看,不要改管理员密码!! 更多调试方案,请到sunbbs.org搜索"sdvod"关键词

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧