我正在使用SQL Server 2000,包括77个数据库,我想将它们迁移到新的SQL Server 2008 R2。
我可以使用attach或restore命令单独执行此操作。是否有任何脚本可以将77个数据库迁移到安装了SQL Server 2008 R2的新服务器。
谢谢
答案 0 :(得分:2)
您可以编写一个脚本来循环备份并在另一台服务器上恢复
只要备份文件对两个服务器都可见。这将允许WITH MOVE选项允许不同的驱动器/文件夹。
备份也小于MDF / LDF,以减少复制
答案 1 :(得分:2)
您需要生成自己的脚本,因为您真的想做的不仅仅是备份和还原。 您可能想要做的其他事情是运行DBCC UpdateUsage,设置兼容级别,更新统计信息,使用Data_Purity运行DBCC CheckDB,将页面验证选项更改为校验和。您也可以使用复制和全文目录进行处理。所有这些都可能需要进入你的脚本。
您需要设置一个脚本,该脚本执行先前在数据库中提及的所有/部分/更多内容,然后扩展您的脚本以遍历所有数据库。这可以使用批处理文件或PowerShell文件的组合并使用sqlcmd来完成。
例如,这是我将备份还原到新服务器后运行的一个脚本。这是通过sqlcmd从Windows批处理文件中调用的。
USE [master]
GO
ALTER DATABASE [$(DATABASENAME)] SET COMPATIBILITY_LEVEL = 100
ALTER DATABASE [$(DATABASENAME)]使用NO_WAIT设置PAGE_VERIFY CHECKSUM GO
使用[$(DATABASENAME)]
转到 声明@DBO sysname
- 谁是sa用户
选择@DBO = name 来自sys.server_principals 其中principal_id = 1
- 为数据库所有者分配sa
exec('sp_changedbowner'''+ + DBO +'''') 去
- 修正计数
dbcc updateusage(0) 走 - 检查数据库是否包含列值完整性
dbcc checkdb(0)使用Data_Purity,ALL_ERRORMSGS,NO_INFOMSGS 去
- 确保统计信息是最新的
exec sp_updatestats
开始
答案 2 :(得分:0)