sql - 在 SQL Server 中为关键数据库还原数据库的最佳方法
问题描述
我正在尝试将数据库从生产环境移动到新的生产环境。
未来环境有当前 prod 环境的旧版本,我现在正在迁移旧版本。
如果满足以下条件,是否更好、更可靠:
- 我删除数据库然后恢复
- 还是我应该在上面恢复?
我知道这两个都是选项,但我需要知道哪一个能给出最好的结果:最好的定义是考虑到这是一个关键数据库和关键任务系统,所以没有出错的余地。
我对差异数据库不感兴趣,我只想让当前数据库完整地移动——干净而轻松。
更多信息:
- 这是一个 25GB 的数据库
- 我有一个 2 小时的窗口,我可以在其中备份当前系统并将其放在未来的系统上。
- 我在上面定义了“最佳”:最简单/最简单的方法,同时确保最少的数据损坏/丢失。
- 我不需要历史/登录新位置,即:我不需要能够去更旧的时间。
解决方案
我建议走sp_detachdb - copy - sp_attachdb路线。
注意:
**@keepfulltextindexfile** 参数将在 SQL Server 的未来版本中删除。
并且此过程与 Azure 不兼容。
你写了:
我有 2 小时的窗口
所以它会更好,而不是sp_detachdb
仅仅停止 SQLServer 服务 - 在新服务器上复制数据库文件,而不是使用sp_attach_db
/CREATE DATABASE .. FOR ATTACH
阅读有关此主题的 Microsoft 文档 -使用分离和附加 (Transact-SQL) 移动数据库
推荐阅读
- flutter - “int”类型不是 Flutter 中“String”类型的子类型
- javascript - 有条件地在 React Admin ChipField 中设置图标
- yii2 - 如何在 Yii 框架 2 ActiveRecord 中使用预先加载关系和比较?
- paraview - 在 Paraview 中使用 Tecplot ASCII 格式的向量
- reactjs - items.map:参数“item”隐式具有“any”类型
- javascript - 使用 express-sse 从不同的路由发送数据
- reactjs - 开玩笑“为了可迭代,非数组对象必须具有 [Symbol.iterator]() 方法”。
- msys2 - 如何在 mintty/MSYS2 中使用终端选项卡功能?
- django - 我在为我的 Django App (DRF) 设计 API 端点时遇到了一些问题
- azure - 从 Mulesoft 迁移到 Azure APIM