备份集中的数据库备份与现有的 '****' 数据库不同。

panqiang1007 2016-09-29 12:02:33
现有正式库,正在使用。 有每周自动备份的Bak文件。
现在想在这台服务器上构建一个测试库,使用之前的bak文件进行还原到测试库里面。
(使用复制数据库不行,提示有个东西错误,全部找一遍都没有找到这个东西,就弃用复制了)

首先创建一个测试库,然后在测试库上右击==>任务==>还原==>文件和文件组
指定设备,勾选指定的源设备后(选项里面不做改变),点击确定。

立马提示错误:

——————————————————————
还原 对于 服务器“SMSRTRONERP”失败。 (Microsoft.SqlServer.SmoExtended)

------------------------------
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.0.1600.22+((SQL_PreRelease).080709-1414+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=还原+Server&LinkId=20476

------------------------------
程序位置:

在 Microsoft.SqlServer.Management.Smo.Restore.SqlRestore(Server srv)
在 Microsoft.SqlServer.Management.SqlManagerUI.SqlRestoreDatabaseOptions.RunRestore()

===================================

System.Data.SqlClient.SqlError: 备份集中的数据库备份与现有的 'MSSQLSAMP' 数据库不同。 (Microsoft.SqlServer.Smo)

------------------------------
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.0.1600.22+((SQL_PreRelease).080709-1414+)&LinkId=20476

------------------------------
程序位置:

在 Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQueryWithMessage(StringCollection queries, ServerMessageEventHandler dbccMessageHandler, Boolean errorsAsMessages)
在 Microsoft.SqlServer.Management.Smo.BackupRestoreBase.ExecuteSql(Server server, StringCollection queries)
在 Microsoft.SqlServer.Management.Smo.Restore.SqlRestore(Server srv)

————————————————————————


搜索了一下,有说的是使用
————————————————
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我用的都是测试库的库名,动我正式库干什么!
这个方法也不行。

又说在还原的时候,在选项里面把“覆盖现有数据”选项勾上,但是我昨天测试的,竟然把我正式库给删除了。(吓的中午都没去吃午饭,赶紧去修复的)


请大家帮帮忙,正式库正在使用。在不改动正式库的情况下,将正式库备份的bak文件还原(或其他方法)到本地的另外一个数据库里!

TKS!


...全文
1554 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
panqiang1007 2016-10-02
  • 打赏
  • 举报
回复
引用 5 楼 yangb0803 的回复:
你还原不成功, 应该是你没有设置数据库还原后的路径. 在如上图右边,重新制定下你还原后数据库的保存路径. 注意: 第一个钩千万别选, 否则, 你哪里没整对, 把你原有数据库给灭了你就哭不出来了.....
哎,其实完全拷贝是最好的办法,就是时间长了点。 mdf和log两个文件达到了255G,光复制一遍就花了3.5小时,国庆节都是在家远程到公司做的。 拷贝mdf文件,在附加,只要花一个拷贝时间就可以了。现在已经把数据库备份了2份了,一个正式库、一个测试、一个备用。 十分感谢你。。
道玄希言 2016-09-29
  • 打赏
  • 举报
回复
你还原不成功, 应该是你没有设置数据库还原后的路径.



在如上图右边,重新制定下你还原后数据库的保存路径.

注意: 第一个钩千万别选, 否则, 你哪里没整对, 把你原有数据库给灭了你就哭不出来了.....
道玄希言 2016-09-29
  • 打赏
  • 举报
回复
18.7G 这个拷贝,应该也就几分钟额... 你用的是啥网络? 外网的么.... 还有就是你找一个使用最最少的时间点, 通知数据库维护, 需要停机10分钟, 然后, 直接正式环境数据库停止, 将数据库和日志文件拷贝一份, 启动数据库, 附加... 这里停止使用的时间, 就是拷贝你数据库和日志文件所需的时间. 如果日志文件太大, 又可以不需要日志, 在停止服务前, 可以先收缩下日志.
panqiang1007 2016-09-29
  • 打赏
  • 举报
回复
引用 2 楼 yangb0803 的回复:
最简单的办法, 你将 bak 文件拷贝到另一台安装了跟你正式数据库版本一样的机器上, 然后还原, 爱怎么折腾都不会影响你正式使用的库了.. 还原完毕后, 分离数据库, 拷贝一个出来, 想放哪里就放哪里了, 然后直接附加..
其实我一开也是这样想的,但是数据库的2个文件一共是18.7G,在复制的时候,服务器内存吃的太厉害了。 其他用户在使用的时候,执行的特慢,平常1秒的结果,在拷贝的时候,需要5-10秒。 服务器拷贝是11M/秒,需要4个多小时。 其他客户端不允许长达4小时的不使用软件的。 还能有更好的办法吗?
道玄希言 2016-09-29
  • 打赏
  • 举报
回复
最简单的办法, 你将 bak 文件拷贝到另一台安装了跟你正式数据库版本一样的机器上, 然后还原, 爱怎么折腾都不会影响你正式使用的库了.. 还原完毕后, 分离数据库, 拷贝一个出来, 想放哪里就放哪里了, 然后直接附加..
panqiang1007 2016-09-29
  • 打赏
  • 举报
回复
大神们请帮帮忙吧。

34,590

社区成员

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

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