【问题标题】:SQL Server 2000 to SQL Server 2008 R2 migrationSQL Server 2000 到 SQL Server 2008 R2 的迁移
【发布时间】:2011-09-20 06:38:27
【问题描述】:

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

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

谢谢

【问题讨论】:

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


    【解决方案1】:

    您可以编写脚本循环备份并在另一台服务器上恢复

    只要备份文件对两台服务器都可见。这将允许 WITH MOVE 选项允许不同的驱动器/文件夹。

    备份也比 MDF/LDF 小,复制也更少

    【讨论】:

      【解决方案2】:

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

      您需要设置一个脚本来执行之前在数据库上提到的所有/部分/更多的事情,然后扩展您的脚本以循环访问您的所有数据库。这可以使用批处理文件或 powershell 文件的组合并利用 sqlcmd 来完成。

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

      USE [master]
      

      ALTER DATABASE [$(DATABASENAME)] 设置 COMPATIBILITY_LEVEL = 100

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

      使用 [$(DATABASENAME)]

      去 声明@DBO 系统名

      --谁是sa用户

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

      --分配数据库所有者

      exec ('sp_changedbowner ''' + @DBO +'''') 去

      --修正计数

      dbcc 更新使用 (0) 走 --检查数据库是否包含列值完整性

      dbcc checkdb(0) 使用 Data_Purity、ALL_ERRORMSGS、NO_INFOMSGS 去

      --确保统计数据是最新的

      执行 sp_updatestats

      【讨论】:

      • 是否有任何脚本,我可以在我的环境中使用它。
      • 我可以单独编写一个脚本。它不适用于所有数据库 +77
      【解决方案3】:

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

      我无法单独编写脚本。

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

      【讨论】:

      • SQL compare 不是迁移工具,更像是“发布脚本”工具。那么数据呢?
      • Sql 数据比较通常是来自 Red Gate 的同一个包的一部分(它曾经被称为实用腰带 - 就像蝙蝠侠(?!)一样) - 传输数据。
      • 是的,我每天都使用它(开发者包),但它仍然不是迁移工具。
      • 您可以尝试使用 SQL Packager 命令行自动执行此操作。
      猜你喜欢
      • 2010-12-18
      • 1970-01-01
      • 2013-02-08
      • 2017-04-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 2012-07-25
      相关资源
      最近更新 更多