数据库还原问题,出现"内部一致性错误",期待大力邹兄j老师等前辈

a1n1 2007-09-12 11:05:16
每日备份用如下:
declare @filename char(13)
set @filename = convert(char(13) ,getdate(),120 )

declare @pname varchar(500)
set @pname = 'D:\database_backups\backday1\'+@filename+'.abc'
backup database drdata to disk = @pname

将得到的.abc文件烤到本地,新建一空数据库在其上强制还原,过很长时间以后(数据库有十几G)提示出现"内部一致性错误".但是新建的那个空数据库大小已变为十几G,而且显示数据库为灰色(正在装载),然后就没反应了.
用RESTORE VERIFYONLY FROM disk = ''D:\database_backups\backday1\2007-08-23 04.abc'提示备份集有效。

求助怎样才能恢复这个数据库!
...全文
839 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
sp4 2007-09-17
  • 打赏
  • 举报
回复
呵呵,学习了
a1n1 2007-09-14
  • 打赏
  • 举报
回复
多谢邹建兄的大力帮助,我已查到了问题所在.

其实整个过程应该说没有大问题,只是存在一些隐患:
1:结合邹建兄的《恢复数据库的通用存储过程》来看
备份过程没有杀死用户进程,这就会产生数据库正在使用不能备份而报错的隐患
2:“sql 2005 的检查比2000详细得多, 基本上2005检查没有问题的都可以恢复。
如果2005检查出有问题, 就肯定有问题”是这个问题的关键所在,我无意间用2005检查发现的问题说明在2000下的备份检查并不可靠。

我重新备份了数据库并用这个新的备份还原后发现完全没有问题,因此这整个过程的关键看来还应该在于“备份”过程:而我只是图省事只写了一个backup语句。
问题虽然已解决,但是总结一下比较好,也给大家一个参考:备份过程很重要,在备份前做些一致性检查是有好处的,最好写成存储过程,各方面都处理好在备份也不迟!

结帖:顶者有分!
sp4 2007-09-13
  • 打赏
  • 举报
回复
备份文件有问题,那么原数据库也已经存在类似的一致性错误。没有源数据库么?
zjcxc 元老 2007-09-13
  • 打赏
  • 举报
回复
sql 2005 的检查比2000详细得多, 基本上2005检查没有问题的都可以恢复。
如果2005检查出有问题, 就肯定有问题
whw123456 2007-09-13
  • 打赏
  • 举报
回复
顶·
zjcxc 元老 2007-09-13
  • 打赏
  • 举报
回复
备份文件有问题,那么原数据库也已经存在类似的一致性错误。
===========================================================
这个不能画等号的
a1n1 2007-09-12
  • 打赏
  • 举报
回复
为什么SQL 2000 和SQL 2005 的检查结果不一样?
(注:备份用的是2000)
a1n1 2007-09-12
  • 打赏
  • 举报
回复
多谢邹建!

刚才无意用SQL 2005 的restore verify检查了一下,居然检测到该备份集损坏。
那是否说明已经是备份的文件有问题?
zjcxc 元老 2007-09-12
  • 打赏
  • 举报
回复
1. 重新备份, 看看是否备份的文件有问题
2. 换台电脑恢复,看看是否电脑的问题

restore verify 不会做详细检查,所以它的检查没有问题不代表文件没有问题
a1n1 2007-09-12
  • 打赏
  • 举报
回复
如果是这个备份文件本身有问题,那么是不是我的备份过程有问题呢?
dobear_0922 2007-09-12
  • 打赏
  • 举报
回复
帮顶,学习
lost_queen 2007-09-12
  • 打赏
  • 举报
回复
不懂,学习,帮顶~
a1n1 2007-09-12
  • 打赏
  • 举报
回复
但是RESTORE VERIFYONLY FROM disk = ''D:\database_backups\backday1\2007-08-23 04.abc'提示备份集有效。


能否说明这个备份文件没有问题?
kelph 2007-09-12
  • 打赏
  • 举报
回复
如果有日志备份,可以用日志备份恢复
dawugui 2007-09-12
  • 打赏
  • 举报
回复
十几个G大的数据,恢复能成功的可能性太低了.
kelph 2007-09-12
  • 打赏
  • 举报
回复
日志备份了没有?
a1n1 2007-09-12
  • 打赏
  • 举报
回复
现在我想首先确定的一个问题是:这个备份文件有没有问题?
如果没问题的话,能否恢复?
welove1983 2007-09-12
  • 打赏
  • 举报
回复
RESTORE FILELISTONLY
FROM DISK = @pname

RESTORE DATABASE 数据库名
FROM DISK =@pname
WITH
MOVE FILELISTONLY得到data
TO '物理路径\XX.mdf',
MOVE FILELISTONLY得到log
TO '物理路径\XX.ldf'
welove1983 2007-09-12
  • 打赏
  • 举报
回复

RESTORE DATABASE 试试呢?
a1n1 2007-09-12
  • 打赏
  • 举报
回复
to:潇洒老乌龟

那个方法我知道,可是服务器不能停止,只能热备
现在只有2007-08-23 04.abc这个备份文件能用,请助我!
加载更多回复(5)

34,590

社区成员

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

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