我遇到了三个旧的数据库,它们都安装在SQL Server 2000上,我需要移至2012年。我认为标准方法是还原到2005或2008实例,更新,重新导出并最终还原到2012年。
很好,除非我们没有2005或2008实例。
是否有任何替代方法或其他方法可能值得尝试?
作为参考,数据库仅包含15-20个表和一些视图,它们看起来非常简单,备份大小仅为100-200MB。
我遇到了三个旧的数据库,它们都安装在SQL Server 2000上,我需要移至2012年。我认为标准方法是还原到2005或2008实例,更新,重新导出并最终还原到2012年。
很好,除非我们没有2005或2008实例。
是否有任何替代方法或其他方法可能值得尝试?
作为参考,数据库仅包含15-20个表和一些视图,它们看起来非常简单,备份大小仅为100-200MB。
Answers:
不,没有解决方法可以直接从2000年升级到2012年。
由于您没有大量数据,因此可以做各种事情来移动数据(但不能移动整个数据库),包括:
但是,这些不一定会带来其他问题,例如用户,权限,角色等。并且并非所有事物都将按照正确的依赖关系顺序创建对象。因此它们更加工作且容易出错。以我的经验,最好只是暂时放置一个中间实例,然后执行两次备份+还原操作-与上述任何一种方法相比,这将更容易,更快且出错更少。
如果您的数据库小于10GB,则可以在几分钟内安装Express(免费)副本,然后使用它。您可以在此处下载2008 R2 Express 。我认为2000年企业版中没有围绕数据库结构等的功能会阻止升级(对于更现代的版本,更大的关注)。
如果您的数据库对于Express而言太大,您应该能够以49美元左右的价格找到Developer Edition(甚至更便宜- 我在eBay上找到了2005年的价格为37美元),或者如果您拥有MSDN订阅,则应该能够得到从那里开始。
或者,您也可以使用评估版,该版本仍旧可以下载较早版本的版本(例如,我在此处找到2008),但是我正在使用手机,因此无法确认该版本的下载仍然有效。
声明没有解决方法似乎为时过早。
您说您的数据库仅包含一些表和视图。为什么不将表和视图架构导出为SQL create语句并在目标数据库上运行它们?然后,您还可以将实际数据导出为CSV格式,然后将其导入目标数据库,甚至可以在C#/ C ++ / etc中编写一些内容来导出/导入实际数据。
您不需要花一分钱就不需要最终使用的新SQL Server实例。
您不能直接从SQL Server 2000迁移到SQL Server 2012,并且如果尝试这样做,则会得到以下错误号3169,它与兼容性问题有关。
可以从以下版本(最低版本)之一的SQL Server 2005 SP4或SQL Server 2008 SP2或SQL Server 2008 R2 SP1迁移到SQL Server 2012。
因此,从SQL Server 2000迁移到其中一个版本的第一步是,我在以下链接中找到了SQL Server 2008升级顾问之一。为确保所有内容在开始还原过程之前都能正常运行,您需要运行该应用程序。然后“启动Upgrade Advisor分析向导”,并按照向导步骤进行操作。
收到报告后,需要在目标SQL Server 2005 SP4或SQL Server 2008 SP2或SQL Server 2008 R2 SP1上还原数据库并对其运行兼容性级别(可以在数据库选项上找到它)。对于SQL Server登录,请按照以下链接中的说明进行操作。
完成此操作后,现在需要通过从第一次迁移到的服务器重复相同的步骤来迁移到SQL Server 2012。
首先,我同意您不应该直接从2000年迁移到2012年。我认为这个过程已经很好地涵盖了。我想建议您确定是否有人在使用数据库及其用途。可能是它们没有被使用。它发生了,如果是这种情况,那么您就不用担心。可能将2个或3个表和数据(如果要从单个表中获取数据的方式简单可靠)(如果要获取单个表的数据,则为2000,请使用bcp)可以满足用户的需求。如果执行此操作,则在2012数据库中创建新表并bcp输出需要csv的数据,如果需要,可以将其bcp重新输入。如果您必须迁移一个或两个以上的表,那么最简单,最安全和最佳的方法就是执行两步迁移。不要