如何将sqlserver2000的数据还原到sqlserver2008

说实话,2 000年到2 008 年我来的时候,这件事困扰了我们两周。
典型的操作如下,但其间的瑕疵足以写一篇短篇小说了。

我们先来说说同名数据库。
当时我几乎陷入了这种情况——备份文件最初名为“old_data.bak”,但我的手颤抖着,我将2 008 实例中已经存在的库称为“old_data”。
SSMS一开始恢复就直接报错“无法恢复,目标数据库已存在”。
我当时就愣住了,盯着屏幕看了好久。
之后,我立即右键单击对象资源管理器中的“数据库”文件夹,然后单击“删除”——虽然所有数据都消失了,但路径最终还是打开了。
不要跳过这一步,否则就没用了。

有趣的是备份文件兼容性。
你提到的“SQLServer2 000的备份文件可以被SQLServer2 008 直接识别”基本上是正确的,但是我的经验是,最好使用2 008 自带的备份工具在新服务器上再次备份。
当时我有一个客户端的数据备份文件,在2 000年备份了三年,后来在2 008 年恢复时,这直接导致了字符失真。
虽然这不是版本不兼容的问题,但教训却更深。
所以现在在操作之前,我会使用“备份向导”再次备份到2 008 年以确认情况。

我也遇到了权限问题。
技术人员说“sa”使用登录并收到错误消息“权限不足”。
后来我了解到,虽然他是管理员,但他仍然需要“dbcreator”角色来执行数据库恢复操作。
这提醒我,权限不能掉以轻心,必须在操作手册中写清楚。

说到错误处理,你提到的“生成脚本向导”救了我一次。
有2 000个数据库备份文件,突然提示“版本不兼容,无法恢复”。
当时数据量不大,所以我使用向导将架构和数据导出到 SQL 脚本。
2 008 年新建一个库然后直接执行脚本即可完成。
虽然慢,但是总比丢失数据好。
但这种方法只适合小型图书馆。
我用几十MB试了一下,速度很慢。

我尝试过Redgate这个第三方工具,确实很方便。
它有一个数据库,数据量很大,备份文件有2 G。
我自己花了很长时间才恢复。
之后,我安装了Redgate的迁移工具,只需点击几下就可以完成。
但说到数据安全,还是要自己去测试。
我的一个朋友使用了这个东西,但失去了一些功能,最终不得不重新设计它。

我没有保存操作截图,现在找不到了。
但是,您可以打开SSMS,连接到2 008 实例您可以通过右键单击“数据库”文件夹,然后选择“操作”->“恢复”->“数据库”来完成此操作。
界面基本一致,还是比较直观的。

一般情况下,直接恢复效率最高,但正如您总结的那样,必须满足三个条件:目标服务器没有同名库、备份文件完整、用户有足够的权限。
如果这仍然不起作用,请转到 SQL Server 错误日志。
它比在线帖子有更详细的错误信息。
如果这不起作用,逐步导出和导入也可以,但您必须要有耐心。

sqlserver数据库怎么备份和还原

哦,对了,SQL Server备份和恢复,就是这样...2 02 2 年我还在用这个。

用SSMS备份,它的工作原理是这样的...首先,打开SSMS软件,连接到服务器...然后看对象管理器...找到数据库...例如MyDB...右键单击...任务...备份...会出现一个框...需要选择备份类型,例如完整路径...D:\Backups\MyDB.bak...确定。

恢复几乎是一样的...同样打开SSMS...连接...右键单击数据库...恢复数据库...选择备份文件...这...您需要找到.bak文件...例如C:\OldBackups\MyDB_2 02 2 1 1 1 5 .bak...选择...然后单击确定...您可能需要更改恢复选项...例如,您用来恢复哪些文件组...使用T-SQL...这...您需要键入SQL语句...例如...备份语句是 BACKUP DATABASE MyDB TO DISK = 'D:\Backups\MyDB.bak'...恢复怎么样...它是 RESTORE DATABASE MyDB FROM DISK = 'C:\OldBackups\MyDB_2 02 2 2 1 1 1 5 第一次开始做...我很困惑...尤其是T-SQL参数...哪个是MED? NORECOVERY...光看就头晕...也许我有偏见...我觉得SSMS容易多了...但有时文件太大...比如几GB...SSMS比较慢...用T-SQL更快...
总之...两种方法...都可以...选哪一种...看情况...嗯...是