在服务器之间移动数据库的简单方法?

在服务器之间移动数据库的简单方法?

我需要将 100 个数据库从各种 SQL 实例移动到另一个盒子上的其他相同实例。

我知道我可以手动分离、复制文件、重新连接,但有没有更简单/自动化的方法?最好有一个 UI 工具来选择要复制的数据库并让它继续进行?

这类似于上一个问题但那已经是 7 年前的事了,也许事情已经发生了变化?

答案1

使用DBA 工具powershell 库,你可以做这样的事情:

Get-DbaBackupHistory -SqlInstance Server1 |
 Restore-DbaDatabase -SqlInstance Server2 -withreplace

这将使用 Server1 上的现有备份并将其还原到 Server2。我的假设是,如果您对 Server1 上的所有数据库进行尾日志备份,则还原将使用它们,并且您将拥有一种有效的方法将数据库复制到 Server2,并且如果您需要返回到 Server 1(即restore [dbName] with recovery在 Server1 上运行所有内容),您还将拥有一个不错的后备计划

答案2

不再推荐使用分离/附加存储过程,因为它们可能会导致 Service Broker 和其他一些问题。最好的办法是,在无需购买第三方工具的情况下,编写脚本将所有数据库脱机,然后手动将数据和日志文件复制到新目标,然后使用附加代码的“创建数据库”将它们附加。如果您有兴趣,我可以与您分享一些可以自动执行这些语句的代码。

答案3

我很惊讶没有人提到内置复制数据库向导。看来正是我想要的!

相关内容