在SQL Server中为关键数据库还原数据库的最佳方法

时间:2019-02-02 19:16:25

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

我正在尝试将数据库从生产环境移至新的生产环境。

未来的环境具有当前产品环境的旧版本,我现在正在迁移旧的环境。

是更好,更可靠,如果:

  • 删除数据库,然后还原
  • 还是我应该恢复为最高级?

我知道这两个都是选项,但是我需要知道哪个选项效果最好:最好定义为没有错误余地,因为这是关键数据库和关键任务系统。

我对差异数据库不感兴趣,我只希望当前数据库可以完整,轻松地移动。

更多信息:

  • 这是一个25GB的数据库
  • 我有一个2小时的窗口,可以在其中备份当前系统,并将其放在将来的系统上。
  • 并且我在上面定义了“最佳”:最简单/最简单的方法,同时确保最少的数据损坏/丢失。
  • 我不需要在新位置的历史记录/登录,即:我不需要花更长时间。

2 个答案:

答案 0 :(得分:1)

我建议走sp_detachdb-复制-sp_attachdb路线。

请注意:

  

在以后的SQL Server版本中,** @ keepfulltextindexfile **参数将被删除。

和此程序不与天青兼容。

您写道:

  

我有2小时的窗口

因此最好不要停止sp_detachdb而不是停止SQLServer服务-在新服务器上复制数据库文件,而不是使用sp_attach_db / CREATE DATABASE .. FOR ATTACH

关于此主题的读Microsoft文档 - Move a Database Using Detach and Attach (Transact-SQL)

答案 1 :(得分:0)

我最近问了类似的问题。我不同意另一个答案:分离并附加数据库不是一个好主意。首先,你必须把它脱机 - 第二,你需要为其他职位指出,停止服务。 备份和还原是最安全的方法。

使用sp_detach_db分离数据库,然后使用CREATE DATABASE ... FOR ATTACH附加数据库的选项;或使用GUI进行分离和附加实际上会从源服务器分离数据库。

  

这里很多事情都会出错,这就是为什么我们更喜欢备份和   恢复。备份过程是在线和自源数据库   从一开始就从未变得不可用,您不必冒险   万一发生错误,数据损坏或任何其他情况,销毁任何东西   其他可能发生的事情。

看看这个question,它为您提供了所需的一切。

在SQL Server上,备份/还原过程非常简单明了。如果您有一个选择还原的现有数据库,它将替换它。如果不存在,它将添加它。