我正在尝试将数据库从生产环境移至新的生产环境。
未来的环境具有当前产品环境的旧版本,我现在正在迁移旧的环境。
是更好,更可靠,如果:
我知道这两个都是选项,但是我需要知道哪个选项效果最好:最好定义为没有错误余地,因为这是关键数据库和关键任务系统。
我对差异数据库不感兴趣,我只希望当前数据库可以完整,轻松地移动。
更多信息:
答案 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上,备份/还原过程非常简单明了。如果您有一个选择还原的现有数据库,它将替换它。如果不存在,它将添加它。