2011-06-22 101 views
4

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

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

谢谢

回答

0

你可以使用一个软件工具,如Sql Compare

如果没有,我会单独编写脚本。

你可以围绕内部sysobjects table运行并构建一个组合脚本,但我不会。

+0

SQL比较是不是迁移工具,更多的是 “发行脚本” 的工具。那么数据呢? – gbn

+0

Sql数据比较通常是来自Red Gate的相同包的一部分(它曾被称为实用带 - 就像蝙蝠侠(?!)) - 传输数据。 – amelvin

+0

是的,我每天都用它(开发包),但它仍然不是一个迁移工具。 – gbn

2

你可以在一个循环中编写一个脚本来备份和只要备份文件到两个服务器可见的另一台服务器上恢复

。这将允许WITH MOVE选项允许不同的驱动器/文件夹。

备份比的MDF/LDFS小太较少复制

2

您将需要出示自己的脚本,你会真的想要做多的备份和恢复。 您可能想要做的其他事情是运行DBCC UpdateUsage,设置兼容级别,更新统计信息,使用Data_Purity运行DBCC CheckDB,将页面验证选项更改为校验和。您也可以复制和全文目录来处理。所有这些东西都可能需要进入你的脚本。

您需要设置一个脚本来执行以前在数据库中提到的所有/某些/更多事项,然后扩展您的脚本以遍历所有数据库。这可以使用批处理文件或PowerShell文件的组合并利用sqlcmd来完成。

例如,这是我在将备份恢复到新服务器后运行的一个脚本。这是通过sqlcmd从Windows批处理文件中调用的。

​​

GO

ALTER DATABASE [$(DATABASENAME)] SET COMPATIBILITY_LEVEL = 100

ALTER DATABASE [$(DATABASENAME)] SET PAGE_VERIFY CHECKSUM WITH NO_WAIT GO

用[$ (DATABASENAME)]

Go 声明@DBO sysname

- 谁是sa用户

从sys中选择@DBO = name 。server_principals 凡principal_id = 1

--assign SA数据库所有者

EXEC( 'sp_changedbowner的 ''' + @DBO + '' '') 去

--fix计数

DBCC UPDATEUSAGE(0) 去 --check分贝包括列值完整性

DBCC CHECKDB(0)使用DATA_PURITY,ALL_ERRORMSGS,NO_INFOMSGS 去

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

EXEC sp_updatestats

转到

+0

是否有任何脚本,我可以使用它为我的环境。 –

+0

我可以单独编写一个脚本。它不适用于所有数据库+77 –

相关问题