2011-04-11 182 views
9

我有一个在SQL Server 2000上工作的数据库。现在我们正在使用SQL Server 2008 r2迁移到一台新的服务器。任何人都可以请我指点一些资源或howto? 我并没有真正找到解决SQL 2000问题的方法。从sql server 2000迁移到2008 r2 - 如何

谢谢!

+0

你不明白SQL Server 2000? – gbn 2011-04-11 11:22:06

回答

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服务器2008分之2008R2和110 = SQL Server 2012的

为了改变数据库到不同的兼容性水平,使用这个命令:

ALTER DATABASE YourDatabaseNameHere 
SET COMPATIBILITY_LEVEL = 100; 

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

+2

没有问题。我只是想知道我该怎么做,而那只是我正在寻找的答案。在旧服务器上执行备份并在新服务器上执行恢复。谢谢。 – 2011-04-11 12:15:39

+1

我正在读取各种东西,如导出或分离数据库文件等 – 2011-04-11 12:16:19

+1

不完全.. - 如果有数据库登录的话,他们将需要重新创建和链接 - 如果您使用任何“* =”或“ = *“表示现在不支持该语法,并且会导致这些查询失败,您需要用现代语法替换 - 当您还原数据库时,您将成为所有者,您应该将其更改为系统帐户,如SA – matao 2011-06-15 06:25:06

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的升级。

+0

此链接已更改为SQL Server 2012.不再回答此问题。 – Andrew 2012-04-03 00:54:07

+0

@Andrew:固定链接,谢谢 – gbn 2012-04-03 06:46:35

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

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

+0

很好的建议,对于有人想升级。这不是我所问的,但不要让我阻止你。回答任何问题你喜欢:) – 2011-04-12 04:44:45

+0

对不起,也许你不应该提及事实上,你正在将数据库迁移到2008 R2,这意味着升级。如何询问你真正需要的东西,SQL 2000的教程;-) – 2012-12-20 22:04:55

0

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

我不认为Microsoft支持从SQL Server 2000直接升级到SQL Server 2008 R2。这并不意味着它很难,只是它不被支持。 (对于您的方案而言可能并不重要)

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

1

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

从2000恢复bak创建SQL 2008数据库是一个不错的第一步。对我来说,大部分工作都是处理用户权限,并确保用户与数据库登录同步,并且我们没有与该用户绑定的备份生成的数据库模式,这会导致问题,如果我们试图重新创建该数据库用户。

我们最终什么事做的是:

1)创建一个脚本。我们有一个脚本可以动态编写脚本来执行以下操作:drop login,drop db user,drop schema,重新创建登录名,重新创建用户,授予用户权限。

2)恢复数据库。

4)运行生成的脚本

0

另一个选项是尝试连接数据库(文件)SQL2K的直接sql2k8。

0

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

相关问题