SQL Server 2000 到 SQL Server 2008 R2 的迁移

4

我正在使用包括77个数据库的SQL Server 2000,并希望将它们迁移到新的SQL Server 2008 R2。

我可以使用附加或还原命令单独执行此操作。是否有用于将这77个数据库迁移到安装了SQL Server 2008 R2的新服务器的脚本。

谢谢

3个回答

2
您需要制作自己的脚本,因为您可能想要做更多的备份和恢复之外的事情。其他一些可能需要做的事情包括运行DBCC UpdateUsage、设置兼容性级别、更新统计信息、使用Data_Purity运行DBCC CheckDB、将页面验证选项更改为checksum。您可能还需要处理复制和全文目录。所有这些内容可能需要编写到您的脚本中。
您需要设置一个脚本,对数据库执行之前提到的所有/部分/更多的操作,然后扩展该脚本以循环遍历所有数据库。这可以使用批处理文件或 PowerShell 文件的组合,并利用 sqlcmd 进行完成。
例如,这是我在将备份还原到新服务器后运行的一个脚本。通过 sqlcmd 通过 Windows 批处理文件调用此脚本。
USE [master]

GO

将数据库[$(DATABASENAME)]的兼容性级别设置为100

将数据库[$(DATABASENAME)]的页面验证设置为CHECKSUM,并使用NO_WAIT GO

使用[$(DATABASENAME)]

Go 声明@DBO sysname

--谁是sa用户

选择@DBO = 名称 来自sys.server_principals 其中principal_id = 1

--分配sa为DB所有者

执行('sp_changedbowner''' + @DBO +'''') go

--修复计数

dbcc updateusage (0) go --检查数据库是否包括列值完整性

dbcc checkdb(0) With Data_Purity, ALL_ERRORMSGS, NO_INFOMSGS go

--确保统计信息是最新的

执行sp_updatestats

Go


有没有相关的脚本,我可以在我的环境中使用它? - Esra Atbas
我只能编写一个单独的脚本。它并不适用于所有数据库 +77 - Esra Atbas

2
你可以编写一个脚本,循环备份并在另一台服务器上进行恢复。只要备份文件对两个服务器都可见。这将允许使用WITH MOVE选项来允许不同的驱动器/文件夹。
备份文件比MDF/LDF更小,因此需要复制的内容也较少。

0

你可以使用像Sql Compare这样的软件工具。

如果失败了,我会逐个编写脚本。

你可以遍历内部sysobjects表并构建一个组合脚本,但我不建议这样做。


SQL比较工具不是迁移工具,更像是“发布脚本”工具。那么数据呢? - gbn
Sql数据比较通常是Red Gate的同一套软件包的一部分(它曾经被称为实用工具带 - 就像蝙蝠侠(?!)),用于传输数据。 - amelvin
是的,我每天都使用它(开发人员套件),但它仍然不是一个迁移工具。 - gbn
你可以尝试使用SQL Packager命令行来自动化此过程。 - David Atkinson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接