从sql server 2000迁移到2008 r2 - 如何

时间:2011-04-11 10:54:09

标签: sql-server-2008 migration sql-server-2000

我有一个处理SQL Server 2000的数据库。我们现在正在迁移到使用SQL Server 2008 r2的新服务器。谁能指点我一些资源或怎么样? 我并没有真正找到适合SQL 2000的方法。

谢谢!

7 个答案:

答案 0 :(得分:12)

基本上,您需要做的是:

  • 将SQL Server 2000中的数据库备份到.bak文件
  • 将* .bak文件移至新服务器
  • 将该数据库还原到新服务器

你已经完成了!真的没什么了.....只需备份(在旧系统上)并恢复(在新系统上)。

那你的问题究竟在哪里?

更新,因为@Péter正确提到:这使您的数据库处于SQL Server 2000兼容模式。这意味着:即使您已“迁移”到SQL Server 2008 R2,您仍然只能使用2000个功能。

要查看数据库所处的兼容模式,请查看sys.databases目录视图:

SELECT * FROM sys.databases WHERE name = 'YourDatabaseName'

一列名为compatibility_level,包含INT; 80 = SQL Server 2000,90 = SQL Server 2005,100 = SQL Server 2008/2008 R2和110 = SQL Server 2012

要将数据库更改为其他兼容级别,请使用以下命令:

ALTER DATABASE YourDatabaseNameHere
SET COMPATIBILITY_LEVEL = 100;

这将使您的数据库进入“本机”SQL Server 2008(和2008 R2)模式,现在您的迁移已完成,您可以使用所有新的SQL Server 2008 R2功能。

答案 1 :(得分:3)

我首先针对2000服务器运行升级顾问(在低利用率或非工作时间),看看它提出了哪些建议并完全解决了每个问题:http://msdn.microsoft.com/en-us/library/ms144256.aspx

这里也是MS的一篇关于主题的白皮书:http://download.microsoft.com/download/2/0/B/20B90384-F3FE-4331-AA12-FD58E6AB66C2/SQL%20Server%202000%20to%202008%20Upgrade%20White%20Paper.docx

很多都可能出错...在论坛设置中覆盖太多。但是,再没有什么可能出错......最好的计划,测试,然后再测试一下。

答案 2 :(得分:1)

我目前正在做同样的事情。

从2000恢复bak创建SQL 2008数据库是一个很好的第一步。我的大多数工作是处理用户权限,并确保用户与数据库登录同步,并且我们没有由与该用户相关联的备份生成的数据库架构,如果该问题导致问题我们试图重新创建该数据库用户。

我们最终做的是:

1)创建一个脚本。我们有一个脚本可动态编写脚本来执行以下操作:drop login,drop db user,drop schema,recreate login,recreate user,grant user permissions。

2)恢复数据库。

4)运行生成的脚本

答案 3 :(得分:0)

2012年4月编辑,因为原始链接已更改为最新版本,SQL Server 2012

进行“原位”升级(MSDN链接):

...到SQL Server 2008 R2

  

您可以将SQL Server 2000,SQL Server 2005或SQL Server 2008的实例升级到SQL Server 2008 R2。

...到SQL Server 1012

  

您可以从SQL Server 2005,SQL Server 2008和SQL Server 2008 R2升级到SQL Server 2012.

答案 4 :(得分:0)

从技术角度来看,其他答案是正确的,但不是从支持的角度来看。

我认为Microsoft不支持从SQL Server 2000直接升级到SQL Server 2008 R2。这并不意味着它很难,只是它不受支持。 (对于您的场景,这可能有用也可能不重要)

您可以将SQL Server 2000实例升级到SQL Server 2008 R1,然后执行后续升级到SQL Server 2008 R2。 (如果你这么倾向,甚至是SQL Server 2012)

答案 5 :(得分:0)

另一种选择是尝试直接将sql2k的数据库(文件)连接到sql2k8。

答案 6 :(得分:0)

最简单的方法是将SQL 2000中的数据库备份到.bak文件并移动它。恢复,一切都应该没问题。运行sp_Users_Loging以识别孤立服务器中的用户。