sql-server - 迁移 SQL Server 中的海量数据库

标签 sql-server database backup database-migration

我正在处理的项目中的任务之一是将 SQL Server 2000 上的现有数据库迁移到运行 SQL Server 2008 的新服务器。该数据库非常庞大,有 2300 万行和 78GB .mdf 文件。

迁移这种大小的数据库的最佳方法是什么?

我目前的方法是:

  • 允许应用程序停机,以便应用程序不会将记录写入数据库
  • 在 SQL Server 2000 上执行完整备份。
  • 通过网络将备份文件移至新服务器。
  • 恢复 SQL Server 2008 上的完整备份。
  • 配置应用程序以引用新服务器上的数据库
  • 重新启动应用程序。
  • 停用 SQL Server 2000 上的数据库。

但是,我不确定这会涉及多少应用程序停机时间。

有没有更简单的方法,或者停机时间很少的方法?应用程序运行时可以进行备份吗?显然,当备份文件传输并完成恢复时,我需要停止应用程序。有兴趣听听您完成此类任务的方法。

最佳答案

如果您愿意停机:

  • 分离数据库
  • 将数据文件和日志文件复制到新服务器
  • 将数据库附加到新服务器实例

分离将关闭数据库并最终确定文件,以便可以安全地移动它们(或通过文件系统备份进行备份)。在您重新附加之前,它将无法再在服务器实例上进行访问。

不要剪切和粘贴/移动数据和日志文件,以防复制过程中出现问题。

迁移到新服务器实例时,还有其他一些事情需要记住,例如确保新实例上存在登录、正在使用的可能已弃用的功能等。

这是 detach/attach 的引用.

关于sql-server - 迁移 SQL Server 中的海量数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14651197/

相关文章:

git - "git fully backup"是什么意思?

iphone - iOS 从备份恢复会保留 CoreData 应用程序数据吗?

iphone - 核心数据 - 备份到 Google App Engine (iPhone)

android - 连接并创建一个 android 应用程序以从 MSSQL 检索数据

sql - T-SQL(azure 兼容)从一列中获取值作为一行数据

java - 带有 Java 客户端的键值数据库

mysql - 如何在检查子句中使用 CURDATE()?

sql-server - 对 'UNION' 的查询执行 'ORDER BY'

sql-server - SQL Server Express 和 Enterprise 如何对话?

python - 我如何使用 TinyDB 检索值?